:root{--bg:#0d1117;--surface:#161b22;--surface-light:#21262d;--primary:#4caf50;--primary-dark:#388e3c;--text:#e6edf3;--text-secondary:#8b949e;--user-bubble:#1a3a1a;--assistant-bubble:#1c2128;--border:#30363d;--error:#f85149;--success:#56d364;--accent:#ffab1a;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, "Cascadia Code", Consolas, monospace;font:15px/1.5 var(--sans);color:var(--text);background:var(--bg);font-synthesis:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box;touch-action:manipulation}body{margin:0}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}:focus:not(:focus-visible),main:focus{outline:none}.team-header-title,.notepad-header-title,.kb-header-title,.deploy-title,.settings-header h1{font-size:inherit;font-weight:inherit;line-height:inherit;margin:0}#root{flex-direction:column;max-width:100%;height:100%;display:flex;overflow:hidden}.chat-message{word-wrap:break-word;-webkit-touch-callout:none;border-radius:8px;max-width:85%;margin:4px 0;padding:12px 16px}.chat-message.user{background:var(--user-bubble);white-space:pre-wrap;-webkit-user-select:none;user-select:none;align-self:flex-end}.chat-message.assistant{background:var(--assistant-bubble);align-self:flex-start}.chat-message.failed{opacity:.7;border:1px solid #e74c3c}.send-failed{color:#e74c3c;margin-top:4px;font-size:.75rem;display:block}.markdown-body{color:var(--text);word-wrap:break-word;line-height:1.6}.markdown-body>:first-child{margin-top:0}.markdown-body>:last-child{margin-bottom:0}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{color:var(--text);margin:20px 0 10px;font-weight:600;line-height:1.3}.markdown-body h1{border-bottom:1px solid var(--border);padding-bottom:6px;font-size:1.6em}.markdown-body h2{border-bottom:1px solid var(--border);padding-bottom:4px;font-size:1.35em}.markdown-body h3{font-size:1.15em}.markdown-body h4{font-size:1em}.markdown-body p{margin:8px 0}.markdown-body a{color:var(--primary);text-decoration:none}.markdown-body a:hover{text-decoration:underline}.markdown-body ul,.markdown-body ol{margin:8px 0;padding-left:24px}.markdown-body li,.markdown-body li>p{margin:4px 0}.markdown-body blockquote{border-left:3px solid var(--primary);color:var(--text-secondary);background:var(--surface);border-radius:0 4px 4px 0;margin:8px 0;padding:4px 16px}.markdown-body blockquote>:first-child{margin-top:0}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body table{border-collapse:collapse;width:100%;margin:12px 0;font-size:.9em}.markdown-body th,.markdown-body td{border:1px solid var(--border);text-align:left;padding:6px 12px}.markdown-body th{background:var(--surface-light);font-weight:600}.markdown-body tr:nth-child(2n){background:var(--surface)}.markdown-body hr{border:none;border-top:1px solid var(--border);margin:16px 0}.markdown-body strong{color:var(--text);font-weight:600}.markdown-body em{font-style:italic}.markdown-body img{border-radius:6px;max-width:100%}.markdown-body .inline-code{font-family:var(--mono);background:var(--surface-light);border:1px solid var(--border);color:#e6edf3;border-radius:4px;padding:2px 6px;font-size:.88em}.code-block{border:1px solid var(--border);background:#0d1117;border-radius:8px;margin:12px 0;overflow:hidden}.code-block-header{background:var(--surface-light);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:6px 12px;font-size:.8em;display:flex}.code-block-lang{color:var(--text-secondary);font-family:var(--mono);text-transform:lowercase}.code-block-copy{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;font-size:.85em;font-family:var(--sans);background:0 0;border-radius:4px;padding:2px 10px;transition:color .15s,border-color .15s}.code-block-copy:hover{color:var(--text);border-color:var(--text-secondary)}.code-block pre{margin:0;padding:12px 16px;font-size:.88em;line-height:1.5;overflow-x:auto}.code-block code{font-family:var(--mono);background:0 0;padding:0}.tool-uses-list{flex-direction:column;gap:8px;margin-bottom:12px;display:flex}.show-more-tools{border:1px dashed var(--surface-light);color:var(--text-secondary,#a0a0a0);cursor:pointer;text-align:center;background:0 0;border-radius:8px;padding:8px 12px;font-size:.85rem}.show-more-tools:hover{background:var(--surface);color:var(--text-primary,#e0e0e0)}.tool-use-block{background:var(--surface);border:1px solid var(--surface-light);border-radius:8px;overflow:hidden}.tool-use-header{width:100%;color:var(--text);font-family:var(--sans);text-align:left;-webkit-tap-highlight-color:transparent;background:0 0;border:none;align-items:center;gap:8px;padding:8px 12px;font-size:.88em;display:flex}.tool-use-header:hover{background:var(--surface-light)}.tool-use-icon{flex-shrink:0;font-size:1.1em}.tool-use-name{color:var(--text);font-weight:600}.tool-use-duration{color:var(--text-secondary);margin-left:auto;font-size:.85em}.tool-use-chevron{color:var(--text-secondary);flex-shrink:0;font-size:1.2em;font-weight:600;transition:transform .2s;transform:rotate(0)}.tool-use-chevron.expanded{transform:rotate(90deg)}.tool-use-body{transition:max-height .25s,opacity .2s;overflow:hidden}.tool-use-section{padding:0 12px 10px}.tool-use-section-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);border-top:1px solid var(--surface-light);margin-bottom:4px;padding-top:8px;font-size:.75em;font-weight:600}.tool-use-section-content{max-height:300px;overflow:auto}.tool-use-pre{background:var(--bg);font-family:var(--mono);color:var(--text);white-space:pre-wrap;word-break:break-word;border-radius:4px;margin:0;padding:8px;font-size:.82em;line-height:1.5;overflow-x:auto}.chat-page{flex-direction:column;flex:1;max-width:100%;min-height:0;display:flex;position:relative}.chat-header{background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:8px;padding:8px 12px;display:flex}.chat-header-btn{width:36px;height:36px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.chat-header-btn:hover{background:var(--surface-light);color:var(--text)}.chat-header-new{color:var(--primary)}.chat-header-new:hover{color:var(--primary);background:#4caf5026}.chat-header-info{flex:1;align-items:center;gap:10px;min-width:0;display:flex;overflow:hidden}.chat-header-project{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:.88em;font-weight:600;overflow:hidden}.chat-header-status{color:var(--accent);white-space:nowrap;font-size:.8em}.chat-messages{flex-direction:column;flex:1;padding:16px;display:flex;position:relative;overflow:hidden}.scroll-to-bottom-btn{z-index:100;color:#fff;cursor:pointer;background:#58a6ffd9;border:none;border-radius:50%;width:40px;height:40px;font-size:20px;transition:opacity .2s;position:absolute;bottom:16px;right:16px;box-shadow:0 2px 8px #0000004d}.chat-empty{color:var(--text-secondary);flex:1;justify-content:center;align-items:center;font-size:1.1em;display:flex}.queue-badge-container{justify-content:center;padding:0 16px 4px;display:flex;position:relative}.queue-badge{background:var(--surface-light);border:1px solid var(--border);color:var(--accent);cursor:pointer;font-size:.8em;font-weight:600;font-family:var(--sans);border-radius:16px;padding:4px 14px;transition:background .15s}.queue-badge:hover{background:var(--surface)}.queue-clear-popup{background:var(--surface);border:1px solid var(--border);color:var(--text);white-space:nowrap;z-index:20;border-radius:8px;align-items:center;gap:10px;margin-bottom:6px;padding:10px 14px;font-size:.85em;display:flex;position:absolute;bottom:100%;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #0006}.queue-clear-btn{background:var(--error);color:#fff;font-size:.85em;font-family:var(--sans);cursor:pointer;border:none;border-radius:6px;padding:4px 12px}.queue-clear-btn:hover{opacity:.85}.queue-clear-cancel{border:1px solid var(--border);font-size:.85em;font-family:var(--sans);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:6px;padding:4px 12px}.queue-clear-cancel:hover{color:var(--text);border-color:var(--text-secondary)}.session-drawer-backdrop{-webkit-backdrop-filter:blur(2px);opacity:0;pointer-events:none;z-index:90;background:#00000080;transition:opacity .25s;position:fixed;inset:0}.session-drawer-backdrop.open{opacity:1;pointer-events:auto}.session-drawer{background:var(--surface);border-right:1px solid var(--border);z-index:100;flex-direction:column;width:min(320px,85vw);transition:transform .25s;display:flex;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.session-drawer.open{transform:translate(0)}.session-drawer-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.session-drawer-title{color:var(--text);font-size:1em;font-weight:600}.session-drawer-close{width:32px;height:32px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;display:flex}.session-drawer-close:hover{background:var(--surface-light);color:var(--text)}.session-drawer-list{flex:1;padding:8px;overflow-y:auto}.session-drawer-empty{text-align:center;color:var(--text-secondary);padding:24px 16px;font-size:.9em}.session-item{text-align:left;cursor:pointer;width:100%;font-family:var(--sans);color:var(--text);background:0 0;border:1px solid #0000;border-radius:8px;margin-bottom:4px;padding:10px 12px;transition:background .15s,border-color .15s;display:block}.session-item:hover{background:var(--surface-light)}.session-item.active{border-color:var(--primary);background:#4caf5014}.session-item-title{white-space:nowrap;text-overflow:ellipsis;margin-bottom:2px;font-size:.9em;font-weight:500;overflow:hidden}.session-item-meta{color:var(--text-secondary);gap:12px;font-size:.78em;display:flex}.composer-container{padding:12px 16px;padding-bottom:calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--surface);flex-shrink:0;position:relative}.composer-container.dragging{border:2px dashed var(--primary);border-radius:8px}.composer-drop-overlay{border:2px dashed var(--primary);color:var(--primary);z-index:10;pointer-events:none;background:#4caf501f;border-radius:8px;justify-content:center;align-items:center;font-size:1.1em;font-weight:600;display:flex;position:absolute;inset:0}.composer-attachments{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.attachment-chip{background:var(--surface-light);border:1px solid var(--border);border-radius:6px;align-items:center;gap:6px;max-width:220px;padding:4px 8px;font-size:.82em;display:flex}.attachment-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.attachment-size{color:var(--text-secondary);flex-shrink:0}.attachment-remove{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0 2px;font-size:1.2em;line-height:1}.attachment-remove:hover{color:var(--error)}.composer-input-row{align-items:flex-end;gap:8px;display:flex}.composer-textarea{resize:none;border:1px solid var(--border);background:var(--bg);color:var(--text);font-family:var(--sans);border-radius:8px;flex:1;max-height:40vh;padding:10px 12px;font-size:15px;line-height:1.5;transition:height .1s;overflow-y:auto}.composer-textarea::placeholder{color:var(--text-secondary)}.composer-textarea:focus{border-color:var(--primary);outline:none}.composer-textarea:disabled{opacity:.5}.composer-actions{flex-shrink:0;gap:4px;padding-bottom:2px;display:flex}.composer-btn{width:36px;height:36px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.composer-btn:hover:not(:disabled){background:var(--surface-light);color:var(--text)}.composer-btn:disabled{opacity:.4;cursor:default}.composer-send{color:var(--primary)}.composer-send:hover:not(:disabled){color:var(--primary);background:#4caf5026}.composer-error{color:var(--error);margin-bottom:6px;font-size:.82em}.composer-hint{color:var(--text-secondary);text-align:right;margin-top:4px;font-size:.72em}.hljs{color:#e6edf3;background:#0d1117}.hljs-keyword,.hljs-selector-tag,.hljs-literal,.hljs-section,.hljs-link{color:#569cd6}.hljs-title,.hljs-title.class_,.hljs-title.function_{color:#dcdcaa}.hljs-type,.hljs-built_in,.hljs-selector-id,.hljs-selector-class{color:#4ec9b0}.hljs-string,.hljs-attr,.hljs-template-tag,.hljs-template-variable{color:#ce9178}.hljs-number,.hljs-symbol{color:#b5cea8}.hljs-comment,.hljs-quote{color:#6a9955;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword{color:#569cd6}.hljs-variable,.hljs-params{color:#9cdcfe}.hljs-regexp{color:#d16969}.hljs-punctuation,.hljs-operator{color:#d4d4d4}.hljs-tag,.hljs-name{color:#569cd6}.hljs-attribute{color:#9cdcfe}.hljs-deletion{color:var(--error);background:#f851491a}.hljs-addition{color:var(--success);background:#56d3641a}.app-root{max-width:100vw;height:100dvh;padding-top:env(safe-area-inset-top);flex-direction:column;display:flex;overflow-x:hidden}.app-nav{background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;display:flex}.app-nav-tab{color:var(--text-secondary);font-family:var(--sans);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;justify-content:center;align-items:center;gap:6px;padding:10px 16px;font-size:.9em;font-weight:600;transition:color .15s,border-color .15s;display:flex;position:relative}.nav-icon{flex-shrink:0;width:18px;height:18px}.nav-badge{background:var(--error);color:#fff;border-radius:9px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:.7em;font-weight:700;line-height:1;display:inline-flex}.app-nav-tab:hover{color:var(--text)}.app-nav-tab.active{color:var(--primary);border-bottom-color:var(--primary)}.escalation-toast{border-bottom:1px solid var(--accent);color:var(--accent);cursor:pointer;background:#ffab1a1f;flex-shrink:0;align-items:center;gap:10px;padding:10px 16px;font-size:.85em;animation:.25s ease-out toast-slide-in;display:flex}.escalation-toast-icon{background:var(--accent);width:22px;height:22px;color:var(--bg);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.85em;font-weight:800;display:inline-flex}.escalation-toast-text{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.escalation-toast-action{white-space:nowrap;flex-shrink:0;font-weight:600}@keyframes toast-slide-in{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}.team-page{flex-direction:column;flex:1;min-height:0;display:flex}.team-header{background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex}.team-header-left{align-items:center;gap:10px;display:flex}.team-header-title{color:var(--text);font-size:1em;font-weight:700}.team-header-project{color:var(--text-secondary);background:var(--surface-light);border-radius:4px;padding:2px 8px;font-size:.82em}.team-header-right{align-items:center;gap:10px;display:flex}.team-add-btn{background:var(--primary);color:#fff;font-family:var(--sans);cursor:pointer;white-space:nowrap;border:none;border-radius:6px;padding:6px 14px;font-size:.85em;font-weight:600;transition:opacity .15s}.team-add-btn:hover{opacity:.85}.team-board-container{padding:12px;padding-bottom:calc(12px + env(safe-area-inset-bottom));flex:1;position:relative;overflow:auto}.team-loading{height:100%;color:var(--text-secondary);justify-content:center;align-items:center;font-size:.95em;display:flex}.team-error-toast{border-bottom:1px solid var(--error);color:var(--error);cursor:pointer;text-align:center;background:#f851491f;flex-shrink:0;padding:8px 16px;font-size:.82em}.pipeline-board{gap:12px;min-height:100%;display:flex}@media (width<=768px){.pipeline-board{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;overflow-x:auto}}.pipeline-column{background:var(--surface);border:1px solid var(--border);scroll-snap-align:start;border-radius:8px;flex-direction:column;flex:1;min-width:240px;display:flex;overflow:hidden}.pipeline-column-header{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:8px;padding:10px 12px;display:flex}.pipeline-column-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.pipeline-column-label{color:var(--text);font-size:.85em;font-weight:600}.pipeline-column-count{color:var(--text-secondary);background:var(--surface-light);border-radius:10px;margin-left:auto;padding:1px 7px;font-size:.78em}.pipeline-column-body{flex-direction:column;flex:1;gap:8px;padding:8px;display:flex;overflow-y:auto}.pipeline-column-empty{text-align:center;color:var(--text-secondary);padding:16px;font-size:.82em}.backlog-card{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:10px 12px}.backlog-card-header{align-items:center;gap:6px;margin-bottom:6px;display:flex}.backlog-card-badge{color:#fff;text-transform:uppercase;letter-spacing:.03em;border-radius:10px;padding:1px 7px;font-size:.7em;font-weight:600}.backlog-card-priority{color:var(--text-secondary);margin-left:auto;font-size:.72em}.backlog-card-time{color:var(--text-secondary);font-size:.72em}.backlog-card-title{color:var(--text);word-break:break-word;margin-bottom:6px;font-size:.88em;font-weight:500;line-height:1.4}.backlog-card-section{margin-top:8px}.backlog-card-question{background:var(--surface);color:var(--text-secondary);border-left:3px solid #f59e0b;border-radius:0 4px 4px 0;margin:0 0 8px;padding:6px 10px;font-size:.82em}.backlog-card-textarea{resize:vertical;border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);font-family:var(--sans);border-radius:6px;margin-bottom:6px;padding:6px 8px;font-size:.82em}.backlog-card-textarea:focus{border-color:var(--primary);outline:none}.backlog-card-textarea::placeholder{color:var(--text-secondary)}.backlog-card-phase-info{color:var(--text-secondary);margin-bottom:6px;font-size:.82em}.backlog-card-actions{flex-wrap:wrap;gap:6px;display:flex}.backlog-card-btn{font-family:var(--sans);cursor:pointer;border:none;border-radius:5px;padding:4px 10px;font-size:.78em;font-weight:600;transition:opacity .15s}.backlog-card-btn:disabled{opacity:.4;cursor:default}.backlog-card-btn:hover:not(:disabled){opacity:.8}.backlog-card-btn-primary{background:var(--primary);color:#fff}.backlog-card-btn-secondary{background:var(--surface-light);color:var(--text);border:1px solid var(--border)}.backlog-card-btn-danger{background:var(--error);color:#fff}.backlog-card-btn-cancel{color:var(--text-secondary);border:1px solid var(--border);background:0 0;width:100%;margin-top:8px}.backlog-card-btn-cancel:hover{color:var(--error);border-color:var(--error)}.backlog-card-phases-list{margin:8px 0 0;padding:0;font-size:.78em;list-style:none}.backlog-card-phase-item{color:var(--text);border-bottom:1px solid var(--border);align-items:center;gap:6px;padding:3px 0;display:flex}.backlog-card-phase-item:last-child{border-bottom:none}.backlog-card-phase-order{color:var(--text-secondary);flex-shrink:0;font-weight:600}.backlog-card-phase-status{color:var(--text-secondary);margin-left:auto;font-size:.9em}.backlog-card-progress-bar{background:var(--surface-light);border-radius:3px;width:100%;height:6px;margin-bottom:4px;overflow:hidden}.backlog-card-progress-fill{background:var(--primary);border-radius:3px;height:100%;transition:width .3s}.backlog-card-progress-text{color:var(--text-secondary);font-size:.75em}.backlog-card-error{color:var(--error);word-break:break-word;background:#f8514914;border-radius:4px;margin-bottom:6px;padding:6px 8px;font-size:.78em}.backlog-card-waiting{color:var(--text-secondary);padding:6px 0;font-size:.78em;font-style:italic}.orchestrator-controls{align-items:center;gap:10px;display:flex}.orchestrator-status{align-items:center;gap:6px;display:flex}.orchestrator-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.orchestrator-label{color:var(--text);white-space:nowrap;font-size:.82em;font-weight:600}.orchestrator-buttons{gap:4px;display:flex}.orchestrator-btn{border:1px solid var(--border);background:var(--surface-light);color:var(--text);font-family:var(--sans);cursor:pointer;white-space:nowrap;border-radius:5px;padding:4px 10px;font-size:.78em;font-weight:600;transition:background .15s,border-color .15s}.orchestrator-btn:hover{background:var(--surface);border-color:var(--text-secondary)}.orchestrator-btn-start,.orchestrator-btn-resume{color:var(--primary);border-color:var(--primary)}.orchestrator-btn-start:hover,.orchestrator-btn-resume:hover{background:#4caf501f}.orchestrator-btn-stop{color:var(--error);border-color:var(--error)}.orchestrator-btn-stop:hover{background:#f851491f}.orchestrator-btn-pause{color:var(--accent);border-color:var(--accent)}.orchestrator-btn-pause:hover{background:#ffab1a1f}.modal-backdrop{-webkit-backdrop-filter:blur(2px);z-index:200;background:#0009;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-content{background:var(--surface);border:1px solid var(--border);border-radius:12px;width:100%;max-width:440px;padding:20px;box-shadow:0 8px 24px #00000080}.modal-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.modal-title{color:var(--text);font-size:1em;font-weight:700}.modal-close{width:30px;height:30px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;font-size:1.3em;display:flex}.modal-close:hover{background:var(--surface-light);color:var(--text)}.modal-label{color:var(--text);margin-bottom:12px;font-size:.85em;font-weight:600;display:block}.modal-textarea{resize:vertical;border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text);font-family:var(--sans);border-radius:8px;margin-top:6px;padding:10px 12px;font-size:.9em;line-height:1.5;display:block}.modal-textarea:focus{border-color:var(--primary);outline:none}.modal-textarea::placeholder{color:var(--text-secondary)}.modal-select{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text);font-family:var(--sans);border-radius:8px;margin-top:6px;padding:8px 10px;font-size:.9em;display:block}.modal-select:focus{border-color:var(--primary);outline:none}.modal-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.modal-btn{font-family:var(--sans);cursor:pointer;border:none;border-radius:6px;padding:8px 16px;font-size:.85em;font-weight:600;transition:opacity .15s}.modal-btn:disabled{opacity:.4;cursor:default}.modal-btn:hover:not(:disabled){opacity:.85}.modal-btn-cancel{background:var(--surface-light);color:var(--text);border:1px solid var(--border)}.modal-btn-submit{background:var(--primary);color:#fff}.file-tree{flex:1;min-height:0;overflow-y:auto}.file-tree-empty{color:var(--text-muted);text-align:center;padding:16px}.file-tree-item{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;align-items:center;gap:4px;padding:4px 8px;font-size:13px;line-height:1.6;display:flex}.file-tree-item:hover{background:var(--surface-light)}.file-tree-item-selected{background:var(--surface-light);border-right:2px solid var(--primary)}.file-tree-arrow{text-align:center;width:14px;color:var(--text-muted);flex-shrink:0;font-size:10px}.file-tree-arrow-spacer{visibility:hidden}.file-tree-icon{text-align:center;flex-shrink:0;width:18px;font-size:14px}.file-tree-name{text-overflow:ellipsis;overflow:hidden}.file-tree-loading{color:var(--text-muted);padding:4px 8px;font-size:12px}.explorer-page{flex-direction:column;height:100%;display:flex;overflow:hidden}.explorer-breadcrumb{color:var(--text-muted);border-bottom:1px solid var(--border);background:var(--surface);white-space:nowrap;flex-shrink:0;align-items:center;gap:0;padding:8px 12px;font-size:12px;display:flex;overflow-x:auto}.explorer-breadcrumb-item{color:var(--primary);cursor:pointer;background:0 0;border:none;padding:0 2px;font-family:inherit;font-size:12px}.explorer-breadcrumb-item:hover{text-decoration:underline}.explorer-breadcrumb-root{font-weight:600}.explorer-breadcrumb-sep{color:var(--text-muted);margin:0 2px}.explorer-breadcrumb-current{color:var(--text);font-weight:500}.explorer-panels{flex:1;min-height:0;display:flex;overflow:hidden}.explorer-tree-panel{border-right:1px solid var(--border);flex-direction:column;width:40%;min-width:200px;max-width:400px;display:flex;overflow:hidden}.explorer-content-panel{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.explorer-content{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.explorer-back-btn{color:var(--primary);cursor:pointer;text-align:left;border:none;border-bottom:1px solid var(--border);background:0 0;padding:8px 12px;font-family:inherit;font-size:13px;display:none}.explorer-file-content{color:var(--text);background:var(--bg);white-space:pre;tab-size:4;flex:1;margin:0;padding:12px 16px;font-family:Cascadia Code,Fira Code,Consolas,monospace;font-size:13px;line-height:1.5;overflow:auto}.explorer-loading{color:var(--text-muted);text-align:center;padding:24px;font-size:13px}.explorer-placeholder{color:var(--text-muted);flex:1;justify-content:center;align-items:center;font-size:14px;display:flex}.editor-toolbar{background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:8px;padding:6px 12px;display:flex}.editor-toolbar-filename{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.editor-badge-readonly{background:var(--border);color:var(--text-muted);border-radius:4px;padding:1px 6px;font-size:11px}.editor-badge-warning{color:#ffb347;background:#5a3e00;border-radius:4px;padding:1px 6px;font-size:11px}.editor-toolbar-spacer{flex:1}.editor-toolbar-btn{background:var(--border);color:var(--text);cursor:pointer;border:none;border-radius:4px;padding:4px 12px;font-family:inherit;font-size:12px}.editor-toolbar-btn:hover{background:var(--text-muted)}.editor-toolbar-btn:disabled{opacity:.5;cursor:not-allowed}.editor-edit-active{background:var(--primary);color:#fff}.editor-edit-active:hover{opacity:.9;background:var(--primary)}.editor-save-btn{color:#fff;background:#2ea043}.editor-save-btn:hover{background:#3fb950}.editor-save-status{color:var(--text-muted);font-size:12px}.editor-save-ok{color:#3fb950}.editor-save-err{color:#f85149}.editor-edit-warning{color:#ffb347;border-bottom:1px solid var(--border);background:#5a3e0033;flex-shrink:0;padding:4px 12px;font-size:11px}.code-editor-container{flex:1;min-height:0;overflow:auto}.code-editor-container .cm-editor{height:100%}.code-editor-container .cm-scroller{font-family:Cascadia Code,Fira Code,Consolas,monospace;font-size:13px;line-height:1.5;overflow:auto}@media (width<=768px){.explorer-tree-panel{border-right:none;width:100%;max-width:none}.explorer-content-panel{width:100%}.explorer-panel-hidden-mobile{display:none}.explorer-back-btn{display:block}}.confirm-overlay{z-index:1000;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.confirm-dialog{background:var(--bg-secondary,#1e1e2e);border:1px solid var(--border,#444);border-radius:12px;width:90%;max-width:340px;padding:20px 24px}.confirm-message{color:var(--text,#cdd6f4);margin:0 0 16px;font-size:14px;line-height:1.5}.confirm-buttons{justify-content:flex-end;gap:8px;display:flex}.confirm-btn{cursor:pointer;border:none;border-radius:6px;padding:8px 16px;font-size:13px}.confirm-btn-cancel{background:var(--bg-tertiary,#313244);color:var(--text,#cdd6f4)}.confirm-btn-discard{color:#fff;background:#f85149}.diff-viewer{flex:1;min-height:0;overflow:auto}.diff-pre{margin:0;padding:8px 0;font-family:Cascadia Code,Fira Code,Consolas,monospace;font-size:13px;line-height:1.5}.diff-line{min-height:1.5em;padding:0 12px 0 0;display:flex}.diff-linenum{text-align:right;width:40px;color:var(--text-muted,#6c7086);-webkit-user-select:none;user-select:none;opacity:.6;flex-shrink:0;padding-right:8px;font-size:12px;display:inline-block}.diff-line-prefix{-webkit-user-select:none;user-select:none;flex-shrink:0;width:16px;display:inline-block}.diff-line-content{white-space:pre;flex:1;min-width:0}.diff-line-added{color:#3fb950;background:#2ea04326}.diff-line-removed{color:#f85149;background:#f8514926}.diff-line-context{color:var(--text-secondary,#a6adc8)}.diff-line-hunk{color:#89b4fa;padding:4px 12px 4px 0;font-weight:700}.diff-line-hunk .diff-linenum,.diff-line-hunk .diff-line-prefix{visibility:hidden}.diff-line-hunk .diff-line-content{padding-left:4px}.diff-empty,.diff-no-changes{text-align:center;color:var(--text-muted,#6c7086);padding:32px 16px;font-size:14px}.editor-toolbar-group{gap:4px;display:flex}.editor-toolbar-btn.editor-view-active{background:var(--primary);color:#fff}.editor-toolbar-btn.editor-view-active:hover{opacity:.9;background:var(--primary)}.diff-loading{text-align:center;color:var(--text-muted,#6c7086);padding:32px 16px;font-size:14px}.notepad-page{flex-direction:column;flex:1;min-height:0;display:flex}.notepad-header{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:12px;padding:12px 16px;display:flex}.notepad-header-title{color:var(--text);font-size:1em;font-weight:700}.notepad-project-selector{position:relative}.notepad-project-btn{border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:4px 10px;font-size:.85em;display:flex}.notepad-project-btn:hover{background:var(--surface-light)}.notepad-chevron{font-size:.7em}.notepad-dropdown{background:var(--surface);border:1px solid var(--border);z-index:50;border-radius:8px;min-width:160px;max-height:240px;margin-top:4px;position:absolute;top:100%;left:0;overflow-y:auto;box-shadow:0 4px 16px #0006}.notepad-dropdown-item{text-align:left;width:100%;color:var(--text);cursor:pointer;background:0 0;border:none;padding:8px 12px;font-size:.85em;display:block}.notepad-dropdown-item:hover{background:var(--surface-light)}.notepad-dropdown-item.active{color:var(--primary);font-weight:600}.notepad-saving{color:var(--text-secondary);margin-left:auto;font-size:.75em}.notepad-body{flex:1;min-height:0;display:flex}.notepad-textarea{resize:none;background:var(--bg);width:100%;color:var(--text);padding:16px;padding-bottom:calc(16px + env(safe-area-inset-bottom));tab-size:4;border:none;outline:none;flex:1;font-family:Cascadia Code,Consolas,monospace;font-size:.9em;line-height:1.6}.notepad-textarea::placeholder{color:var(--text-secondary)}.notepad-loading,.notepad-error{color:var(--text-secondary);flex:1;justify-content:center;align-items:center;font-size:.9em;display:flex}.notepad-error{color:var(--error)}.kb-page{flex-direction:column;flex:1;min-height:0;display:flex}.kb-header{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:12px;padding:12px 16px;display:flex}.kb-header-title{color:var(--text);font-size:1em;font-weight:700}.kb-back-btn{border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);cursor:pointer;border-radius:6px;padding:4px 10px;font-size:.85em}.kb-back-btn:hover{background:var(--surface-light);color:var(--text)}.kb-search-bar{flex-shrink:0;padding:8px 16px}.kb-search-input{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);font-size:.9em;font-family:var(--sans);border-radius:8px;padding:8px 12px}.kb-search-input:focus{border-color:var(--primary);outline:none}.kb-search-input::placeholder{color:var(--text-secondary)}.kb-tag-filters{flex-wrap:wrap;flex-shrink:0;gap:6px;padding:0 16px 8px;display:flex}.kb-tag-filter{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:12px;padding:2px 8px;font-size:.75em;transition:background .15s}.kb-tag-filter.active{font-weight:600}.kb-list{flex-direction:column;flex:1;gap:8px;min-height:0;padding:0 16px 16px;display:flex;overflow-y:auto}.kb-card{text-align:left;border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:8px;width:100%;padding:12px 14px;transition:border-color .15s;display:block}.kb-card:hover{border-color:var(--primary)}.kb-card-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.kb-card-title{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.9em;font-weight:600;overflow:hidden}.kb-card-date{color:var(--text-secondary);margin-top:4px;font-size:.75em}.kb-card-tags{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.kb-tag-badge{white-space:nowrap;border:1px solid;border-radius:10px;padding:1px 6px;font-size:.7em;font-weight:500;display:inline-block}.kb-source-badge{border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;font-size:.65em;font-weight:700;display:inline-flex}.kb-source-local{color:#22c55e;background:#22c55e26}.kb-source-remote,.kb-source-devkb{color:#3b82f6;background:#3b82f626}.kb-article-meta{border-bottom:1px solid var(--border);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:8px;padding:8px 16px;display:flex}.kb-article-date{color:var(--text-secondary);font-size:.8em}.kb-article-content{flex:1;min-height:0;padding:16px;overflow-y:auto}.kb-loading,.kb-error,.kb-empty{color:var(--text-secondary);flex:1;justify-content:center;align-items:center;padding:32px;font-size:.9em;display:flex}.kb-error{color:var(--error)}.deploy-page{flex-direction:column;height:100%;display:flex;overflow:hidden}.deploy-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.deploy-title{color:var(--text);margin:0;font-size:1.1em;font-weight:600}.deploy-count{color:var(--text-muted);font-size:.8em}.deploy-empty{color:var(--text-muted);flex:1;justify-content:center;align-items:center;padding:32px;font-size:.9em;display:flex}.deploy-script-card{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex}.deploy-script-info{flex:1;min-width:0}.deploy-script-name{color:var(--text);align-items:center;gap:6px;font-size:.9em;font-weight:500;display:flex}.deploy-confirm-badge{background:var(--accent);color:#000;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;font-size:10px;font-weight:700;display:inline-flex}.deploy-script-command{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-family:Cascadia Code,Fira Code,monospace;font-size:.78em;overflow:hidden}.deploy-script-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.deploy-project-badge{background:var(--surface-hover);color:var(--text-secondary);white-space:nowrap;border-radius:10px;padding:2px 8px;font-size:.72em}.deploy-run-btn{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:4px 14px;font-size:.82em;font-weight:500;transition:opacity .15s}.deploy-run-btn:hover{opacity:.85}.deploy-group{border-bottom:1px solid var(--border)}.deploy-group-header{width:100%;color:var(--text-secondary);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:6px;padding:10px 16px;font-size:.85em;font-weight:600;display:flex}.deploy-group-header:hover{background:var(--surface-hover)}.deploy-group-arrow{transition:transform .15s}.deploy-group-arrow.expanded{transform:rotate(90deg)}.deploy-group-name{flex:1}.deploy-group-count{color:var(--text-muted);font-size:.8em;font-weight:400}.deploy-group-scripts{padding-left:12px}.deploy-output-header{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:10px;padding:8px 12px;display:flex}.deploy-back-btn{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:6px;align-items:center;gap:4px;padding:4px 10px;font-size:.82em;display:flex}.deploy-back-btn:hover{background:var(--surface-hover)}.deploy-active-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.9em;font-weight:500;overflow:hidden}.deploy-output-controls{flex-shrink:0;align-items:center;gap:8px;display:flex}.deploy-exit-badge{border-radius:10px;padding:2px 10px;font-size:.78em;font-weight:600}.deploy-exit-badge.success{color:var(--primary);background:#4caf5033}.deploy-exit-badge.error{color:var(--error);background:#f8514933}.deploy-cancel-btn{border:1px solid var(--error);color:var(--error);cursor:pointer;background:0 0;border-radius:6px;padding:4px 14px;font-size:.82em;font-weight:500;transition:background .15s}.deploy-cancel-btn:hover{background:#f851491a}.deploy-terminal{background:#1e1e2e;flex:1;padding:12px;font-family:Cascadia Code,Fira Code,Courier New,monospace;font-size:.82em;line-height:1.6;overflow-y:auto}.deploy-terminal-waiting{color:var(--text-muted);font-style:italic}.deploy-terminal-line{white-space:pre-wrap;word-break:break-all}.deploy-terminal-line.stdout{color:#cdd6f4}.deploy-terminal-line.stderr{color:#f38ba8}.deploy-terminal-cursor{background:var(--text-muted);width:7px;height:14px;margin-top:2px;animation:1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.usage-bar{background:var(--surface);border-bottom:1px solid var(--border);color:var(--text-secondary);flex-shrink:0;align-items:center;gap:8px;padding:4px 16px;font-size:.75em;display:flex}.usage-bar-track{background:var(--surface-light);border-radius:2px;flex:1;max-width:120px;height:4px;overflow:hidden}.usage-bar-fill{background:var(--primary);border-radius:2px;height:100%;transition:width .3s}.usage-bar-fill.warn{background:var(--accent)}.usage-bar-pct{min-width:30px;color:var(--text);font-weight:600}.usage-bar-pct.warn{color:var(--accent)}.usage-bar-details{gap:10px;margin-left:auto;display:flex}.app-nav-more-wrap{flex:1;display:flex;position:relative}.app-nav-more-wrap>.app-nav-tab{width:100%}.more-menu{background:var(--surface);border:1px solid var(--border);z-index:100;border-radius:8px;min-width:180px;padding:6px 0;animation:.15s ease-out more-menu-in;position:absolute;bottom:100%;right:0;box-shadow:0 -4px 16px #0006}@keyframes more-menu-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.more-menu-item{width:100%;color:var(--text-secondary);font-family:var(--sans);cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;padding:10px 16px;font-size:.9em;font-weight:500;transition:background .12s,color .12s;display:flex}.more-menu-item:hover{background:var(--surface-light);color:var(--text)}.more-menu-item.active{color:var(--primary);font-weight:600}.settings-page{padding:16px;padding-bottom:calc(16px + env(safe-area-inset-bottom));flex:1;overflow-y:auto}.settings-header{align-items:center;gap:12px;margin-bottom:16px;display:flex}.settings-header h2{margin:0;font-size:1.2em;font-weight:700}.settings-save-indicator{border-radius:4px;padding:2px 8px;font-size:.8em;font-weight:600;animation:.2s ease-out toast-slide-in}.settings-save-indicator.ok{color:var(--success);background:#56d36426}.settings-save-indicator.err{color:var(--error);background:#f8514926}.settings-loading,.settings-error{text-align:center;color:var(--text-secondary);padding:32px}.settings-error{color:var(--error)}.settings-group{background:var(--surface);border:1px solid var(--border);border-radius:8px;margin-bottom:12px;padding:12px 16px}.settings-group-title{text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin:0 0 10px;font-size:.8em;font-weight:700}.settings-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:8px 0;display:flex}.settings-row:last-child{border-bottom:none}.settings-row-label{color:var(--text);align-items:center;gap:6px;font-size:.9em;display:flex}.settings-row-value{color:var(--text-secondary);font-size:.9em}.settings-inline-status{font-size:.8em}.settings-inline-status.ok{color:var(--success)}.settings-inline-status.err{color:var(--error)}.settings-toggle{background:var(--surface-light);cursor:pointer;border:none;border-radius:12px;flex-shrink:0;width:42px;height:24px;padding:0;transition:background .2s;position:relative}.settings-toggle.on{background:var(--primary)}.settings-toggle-thumb{background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .2s;position:absolute;top:3px;left:3px}.settings-toggle.on .settings-toggle-thumb{transform:translate(18px)}.settings-number-input{background:var(--surface-light);border:1px solid var(--border);width:60px;color:var(--text);font-family:var(--mono);text-align:center;border-radius:6px;padding:4px 8px;font-size:.9em}.settings-number-input:focus{border-color:var(--primary);outline:none}.settings-usage-bar{margin-bottom:8px}.settings-usage-label{justify-content:space-between;margin-bottom:4px;font-size:.85em;display:flex}.settings-progress-track{background:var(--surface-light);border-radius:3px;height:6px;overflow:hidden}.settings-progress-fill{background:var(--primary);border-radius:3px;height:100%;transition:width .3s}.settings-usage-stats{color:var(--text-secondary);gap:16px;margin-top:6px;font-size:.8em;display:flex}.connection-status{background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:6px;padding:4px 12px;font-size:.78em;display:flex}.conn-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.conn-dot-green{background:var(--success);box-shadow:0 0 4px var(--success)}.conn-dot-yellow{background:var(--accent);box-shadow:0 0 4px var(--accent)}.conn-dot-red{background:var(--error);box-shadow:0 0 4px var(--error)}.conn-label{color:var(--text)}.conn-timestamp{color:var(--text-secondary);margin-left:auto;font-size:.9em}.composer-hint-offline{color:var(--accent);font-style:italic}@media (width<=430px){:root{font-size:14px}.chat-header{gap:4px;padding:6px 8px}.chat-header-btn{width:32px;height:32px}.chat-header-project{text-overflow:ellipsis;white-space:nowrap;max-width:180px;overflow:hidden}.chat-messages{padding:8px}.chat-message{max-width:95%}.composer-container{padding:8px 10px}.team-header{gap:8px;padding:8px 10px}.team-add-btn{padding:5px 10px;font-size:.8em}.team-board-container{padding:8px}.pipeline-column{min-width:260px}.settings-page{padding:10px}.settings-group{padding:10px 12px}.notepad-header{gap:8px;padding:8px 10px}.explorer-breadcrumb{padding:6px 8px}.chat-page,.team-page,.explorer-page,.notepad-page,.deploy-page,.settings-page{max-width:100vw;overflow-x:hidden}}@media (orientation:landscape) and (height<=500px){.app-nav-tab{gap:4px;padding:4px 10px;font-size:.8em}.nav-icon{width:16px;height:16px}.chat-header{padding:4px 8px}.chat-header-btn{width:28px;height:28px}.composer-container{padding:6px 10px}.composer-hint{display:none}}.app-root.keyboard-open .app-nav{display:none}.app-root.keyboard-open .chat-messages{padding-bottom:4px}.msg-context-menu{z-index:1000;background:var(--surface-light);border:1px solid var(--border);border-radius:10px;min-width:160px;padding:4px 0;animation:.15s ease-out ctx-menu-in;position:fixed;box-shadow:0 8px 24px #00000080}@keyframes ctx-menu-in{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.msg-context-menu-item{width:100%;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:10px 16px;font-size:14px;display:flex}.msg-context-menu-item:active{background:var(--surface)}.pull-to-refresh-indicator{z-index:10;pointer-events:none;justify-content:center;align-items:center;height:60px;transition:transform .2s,opacity .2s;display:flex;position:absolute;top:0;left:0;right:0}.pull-refresh-arrow{color:var(--text-secondary);transition:transform .2s}.pull-refresh-spinner{border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:24px;height:24px;animation:.7s linear infinite pull-spin}@keyframes pull-spin{to{transform:rotate(360deg)}}.chat-page,.team-page,.explorer-page{animation:.2s ease-out page-slide-in}@keyframes page-slide-in{0%{opacity:.7;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.page-skeleton{flex-direction:column;flex:1;gap:16px;padding:24px 16px;display:flex}.page-skeleton-bar{background:var(--surface-light);border-radius:8px;height:16px;animation:1.2s ease-in-out infinite skeleton-pulse}@keyframes skeleton-pulse{0%,to{opacity:.3}50%{opacity:.6}}.error-boundary{background:var(--bg);height:100dvh;color:var(--text);text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:24px;display:flex}.error-boundary-icon{width:56px;height:56px;color:var(--error);background:#f8514926;border-radius:50%;justify-content:center;align-items:center;margin-bottom:16px;font-size:28px;font-weight:700;display:flex}.error-boundary-title{margin:0 0 8px;font-size:1.25rem;font-weight:600}.error-boundary-text{color:var(--text-secondary);margin:0 0 24px;font-size:.9rem}.error-boundary-btn{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:10px 28px;font-size:.95rem;font-weight:600}.error-boundary-btn:active{background:var(--primary-dark)}.toast-container{z-index:10000;pointer-events:none;flex-direction:column;align-items:center;gap:6px;width:100%;max-width:420px;padding:8px 8px 0;display:flex;position:fixed;top:0;left:50%;transform:translate(-50%)}.toast{pointer-events:auto;cursor:pointer;border-radius:10px;align-items:center;gap:8px;width:100%;padding:10px 16px;font-size:.85rem;animation:.25s ease-out toast-slide-in;display:flex;box-shadow:0 4px 16px #0006}.toast-error{color:#fff;background:#f85149eb}.toast-success{color:#0d1117;background:#56d364eb}.toast-info{color:#0d1117;background:#58a6ffeb}.toast-icon{text-align:center;flex-shrink:0;width:18px;font-size:.9rem;font-weight:700}.toast-message{flex:1;min-width:0}.skeleton-message-list{flex-direction:column;gap:16px;padding:16px;display:flex}.skeleton-message{background:var(--surface);border-radius:12px;flex-direction:column;gap:8px;padding:12px 16px;display:flex}.skeleton-bar{background:var(--surface-light);border-radius:6px;height:12px;animation:1.2s ease-in-out infinite skeleton-pulse}.skeleton-card-list{flex-direction:column;gap:12px;padding:16px;display:flex}.skeleton-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:10px;padding:16px;display:flex}.spinner{border:2px solid var(--surface-light);border-top-color:var(--primary);border-radius:50%;animation:.6s linear infinite spinner-spin;display:inline-block}@keyframes spinner-spin{to{transform:rotate(360deg)}}.send-failed-row{align-items:center;gap:8px;margin-top:4px;display:flex}.send-retry-btn{border:1px solid var(--error);color:var(--error);cursor:pointer;background:0 0;border-radius:6px;padding:2px 10px;font-size:.75rem}.send-retry-btn:active{background:#f8514926}@media (orientation:landscape){.app-root{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}}
