.toast-container{position:fixed;top:calc(env(safe-area-inset-top) + 16px);left:16px;right:16px;display:flex;flex-direction:column;gap:8px;z-index:2000;pointer-events:none}.toast{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 4px 12px #0000004d;animation:slideInDown .3s ease;pointer-events:auto}@keyframes slideInDown{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}.toast.exiting{animation:slideOutUp .3s ease forwards}@keyframes slideOutUp{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-100%)}}.toast-icon{font-size:18px;flex-shrink:0}.toast.success .toast-icon{color:var(--accent-success)}.toast.error .toast-icon{color:var(--accent-danger)}.toast.warning .toast-icon{color:var(--accent-warning)}.toast.info .toast-icon{color:var(--accent-primary)}.toast-content{flex:1;min-width:0}.toast-title{font-weight:500;color:var(--text-primary);margin-bottom:2px;font-size:14px}.toast-message{font-size:13px;color:var(--text-secondary);word-break:break-word}.toast-close{background:none;border:none;color:var(--text-muted);font-size:20px;cursor:pointer;padding:4px;line-height:1;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.toast-close:active{color:var(--text-primary)}.sheet-overlay{position:fixed;inset:0;background:#00000080;z-index:1500}.bottom-sheet{position:fixed;left:0;right:0;bottom:0;background:var(--bg-secondary);border-radius:16px 16px 0 0;max-height:60%;display:flex;flex-direction:column;z-index:1501;padding-bottom:env(safe-area-inset-bottom);animation:slideUp .25s ease}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.sheet-header{padding:12px 16px 8px;text-align:center;border-bottom:1px solid var(--border-color)}.sheet-handle{width:36px;height:4px;background:var(--text-muted);border-radius:2px;margin:0 auto 12px}.sheet-header h2{margin:0;font-size:17px;font-weight:600;color:var(--text-primary)}.sheet-content{flex:1;overflow-y:auto;padding:12px 16px}.sheet-loading,.sheet-empty{text-align:center;padding:24px;color:var(--text-muted)}.intents-list{list-style:none;margin:0;padding:0}.intent-item{padding:12px;background:var(--bg-tertiary);border-radius:8px;margin-bottom:8px;cursor:pointer}.intent-item:last-child{margin-bottom:0}.intent-item:active{opacity:.8}.intent-header{display:flex;justify-content:space-between;align-items:center}.intent-name{font-weight:500;color:var(--text-primary);font-size:15px;flex:1}.intent-chevron{font-size:10px;color:var(--text-muted);margin-left:8px}.intent-descriptions{margin-top:12px;padding-top:12px;border-top:1px solid var(--border-color);display:flex;flex-direction:column;gap:8px}.intent-description{font-size:13px;color:var(--text-secondary);line-height:1.5;white-space:pre-wrap;padding-left:8px;border-left:2px solid var(--accent-primary)}.intent-input-modal{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1502;padding:16px}.intent-input-content{background:var(--bg-secondary);border-radius:12px;padding:20px;width:100%;max-width:400px}.intent-input-content h3{margin:0 0 16px;color:var(--text-primary);font-size:16px;font-weight:600}.intent-input-content textarea{width:100%;min-height:100px;padding:12px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-primary);color:var(--text-primary);font-size:15px;resize:none;font-family:inherit}.intent-input-content textarea:focus{outline:none;border-color:var(--accent-primary)}.intent-input-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.intent-btn-cancel,.intent-btn-send{padding:10px 20px;border-radius:8px;font-size:15px;font-weight:500;border:none}.intent-btn-cancel{background:var(--bg-tertiary);color:var(--text-primary)}.intent-btn-send{background:var(--accent-primary);color:#fff}.intent-btn-send:disabled{opacity:.5}.settings-page{position:fixed;inset:0;display:flex;flex-direction:column;background:var(--bg-primary);padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);z-index:2000}.settings-header{display:flex;align-items:center;padding:8px 12px;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);min-height:56px}.settings-header h1{flex:1;margin:0;font-size:17px;font-weight:600;text-align:center}.header-spacer{width:44px}.settings-content{flex:1;overflow-y:auto;padding:16px}.settings-section{background:var(--bg-secondary);border-radius:10px;overflow:hidden;margin-bottom:24px}.settings-section-title{padding:12px 16px 8px;font-size:13px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.settings-row{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-top:1px solid var(--border-color)}.settings-label{color:var(--text-primary);font-size:15px}.settings-value{color:var(--text-secondary);font-size:15px}.theme-selector{display:flex;gap:12px;padding:12px 16px}.theme-option{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px;background:var(--bg-tertiary);border:2px solid transparent;border-radius:12px;color:var(--text-secondary);font-size:13px}.theme-option.active{border-color:var(--accent-primary);color:var(--accent-primary)}.theme-preview{width:48px;height:48px;border-radius:8px;border:1px solid var(--border-color)}.theme-preview-tango{background:linear-gradient(135deg,#2e3436 0% 50%,#729fcf 50% 100%)}.theme-preview-dark{background:linear-gradient(135deg,#0d1117 0% 50%,#58a6ff 50% 100%)}.theme-preview-light{background:linear-gradient(135deg,#fff 0% 50%,#0969da 50% 100%)}.theme-preview-blue{background:linear-gradient(135deg,#15202b 0% 50%,#1d9bf0 50% 100%)}.settings-disconnect-btn{width:calc(100% - 32px);margin:12px 16px;padding:12px;background:var(--accent-danger);color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:500}.settings-disconnect-btn:active{opacity:.8}.font-selector{padding:12px 16px}.font-select{width:100%;padding:12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);font-size:15px;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23888' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.font-preview{margin:0 16px 16px;padding:16px;background:var(--bg-tertiary);border-radius:8px;color:var(--text-primary);font-size:14px;line-height:1.5}.font-preview p{margin:0}.chat-header{display:flex;align-items:center;padding:8px 12px;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);min-height:56px}.header-btn{width:44px;height:44px;background:none;border:none;color:var(--text-secondary);font-size:20px;display:flex;align-items:center;justify-content:center;border-radius:8px}.header-btn:active{background:var(--bg-tertiary)}.chat-header-center{flex:1;min-width:0;text-align:center;padding:0 8px}.header-capsule{font-size:11px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-session{font-weight:600;font-size:15px;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-assistant{font-size:12px;color:var(--text-muted)}.header-assistant-select{font-size:12px;color:var(--text-muted);background:none;border:none;padding:4px 0;text-align:center}.message-area{flex:1;overflow-y:auto;overflow-x:hidden;padding:12px;display:flex;flex-direction:column;gap:12px;-webkit-overflow-scrolling:touch;font-family:var(--chat-font, inherit)}.loading-history{text-align:center;padding:12px;color:var(--text-muted);font-size:13px}.message{display:flex;flex-direction:column;gap:4px}.message-header{display:flex;align-items:baseline;gap:8px}.message-role{font-weight:600;font-size:13px}.message-user .message-role{color:var(--accent-success)}.message-assistant .message-role{color:var(--accent-primary)}.message-time,.msg-time{font-size:10px;color:var(--text-muted)}.message-content{color:var(--text-primary);line-height:1.7;font-size:14px;word-break:break-word}.message-content br{display:block;content:"";margin:8px 0}.message-content pre{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;padding:10px;overflow-x:auto;margin:8px 0;font-size:13px}.message-content code{background:var(--bg-tertiary);padding:2px 6px;border-radius:4px;font-family:SF Mono,Monaco,Consolas,monospace;font-size:13px}.message-content pre code{background:none;padding:0}.message-content p{margin:0 0 12px}.message-content p:last-child{margin-bottom:0}.message-content ul,.message-content ol{margin:12px 0;padding-left:20px}.message-content li{margin:6px 0}.message.streaming .message-role:after{content:"";display:inline-block;width:8px;height:8px;background:var(--accent-success);border-radius:50%;margin-left:8px;animation:pulse 1s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.streaming-indicator{display:flex;align-items:center;gap:8px;color:var(--text-muted);font-size:13px;padding:8px 0}.thinking-dots{display:flex;gap:4px}.thinking-dot{width:6px;height:6px;border-radius:50%;background:var(--accent-primary);animation:thinking 1.4s infinite ease-in-out both}.thinking-dot:nth-child(1){animation-delay:-.32s}.thinking-dot:nth-child(2){animation-delay:-.16s}.thinking-dot:nth-child(3){animation-delay:0}@keyframes thinking{0%,80%,to{transform:scale(0);opacity:.5}40%{transform:scale(1);opacity:1}}.tool-executions{display:flex;flex-direction:column;gap:4px;padding:8px 0}.tool-execution{display:flex;align-items:center;gap:8px;font-size:13px;padding:6px 10px;background:var(--bg-tertiary);border-radius:6px}.tool-execution .tool-status-icon{font-size:14px}.tool-execution.running .tool-status-icon{color:var(--accent-warning)}.tool-execution.success .tool-status-icon{color:var(--accent-success)}.tool-execution.error .tool-status-icon{color:var(--accent-danger)}.tool-execution .tool-name{color:var(--text-primary);font-weight:500}.completed-phases{display:flex;flex-direction:column;gap:4px;margin:8px 0}.phase-item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--bg-tertiary);border-radius:6px;font-size:13px}.phase-name{font-weight:500;color:var(--text-primary)}.phase-duration{color:var(--text-muted);font-size:11px}.system-message{padding:10px 12px;border-radius:8px;font-size:13px}.system-message pre{margin:0;white-space:pre-wrap;font-family:inherit}.system-message.info{background:#58a6ff1a;color:var(--accent-primary)}.system-message.error{background:#f851491a;color:var(--accent-danger)}.input-box{padding:8px 12px;background:var(--bg-secondary);border-top:1px solid var(--border-color)}.input-wrapper{display:flex;align-items:center;gap:8px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:24px;padding:4px 4px 4px 16px}.input-waiting{display:flex;align-items:center;gap:4px;padding-right:4px}.waiting-dot{width:6px;height:6px;border-radius:50%;background:var(--accent-primary);animation:waiting-bounce 1.4s infinite ease-in-out both}.waiting-dot:nth-child(1){animation-delay:-.32s}.waiting-dot:nth-child(2){animation-delay:-.16s}.waiting-dot:nth-child(3){animation-delay:0s}@keyframes waiting-bounce{0%,80%,to{transform:scale(.6);opacity:.5}40%{transform:scale(1);opacity:1}}.input-wrapper.disabled{opacity:.6}.chat-input{flex:1;background:none;border:none;color:var(--text-primary);font-size:15px;padding:8px 0;outline:none;min-width:0}.chat-input::placeholder{color:var(--text-muted)}.send-btn{padding:8px 16px;background:var(--accent-primary);color:#fff;border:none;border-radius:20px;font-size:14px;font-weight:500;min-height:36px}.send-btn:disabled{opacity:.5}.cancel-btn{padding:8px 16px;background:var(--accent-danger);color:#fff;border:none;border-radius:20px;font-size:14px;font-weight:500;min-height:36px}.status-bar{display:flex;justify-content:center;padding:6px 12px;background:var(--bg-tertiary);font-size:11px;border-top:1px solid var(--border-color)}.status-bar-section{display:flex;align-items:center;gap:4px}.status-bar-label{color:var(--text-muted)}.status-bar-value{color:var(--accent-primary)}.status-bar-separator{color:var(--text-muted);margin:0 2px}.chat-message.delegation-msg{background:var(--bg-secondary);border-radius:8px;padding:10px 12px;margin:8px 0;max-width:85%;min-width:25%;width:fit-content;box-shadow:0 1px 3px #0000001f,0 1px 2px #00000014}.chat-message.delegation-msg.delegation-response{margin-left:auto}.chat-message.delegation-msg.failed{box-shadow:0 1px 3px #00000026,0 1px 2px #0000001a;border-left:3px solid var(--accent-danger)}.msg-sender{font-weight:600;font-size:13px;color:var(--accent-primary);margin-bottom:4px;display:flex;align-items:baseline;flex-wrap:wrap;gap:6px}.msg-sender .message-time{font-weight:400;font-size:10px;color:var(--text-muted);margin-left:auto}.msg-action{font-weight:400;color:var(--text-muted)}.msg-content{color:var(--text-primary);line-height:1.7;font-size:14px}.msg-content br{display:block;content:"";margin:8px 0}.msg-content p{margin:0 0 12px}.msg-content p:last-child{margin-bottom:0}.msg-content pre{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;padding:10px;overflow-x:auto;margin:8px 0;font-size:12px}.msg-content code{background:var(--bg-tertiary);padding:2px 6px;border-radius:4px;font-family:SF Mono,Monaco,Consolas,monospace;font-size:12px}.msg-content pre code{background:none;padding:0}.msg-content ul,.msg-content ol{margin:8px 0;padding-left:20px}.msg-content-json{font-size:11px;font-family:SF Mono,Monaco,Consolas,monospace;background:var(--bg-tertiary);padding:8px;border-radius:6px;overflow-x:auto;margin:0;white-space:pre-wrap;word-break:break-word;color:var(--text-secondary)}.msg-reply-to{background:var(--bg-tertiary);border-left:2px solid var(--accent-primary);padding:4px 8px;margin-bottom:8px;font-size:12px;border-radius:0 4px 4px 0;display:flex;gap:4px}.reply-sender{font-weight:600;color:var(--text-primary)}.reply-preview{color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-message.bulletin-msg{background:var(--bg-secondary);border-radius:8px;padding:10px 12px;margin:8px 0;max-width:85%;min-width:25%;width:fit-content;box-shadow:0 1px 3px #0000001f,0 1px 2px #00000014}.chat-message.bulletin-msg.assistant-reply{margin-left:auto}.post-status{font-size:9px;padding:1px 4px;border-radius:2px;margin-left:6px;text-transform:lowercase;font-weight:400}.post-status.pending{background:var(--accent-warning);color:#000}.components-area,.message-components{display:flex;flex-direction:column;gap:12px;padding:8px 0}.component-render{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:12px;overflow-x:auto}.component-fallback{color:var(--text-muted);font-style:italic;padding:8px}.chart-wrapper{padding:12px;background:var(--bg-tertiary);border-radius:8px}.chart-title{font-weight:500;font-size:14px;margin-bottom:12px;color:var(--text-primary)}.diagram-fallback{padding:12px;background:var(--bg-tertiary);border-radius:6px}.diagram-fallback-title{font-weight:500;margin-bottom:8px}.diagram-fallback-note{font-size:12px;color:var(--text-muted);margin-bottom:8px}.diagram-fallback-code{font-size:11px;background:var(--bg-primary);padding:8px;border-radius:4px;overflow-x:auto;white-space:pre-wrap;word-break:break-word}.component-table{overflow-x:auto}.capsule-table{width:100%;border-collapse:collapse;font-size:13px}.capsule-table caption{text-align:left;font-weight:500;margin-bottom:8px}.capsule-table th,.capsule-table td{padding:8px 10px;border-bottom:1px solid var(--border-color);text-align:left}.capsule-table th{background:var(--bg-tertiary);font-weight:600}.capsule-table th.sortable{cursor:pointer}.capsule-table th.sort-asc:after{content:" ▲";font-size:10px}.capsule-table th.sort-desc:after{content:" ▼";font-size:10px}.capsule-table .null-value{color:var(--text-muted)}.capsule-table .positive{color:var(--accent-success)}.capsule-table .negative{color:var(--accent-danger)}.capsule-table .table-truncated{text-align:center;color:var(--text-muted);font-style:italic}.component-progress .progress-title{font-weight:500;margin-bottom:12px}.component-progress .progress-item{margin-bottom:12px}.component-progress .progress-label{display:flex;justify-content:space-between;margin-bottom:4px;font-size:13px}.component-progress .progress-bar{height:8px;background:var(--bg-tertiary);border-radius:4px;overflow:hidden}.component-progress .progress-fill{height:100%;background:var(--accent-primary);transition:width .3s ease}.component-tree .tree-title{font-weight:500;margin-bottom:8px}.component-tree ul{list-style:none;padding-left:16px;margin:0}.component-tree .tree-root{padding-left:0}.component-tree li{padding:4px 0}.component-tree .tree-label{display:flex;align-items:center;gap:6px}.component-tree .tree-icon{font-size:14px}.component-tree .tree-text{font-size:13px}.component-timeline .timeline-title{font-weight:500;margin-bottom:12px}.component-timeline .timeline-event{position:relative;padding:8px 0 8px 20px;border-left:2px solid var(--border-color);margin-left:8px}.component-timeline .timeline-dot{position:absolute;left:-5px;top:12px;width:8px;height:8px;border-radius:50%;background:var(--border-color)}.component-timeline .timeline-dot.complete{background:var(--accent-success)}.component-timeline .timeline-dot.current{background:var(--accent-primary)}.component-timeline .timeline-date{font-size:11px;color:var(--text-muted)}.component-timeline .timeline-label{font-weight:500;font-size:13px}.component-timeline .timeline-desc{font-size:12px;color:var(--text-secondary);margin-top:2px}.capsule-choice{padding:8px 0}.choice-buttons{display:flex;flex-wrap:wrap;gap:8px}.choice-btn{padding:10px 16px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-tertiary);color:var(--text-primary);font-size:14px;cursor:pointer;transition:all .15s;min-height:44px}.choice-btn:hover:not(:disabled){background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.choice-btn:disabled{opacity:.5;cursor:not-allowed}.choice-btn.choice-other{border-style:dashed;color:var(--text-muted)}.choice-btn.choice-yes{border-color:var(--accent-success);color:var(--accent-success)}.choice-btn.choice-yes:hover:not(:disabled){background:var(--accent-success);color:#fff}.choice-btn.choice-no{border-color:var(--accent-danger);color:var(--accent-danger)}.choice-btn.choice-no:hover:not(:disabled){background:var(--accent-danger);color:#fff}.choice-confirm{display:flex;gap:8px}.choice-checkboxes{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.choice-checkbox-label{display:flex;align-items:center;gap:10px;cursor:pointer;padding:8px;border-radius:6px;min-height:44px}.choice-checkbox-label:active{background:var(--bg-tertiary)}.choice-checkbox-label input[type=checkbox]{width:20px;height:20px;cursor:pointer;accent-color:var(--accent-primary)}.choice-submit{padding:10px 20px;border:none;border-radius:6px;background:var(--accent-primary);color:#fff;font-size:14px;font-weight:500;cursor:pointer;min-height:44px}.choice-submit:disabled{opacity:.5;cursor:not-allowed}.choice-text-input{display:flex;gap:8px}.choice-input{flex:1;padding:10px 12px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-primary);color:var(--text-primary);font-size:14px;min-height:44px}.choice-input:focus{outline:none;border-color:var(--accent-primary)}.choice-submitted{opacity:.7}.capsule-questions{padding:8px 0}.questions-intro{color:var(--text-secondary);margin-bottom:12px;font-size:13px}.questions-progress{font-size:12px;color:var(--text-muted);margin-bottom:8px}.questions-container{margin-bottom:12px}.question-text{font-weight:500;margin-bottom:12px;color:var(--text-primary);font-size:14px}.question-text-input{display:flex;gap:8px;margin-top:8px}.question-input{flex:1;padding:10px 12px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-primary);color:var(--text-primary);font-size:14px;min-height:44px}.question-input:focus{outline:none;border-color:var(--accent-primary)}.questions-complete{color:var(--accent-success);font-weight:500}.questions-submit{padding:12px 24px;border:none;border-radius:6px;background:var(--accent-success);color:#fff;font-size:14px;font-weight:500;cursor:pointer;min-height:44px}.questions-submit:disabled{opacity:.5;cursor:not-allowed}.questions-submitted{opacity:.7}.design-wrapper{padding:8px 0}.design-title{font-weight:500;font-size:14px;margin-bottom:8px;color:var(--text-primary)}.design-canvas-container{border-radius:8px;overflow:hidden;background:var(--bg-tertiary)}.design-canvas-container svg{display:block;width:100%;height:auto;max-height:70vh}.design-info{display:flex;justify-content:flex-end;margin-top:6px;font-size:11px;color:var(--text-muted)}.design-dimensions{font-family:SF Mono,Monaco,Consolas,monospace}.design-error{padding:20px;text-align:center;color:var(--text-muted);font-style:italic;font-size:13px}.canvas-wrapper{padding:8px 0}.canvas-title{font-weight:500;font-size:14px;margin-bottom:10px;color:var(--text-primary)}.canvas-grid{gap:10px}.canvas-section{background:var(--bg-tertiary);border:2px solid var(--border-color);border-radius:8px;padding:10px;min-height:60px}.canvas-section-label{font-weight:600;font-size:12px;color:var(--text-primary);margin-bottom:6px;padding-bottom:6px;border-bottom:1px solid var(--border-color)}.canvas-section-items{list-style:none;margin:0;padding:0;font-size:13px}.canvas-section-items li{padding:3px 0;color:var(--text-secondary)}.canvas-section-items li:before{content:"•";color:var(--text-muted);margin-right:6px}.install-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.install-banner-content{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.install-banner-icon{flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--accent-primary);color:#fff;border-radius:10px}.install-banner-text{display:flex;flex-direction:column;gap:2px;min-width:0}.install-banner-text strong{font-size:14px;color:var(--text-primary)}.install-banner-text span{font-size:12px;color:var(--text-muted)}.install-banner-actions{display:flex;gap:8px;flex-shrink:0}.install-banner-dismiss{padding:8px 12px;background:none;border:none;color:var(--text-muted);font-size:13px;cursor:pointer}.install-banner-btn{padding:8px 16px;background:var(--accent-primary);color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer}.install-banner-btn:active{opacity:.8}.install-modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;padding:24px;z-index:2000}.install-modal{background:var(--bg-secondary);border-radius:16px;width:100%;max-width:320px;overflow:hidden}.install-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid var(--border-color)}.install-modal-header h3{margin:0;font-size:17px;font-weight:600;color:var(--text-primary)}.install-modal-close{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border:none;border-radius:50%;color:var(--text-muted);font-size:18px;cursor:pointer}.install-modal-content{padding:16px;display:flex;flex-direction:column;gap:16px}.install-step{display:flex;align-items:center;gap:12px;font-size:14px;color:var(--text-primary)}.install-step-num{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:var(--accent-primary);color:#fff;border-radius:50%;font-size:12px;font-weight:600}.install-step .install-icon{flex-shrink:0;color:var(--accent-primary)}.install-modal-btn{margin:16px;padding:14px;background:var(--accent-primary);color:#fff;border:none;border-radius:10px;font-size:15px;font-weight:500;cursor:pointer}.install-modal-btn:active{opacity:.8}.connection-page{display:flex;flex-direction:column;height:100%;background:var(--bg-primary);padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.connection-header{padding:16px;border-bottom:1px solid var(--border-color);display:flex;align-items:baseline;gap:8px}.connection-header h1{margin:0;font-size:24px;font-weight:600;color:var(--text-primary)}.connection-header .branding{font-size:12px;color:var(--text-muted)}.connection-list{flex:1;overflow-y:auto;padding:8px}.connection-empty{padding:16px;color:var(--text-muted)}.setup-guide{text-align:left;background:var(--bg-secondary);border-radius:12px;padding:16px;margin-bottom:16px}.setup-guide h3{margin:0 0 16px;font-size:16px;font-weight:600;color:var(--text-primary)}.setup-step{display:flex;gap:12px;margin-bottom:16px}.setup-step:last-of-type{margin-bottom:0}.step-number{width:24px;height:24px;border-radius:50%;background:var(--accent-primary);color:#fff;font-size:13px;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0}.step-content{flex:1}.step-title{font-weight:600;color:var(--text-primary);margin-bottom:8px;font-size:14px}.step-content ol{margin:0;padding-left:20px;font-size:13px;color:var(--text-secondary)}.step-content ol li{margin-bottom:4px}.step-content ol li:last-child{margin-bottom:0}.step-content p{margin:0;font-size:13px;color:var(--text-secondary)}.step-content a{color:var(--accent-primary);text-decoration:none}.setup-note{margin-top:16px;padding:10px 12px;background:var(--bg-tertiary);border-radius:8px;font-size:12px;color:var(--text-muted);text-align:center}.setup-divider{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--text-muted);text-transform:uppercase}.setup-divider:before,.setup-divider:after{content:"";flex:1;height:1px;background:var(--border-color)}.connection-item{display:flex;align-items:center;padding:12px;margin-bottom:8px;background:var(--bg-secondary);border-radius:8px;border:1px solid var(--border-color)}.connection-item.active{border-color:var(--accent-primary);background:var(--bg-tertiary)}.connection-item-info{flex:1;min-width:0;cursor:pointer}.connection-item-name{font-weight:600;color:var(--text-primary);margin-bottom:4px}.connection-item-url{font-size:12px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.connection-item-actions{display:flex;gap:8px;margin-left:12px}.btn-icon{padding:6px 12px;border:none;border-radius:6px;background:var(--bg-tertiary);color:var(--text-secondary);font-size:12px;cursor:pointer}.btn-icon:active{opacity:.7}.btn-icon.btn-danger{color:var(--accent-danger)}.connection-form{border-top:1px solid var(--border-color);background:var(--bg-secondary)}.form-header{display:flex;justify-content:space-between;align-items:center;padding:16px;cursor:pointer}.form-header h2{margin:0;font-size:16px;font-weight:600;color:var(--text-primary)}.form-toggle{color:var(--text-muted);font-size:12px}.form-content{padding:0 16px 16px}.form-error{padding:8px 12px;margin-bottom:12px;background:#ef44441a;border-radius:6px;color:var(--accent-danger);font-size:13px}.form-group{margin-bottom:12px}.form-group label{display:block;margin-bottom:6px;font-size:13px;font-weight:500;color:var(--text-secondary)}.form-group input,.form-group select{width:100%;padding:10px 12px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-primary);color:var(--text-primary);font-size:15px;box-sizing:border-box}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--accent-primary)}.form-group input:disabled{opacity:.6;background:var(--bg-tertiary)}.form-group select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}.form-actions{display:flex;gap:12px;margin-top:16px}.btn{flex:1;padding:12px 16px;border:none;border-radius:8px;font-size:15px;font-weight:500;cursor:pointer;min-height:44px}.btn:active{opacity:.8}.btn-primary{background:var(--accent-primary);color:#fff}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary)}.connecting-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:24px;background:var(--bg-primary)}.connecting-content{display:flex;flex-direction:column;align-items:center;gap:24px;max-width:320px;text-align:center}.connecting-spinner{width:48px;height:48px;border:3px solid var(--border-color);border-top-color:var(--accent-primary);border-radius:50%;animation:spin 1s linear infinite}.connecting-text{display:flex;flex-direction:column;gap:8px}.connecting-text h2{margin:0;font-size:20px;font-weight:600;color:var(--text-primary)}.connecting-text p{margin:0;font-size:14px;color:var(--text-muted)}.connecting-error{display:flex;flex-direction:column;align-items:center;gap:16px}.connecting-error-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--error-bg, rgba(239, 68, 68, .1));color:var(--error-color, #ef4444);border-radius:50%}.connecting-error-text{display:flex;flex-direction:column;gap:8px}.connecting-error-text h2{margin:0;font-size:18px;font-weight:600;color:var(--text-primary)}.connecting-error-text p{margin:0;font-size:14px;color:var(--text-muted);line-height:1.5}.connecting-actions{display:flex;flex-direction:column;gap:12px;width:100%;margin-top:8px}.connecting-actions .btn{width:100%;padding:14px 20px;border:none;border-radius:10px;font-size:15px;font-weight:500;cursor:pointer}.connecting-actions .btn-primary{background:var(--accent-primary);color:#fff}.connecting-actions .btn-secondary{background:var(--bg-secondary);color:var(--text-primary)}.chat-page{display:flex;flex-direction:column;height:100%;overflow-x:hidden;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.chat-not-connected{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px;text-align:center;color:var(--text-secondary)}.connect-btn{padding:12px 24px;background:var(--accent-primary);color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:500;min-height:44px}.connect-btn:active{opacity:.8}.cancel-btn{padding:12px 24px;background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-color);border-radius:8px;font-size:15px;font-weight:500;min-height:44px}.cancel-btn:active{opacity:.8}.connecting-spinner{width:32px;height:32px;border:3px solid var(--border-color);border-top-color:var(--accent-primary);border-radius:50%;animation:spin 1s linear infinite}.connection-error{color:var(--accent-danger);font-size:13px;max-width:280px;word-break:break-word}.drawer-overlay{position:fixed;inset:0;background:#00000080;z-index:1000}.drawer{position:fixed;top:0;bottom:0;width:280px;max-width:85%;background:var(--bg-secondary);display:flex;flex-direction:column;animation:slideIn .25s ease}.drawer-left{left:0;border-right:1px solid var(--border-color)}.drawer-right{right:0;border-left:1px solid var(--border-color)}@keyframes slideIn{0%{transform:translate(-100%)}to{transform:translate(0)}}.drawer-right{animation-name:slideInRight}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-header{display:flex;align-items:center;gap:8px;padding:16px;padding-top:calc(env(safe-area-inset-top) + 16px);border-bottom:1px solid var(--border-color)}.drawer-header h2{flex:1;margin:0;font-size:18px;font-weight:600}.drawer-close{width:32px;height:32px;background:none;border:none;font-size:24px;color:var(--text-muted);display:flex;align-items:center;justify-content:center}.drawer-content{flex:1;overflow-y:auto;padding:8px}.drawer-create{display:flex;gap:8px;padding:8px;margin-bottom:8px}.drawer-create input{flex:1;min-width:0;padding:10px 12px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-primary);color:var(--text-primary);font-size:14px}.drawer-create button{width:44px;height:44px;border:none;border-radius:8px;background:var(--accent-primary);color:#fff;font-size:20px;font-weight:700}.drawer-create button:disabled{opacity:.5}.drawer-accordion{border-bottom:1px solid var(--border-color);margin-bottom:8px}.drawer-accordion-header{display:flex;align-items:center;gap:8px;padding:12px;cursor:pointer;color:var(--text-muted);font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.drawer-accordion-header:active{background:var(--bg-tertiary);color:var(--text-primary)}.drawer-accordion-icon{font-size:8px}.drawer-accordion-title{flex:1}.drawer-accordion-action{background:none;border:none;padding:6px;color:var(--text-muted);display:flex;align-items:center;justify-content:center;border-radius:4px}.drawer-accordion-action:active{background:var(--bg-tertiary);color:var(--text-primary)}.drawer-accordion-content{background:var(--bg-secondary)}.drawer-accordion-content .drawer-item{padding-left:24px;font-size:13px}.drawer-accordion-empty{padding:10px 24px;color:var(--text-muted);font-size:13px;font-style:italic}.drawer-special-sessions{margin-bottom:8px}.drawer-divider{height:1px;background:var(--border-color);margin:8px 0}.drawer-item{display:flex;align-items:center;padding:12px;margin-bottom:4px;border-radius:8px;cursor:pointer;color:var(--text-secondary)}.drawer-item:active{background:var(--bg-tertiary)}.drawer-item.active{background:var(--accent-primary);color:#fff}.drawer-item.special{font-weight:500}.drawer-item-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drawer-item-delete{width:32px;height:32px;background:none;border:none;color:var(--text-muted);font-size:18px;display:flex;align-items:center;justify-content:center;border-radius:4px}.drawer-item.active .drawer-item-delete{color:#ffffffb3}.drawer-empty,.drawer-loading{padding:24px;text-align:center;color:var(--text-muted)}.drawer-list{list-style:none;margin:0;padding:0}.tool-count{background:var(--bg-tertiary);color:var(--text-secondary);font-size:12px;padding:2px 8px;border-radius:12px}.tool-calls-list{display:flex;flex-direction:column;gap:8px}.tool-call-entry{background:var(--bg-tertiary);border-radius:8px;padding:12px;cursor:pointer}.tool-call-entry.expanded{background:var(--bg-primary);border:1px solid var(--border-color)}.tool-call-header{display:flex;align-items:center;gap:8px;font-size:13px}.tool-status-icon{font-size:14px}.tool-status-icon.running{color:var(--accent-warning);animation:spin 1s linear infinite}.tool-status-icon.success{color:var(--accent-success)}.tool-status-icon.error{color:var(--accent-danger)}.tool-name-container{flex:1;display:flex;flex-direction:column;min-width:0}.tool-name{font-weight:500;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tool-delegated-to{font-size:11px;color:var(--accent-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tool-time,.tool-duration{color:var(--text-muted);font-size:11px}.tool-input-preview{margin-top:6px;font-size:12px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tool-call-details{margin-top:12px}.tool-detail-section{margin-bottom:12px}.tool-detail-label{font-size:11px;font-weight:500;color:var(--text-muted);margin-bottom:4px}.tool-detail-content{font-size:12px;background:var(--bg-tertiary);padding:8px;border-radius:4px;overflow-x:auto;margin:0;white-space:pre-wrap;word-break:break-word}.tool-call-entry.phase{background:var(--bg-secondary);border-left:3px solid var(--accent-primary)}.tool-call-entry.phase .tool-name{color:var(--accent-primary)}.tool-call-entry.phase.success{border-left-color:var(--accent-success)}.tool-call-entry.phase.success .tool-name{color:var(--text-primary)}.tool-call-entry.prerequisite{background:var(--bg-secondary);border-left:3px solid var(--accent-warning)}.tool-call-entry.prerequisite .tool-name{color:var(--accent-warning)}.tool-call-entry.prerequisite.success{border-left-color:var(--accent-success)}.tool-call-entry.prerequisite.success .tool-name{color:var(--text-primary)}.tool-call-entry.prerequisite.error{border-left-color:var(--accent-danger)}.tool-detail-content.tool-error{color:var(--accent-danger)}.schedules-modal-overlay{position:fixed;inset:0;background:#0009;z-index:1100;display:flex;align-items:center;justify-content:center;padding:20px}.schedules-modal{background:var(--bg-secondary);border-radius:12px;width:100%;max-width:400px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden}.schedules-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid var(--border-color)}.schedules-modal-header h3{margin:0;font-size:16px;font-weight:600}.schedules-modal-close{width:32px;height:32px;background:none;border:none;font-size:24px;color:var(--text-muted);display:flex;align-items:center;justify-content:center}.schedules-modal-body{padding:16px;overflow-y:auto}.schedules-loading,.schedules-empty{text-align:center;color:var(--text-muted);padding:24px}.schedules-table{width:100%;border-collapse:collapse;font-size:13px}.schedules-table th,.schedules-table td{padding:10px 8px;text-align:left;border-bottom:1px solid var(--border-color)}.schedules-table th{font-weight:600;color:var(--text-muted);font-size:11px;text-transform:uppercase}.schedules-table td{color:var(--text-primary)}.schedule-run-btn{background:none;border:none;padding:8px;color:var(--text-muted);display:flex;align-items:center;justify-content:center;border-radius:4px}.schedule-run-btn:active{background:var(--bg-tertiary);color:var(--accent-success)}.schedules-show-system{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-secondary);margin-left:auto;margin-right:12px}.schedules-show-system input{width:18px;height:18px}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}:root{--radius: 8px}:root,[data-theme=tango]{--bg-primary: #2e3436;--bg-secondary: #3c3c3c;--bg-tertiary: #4a4a4a;--bg-hover: #555753;--border-color: #555753;--text-primary: #eeeeec;--text-secondary: #babdb6;--text-muted: #888a85;--accent-primary: #729fcf;--accent-success: #8ae234;--accent-warning: #fcaf3e;--accent-danger: #ef2929;--accent-info: #ad7fa8}[data-theme=dark]{--bg-primary: #0d1117;--bg-secondary: #161b22;--bg-tertiary: #21262d;--bg-hover: #30363d;--border-color: #30363d;--text-primary: #e6edf3;--text-secondary: #8b949e;--text-muted: #6e7681;--accent-primary: #58a6ff;--accent-success: #3fb950;--accent-warning: #d29922;--accent-danger: #f85149;--accent-info: #a371f7}[data-theme=light]{--bg-primary: #ffffff;--bg-secondary: #f6f8fa;--bg-tertiary: #eaeef2;--bg-hover: #f3f4f6;--border-color: #d0d7de;--text-primary: #1f2328;--text-secondary: #59636e;--text-muted: #8c959f;--accent-primary: #0969da;--accent-success: #1a7f37;--accent-warning: #9a6700;--accent-danger: #d1242f;--accent-info: #8250df}[data-theme=blue]{--bg-primary: #15202b;--bg-secondary: #192734;--bg-tertiary: #22303c;--bg-hover: #2c3e50;--border-color: #38444d;--text-primary: #ffffff;--text-secondary: #8899a6;--text-muted: #657786;--accent-primary: #1d9bf0;--accent-success: #00ba7c;--accent-warning: #ffad1f;--accent-danger: #f4212e;--accent-info: #794bc4}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0;height:100%;width:100%;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background:var(--bg-primary);color:var(--text-primary);font-size:15px;line-height:1.5}#root{height:100%;width:100%}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit}.app-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:16px;color:var(--text-secondary)}.loading-spinner,.connecting-spinner{width:32px;height:32px;border:3px solid var(--border-color);border-top-color:var(--accent-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
