:root{color-scheme:dark;--bg:#101214;--panel:#17191c;--panel-2:#1d2024;--line:#2c3036;--text:#e8eaed;--muted:#8e969f;--accent:#4da3ff;--green:#4ade80;--red:#f87171}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;letter-spacing:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}.auth-shell{min-height:100vh;display:grid;place-items:center;background:#0f1113}.auth-panel{width:min(400px,calc(100vw - 32px));padding:32px}.brand-mark{width:44px;height:44px;display:grid;place-items:center;color:#0c1117;background:var(--accent);border-radius:6px;margin-bottom:20px}h1{margin:0;font-size:30px;letter-spacing:0}.muted{color:var(--muted);margin:8px 0 28px}.segmented{display:grid;grid-template-columns:1fr 1fr;padding:3px;background:var(--panel);border:1px solid var(--line);border-radius:6px;margin-bottom:20px}.segmented button{border:0;background:transparent;color:var(--muted);padding:8px;border-radius:4px}.segmented button.active{background:var(--panel-2);color:var(--text)}.form-stack{display:grid;grid-gap:16px;gap:16px}.form-stack label{display:grid;grid-gap:7px;gap:7px;color:var(--muted);font-size:13px}input,select,textarea{width:100%;color:var(--text);background:var(--panel);border:1px solid var(--line);border-radius:5px;padding:10px 12px;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--accent)}.actions button,.primary{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid #377fbd;background:#25699b;color:#fff;border-radius:5px;padding:8px 12px}.full{width:100%}.error-banner,.notice{color:#fecaca;background:#3b1e22;border:1px solid #693139;border-radius:5px;padding:10px 12px;font-size:13px}.notice{position:fixed;top:54px;left:50%;transform:translateX(-50%);z-index:60;max-width:min(760px,90vw);cursor:pointer}.workbench{height:100vh;display:flex;flex-direction:column;overflow:hidden}.topbar{height:48px;flex:0 0 48px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;border-bottom:1px solid var(--line);background:var(--panel)}.account,.brand,.panel-heading>span{display:flex;align-items:center;gap:8px}.brand{flex:0 0 auto}.brand span{color:var(--muted);font-size:12px;border-left:1px solid var(--line);padding-left:10px}.account{min-width:0;color:var(--muted);font-size:13px}.account .account-name,.brand .account-name{min-width:0;padding:0;border:0;color:inherit;font-size:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.icon-button{width:28px;height:28px;display:inline-grid;place-items:center;border:0;background:transparent;color:var(--muted);border-radius:4px}.icon-button:hover{background:var(--panel-2);color:var(--text)}.workspace-grid{flex:1 1;display:grid;grid-template-columns:250px minmax(0,1fr) 310px;min-height:0}.project-sidebar,.tools-pane{background:var(--panel);min-height:0}.project-sidebar{border-right:1px solid var(--line)}.project-sidebar,.tools-pane{display:flex;flex-direction:column;overflow:hidden}.tools-pane{border-left:1px solid var(--line)}.project-section{flex:0 1 auto;max-height:42%;min-height:0;display:flex;flex-direction:column}.code-sidebar-section{flex:1 1;min-height:180px;display:flex;flex-direction:column;border-top:1px solid var(--line)}.code-sidebar-section .panel-heading{flex:0 0 42px}.code-sidebar-section .panel-heading small{min-width:26px;padding:2px 5px;border-radius:4px;background:var(--panel-2);color:var(--muted);font-size:11px;text-align:center}.panel-heading{height:42px;display:flex;align-items:center;justify-content:space-between;padding:0 12px;border-bottom:1px solid var(--line);color:#cbd0d6;font-size:13px}.actions{display:flex;gap:6px}.actions button{padding:5px 8px;font-size:12px}.create-form{display:grid;grid-gap:8px;gap:8px;padding:10px;border-bottom:1px solid var(--line)}.create-form input,.create-form select{font-size:12px;padding:7px 8px}.project-list{min-height:0;overflow-y:auto;padding:6px}.project-item{width:100%;display:flex;align-items:center;gap:8px;padding:9px 8px;border:0;background:transparent;color:var(--muted);text-align:left;border-radius:4px}.project-item span{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-item.active{background:#203448;color:#d8ebff}.empty-state{display:grid;place-content:center;justify-items:center;grid-gap:12px;gap:12px;color:var(--muted)}.empty-state h2{font-size:16px;font-weight:500}.file-tree{flex:1 1;min-height:0;overflow:auto;background:#131518;padding:5px}.file-tree button{width:100%;display:flex;align-items:center;gap:6px;border:0;background:transparent;color:var(--muted);padding:5px 7px;text-align:left;font-size:12px;border-radius:3px}.file-tree button svg{flex:0 0 auto}.file-tree button span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-tree button:hover{color:var(--text);background:var(--panel-2)}.file-tree-folder-button>svg:first-child{transition:transform .15s ease}.file-tree-folder-button>svg:first-child.expanded{transform:rotate(90deg)}.file-tree-file.active{color:#d8ebff;background:#203448}.tool-section{border-bottom:1px solid var(--line)}.prompt-form{display:grid;grid-gap:8px;gap:8px;padding:10px}.prompt-form textarea{min-height:100px;resize:vertical;font-size:13px}.task-status{margin:10px;padding:10px;border:1px solid var(--line);border-radius:5px;font-size:12px;color:var(--muted)}.task-status>div{display:flex;align-items:center;gap:6px;color:var(--text)}.task-status p{color:#fca5a5;white-space:pre-wrap;word-break:break-word;max-height:180px;overflow:auto}.task-status.success{border-color:#285c3d}.task-status.failed{border-color:#693139}.quiet-row{display:flex;align-items:center;gap:7px;padding:12px;color:var(--muted);font-size:12px}.version-section{flex:0 0 234px;height:234px;min-height:0;display:flex;flex-direction:column;border-bottom:0}.version-section .panel-heading{flex:0 0 42px}.version-list{flex:1 1;min-height:0;overflow-y:auto;padding:4px 6px}.version-item{border-bottom:1px solid var(--line)}.version-item:last-child{border-bottom:0}.version-row{width:100%;min-height:36px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;grid-gap:8px;gap:8px;padding:0 8px;border:0;border-radius:4px;background:transparent;color:var(--muted);text-align:left;font-size:12px}.version-row>span{color:var(--text);font-weight:500}.version-row>small{color:var(--muted);font-size:10px;text-align:right}.version-row>svg{transition:transform .16s ease}.version-row:hover{background:var(--panel-2)}.version-item.expanded>.version-row{background:#203448;color:#d8ebff}.version-item.expanded>.version-row>svg{transform:rotate(180deg)}.version-detail{border-top:1px solid var(--line);background:#131518}.version-section .panel-heading small{min-width:24px;padding:2px 5px;border-radius:4px;background:var(--panel-2);color:var(--muted);font-size:11px;text-align:center}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}@media (max-width:1050px){.workspace-grid{grid-template-columns:200px minmax(0,1fr) 260px}}@media (max-width:760px){.workbench{height:auto;min-height:100vh;overflow:visible}.workspace-grid{display:flex;flex-direction:column}.project-sidebar{overflow:visible;border-right:0;border-bottom:1px solid var(--line)}.project-section{flex:0 0 auto;max-height:180px}.code-sidebar-section{flex:0 0 300px;min-height:0}.center-pane{height:70vh;min-height:560px}.tools-pane{border-left:0;border-top:1px solid var(--line);display:block;overflow:visible}.version-list{max-height:420px}}.compile-log{margin:10px;max-height:260px;overflow:auto;padding:10px;background:#0c0e10;border:1px solid var(--line);border-radius:5px;color:#b8c2cc;font:11px/1.5 SFMono-Regular,Consolas,monospace;white-space:pre-wrap;word-break:break-word}.webserial-panel{display:none}.admin-page{min-height:100vh}.admin-content{max-width:1180px;margin:0 auto;padding:24px;display:grid;grid-gap:24px;gap:24px}.admin-section h2{font-size:16px;margin:0 0 12px}.admin-empty{min-height:60vh;display:grid;place-content:center;justify-items:center;grid-gap:12px;gap:12px;color:var(--muted)}.plan-table{overflow-x:auto}.plan-row{display:grid;grid-template-columns:minmax(140px,1.2fr) repeat(3,minmax(100px,.8fr)) 80px 80px;grid-gap:10px;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line);font-size:13px}.plan-header{color:var(--muted)}.plan-row input,.setting-row input{padding:7px 9px}.provider-row,.setting-row{display:flex;align-items:center;gap:14px;padding:10px 0;border-bottom:1px solid var(--line);font-size:13px}.setting-row>div{flex:1 1;display:grid;grid-gap:4px;gap:4px}.setting-row small{color:var(--muted)}.setting-row input{width:140px}.provider-row strong{flex:1 1}.provider-row span{color:var(--muted)}@media (max-width:720px){.admin-content{padding:14px}.plan-row{grid-template-columns:minmax(120px,1fr) repeat(3,90px) 70px 70px}.provider-row,.setting-row{flex-wrap:wrap}}.provider-actions{display:inline-flex;gap:6px}.provider-actions button{padding:5px 8px;border:1px solid var(--line);border-radius:4px;background:var(--panel-2);color:var(--text);font-size:12px}.admin-section h2{display:flex;align-items:center;gap:7px}.key-form{display:grid;grid-template-columns:150px 180px 160px minmax(180px,1fr) 80px 100px 110px;grid-gap:8px;gap:8px;margin-bottom:16px}.key-list{display:grid;grid-gap:6px;gap:6px}.key-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);font-size:12px}.key-row strong{min-width:140px}.key-row code{color:#9fc5e8}.key-row button{display:inline-flex;align-items:center;gap:4px;padding:5px 8px;border:1px solid var(--line);border-radius:4px;background:var(--panel-2);color:var(--text)}@media (max-width:900px){.key-form{grid-template-columns:1fr 1fr}}.ai-mode-row{display:grid;grid-gap:8px;gap:8px;padding:10px 10px 0}.ai-mode-row .segmented{margin-bottom:0}.byok-panel{padding:10px}.byok-form,.byok-panel{display:grid;grid-gap:8px;gap:8px}.byok-form button{padding:7px 9px;border:1px solid var(--line);border-radius:4px;background:var(--panel-2);color:var(--text)}.center-pane{min-width:0;min-height:0;display:flex;flex-direction:column;background:#111315}.center-tabs{height:46px;flex:0 0 46px;display:flex;align-items:center;gap:4px;padding:0 12px;border-bottom:1px solid var(--line);background:var(--panel)}.center-tabs>button:not(.save-version-button){display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border:0;border-radius:5px;background:transparent;color:var(--muted)}.center-tabs>button.active,.reader-tab{color:var(--text);background:var(--panel-2)}.reader-tab{min-width:0;max-width:220px;display:flex;align-items:center;gap:6px;padding:3px 4px 3px 10px;border:1px solid #40505f;border-radius:5px;font-size:12px}.reader-tab>svg{flex:0 0 auto;color:var(--muted)}.reader-tab>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reader-tab .icon-button{flex:0 0 24px;width:24px;height:24px}.save-version-button{margin-left:auto;display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--line);border-radius:5px;background:var(--panel-2);color:var(--text);font-size:12px}.chat-layout{flex:1 1;min-height:0;display:flex;flex-direction:column}.chat-toolbar{display:flex;gap:10px;align-items:center;padding:10px 16px 0}.chat-toolbar .segmented{width:210px;margin-bottom:0}.model-input{flex:1 1;max-width:280px;padding:7px 10px;font-size:12px}.chat-messages{flex:1 1;min-height:0;overflow-y:auto;padding:18px 20px;display:flex;flex-direction:column;gap:16px}.chat-empty{margin:auto;display:grid;place-items:center;grid-gap:10px;gap:10px;color:var(--muted);text-align:center}.chat-empty h2{margin:0;color:var(--text);font-size:18px}.chat-empty p{margin:0}.chat-message{max-width:min(820px,88%);padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:var(--panel-2)}.chat-message.user{align-self:flex-end;background:#1d3a52;border-color:#2a5376}.chat-message.assistant,.chat-message.system{align-self:flex-start;background:#1b1e22}.message-author{margin-bottom:7px;color:#8ab8e2;font-size:12px;font-weight:600}.chat-message pre{margin:0;color:#dce3ea;font:13px/1.65 SFMono-Regular,Consolas,Liberation Mono,monospace;white-space:pre-wrap;word-break:break-word}.chat-message time{display:block;margin-top:8px;color:var(--muted);font-size:10px}.chat-input-area{flex:0 0 auto;padding:14px 18px 18px;border-top:1px solid var(--line);background:#111315}.chat-input-area .task-status{margin:0 0 10px}.chat-composer{position:relative;overflow:visible;border:1px solid #2f6862;border-radius:20px;background:#171d22;box-shadow:0 8px 24px #0003;transition:border-color .16s ease,box-shadow .16s ease}.chat-composer:focus-within{border-color:#19c3ad;box-shadow:0 0 0 1px #19c3ad33,0 10px 28px #0005}.chat-composer textarea{display:block;width:100%;height:96px;min-height:0;max-height:none;overflow-y:auto;resize:none;padding:13px 72px 38px 18px;border:0;border-radius:inherit;outline:0;background:transparent;color:#e8edf0;font-size:14px;line-height:1.6}.chat-composer textarea:focus{border:0;outline:0}.chat-composer textarea::placeholder{color:#76848d}.composer-resize-handle{position:absolute;z-index:2;left:50%;top:-11px;width:44px;height:20px;display:grid;place-items:center;transform:translateX(-50%);border:1px solid #2f6862;border-radius:5px;outline:0;background:#171d22;box-shadow:0 3px 10px #0006;color:#82969b;opacity:0;pointer-events:none;cursor:ns-resize;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:opacity .12s ease,color .16s ease}.chat-composer.handle-visible .composer-resize-handle,.composer-resize-handle:focus-visible{opacity:1;pointer-events:auto}.composer-resize-handle:focus-visible,.composer-resize-handle:hover{background:#203034;color:#20d1b8}@media (hover:none){.composer-resize-handle{opacity:.65;pointer-events:auto}}.composer-send{position:absolute;z-index:1;right:14px;bottom:14px;width:42px;height:42px;display:grid;place-items:center;padding:0;border:0;border-radius:50%;background:#13bfa7;color:#fff;box-shadow:0 4px 14px #0eb49f2e;transition:background .16s ease,transform .16s ease}.composer-send:hover:not(:disabled){background:#20d1b8;transform:translateY(-1px)}.composer-send:disabled{background:#31514e;color:#9ab0ac;opacity:.7}.reader-panel{flex:1 1;min-width:0;min-height:0;display:flex;flex-direction:column}.reader-toolbar{min-height:50px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;border-bottom:1px solid var(--line);background:var(--panel)}.reader-file-path{min-width:0;display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12px}.reader-file-path>small,.reader-file-path>svg{flex:0 0 auto}.reader-file-path>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reader-file-path>small{padding:2px 5px;border:1px solid var(--line);border-radius:4px;color:#aeb6bf;font-size:10px}.reader-search{flex:0 1 360px;min-width:230px;display:flex;align-items:center;gap:5px}.reader-search>svg{flex:0 0 auto;color:var(--muted)}.reader-search input{min-width:0;padding:6px 8px;background:#111315;font-size:12px}.reader-match-count{flex:0 0 42px;color:var(--muted);font-size:11px;text-align:center}.reader-search .icon-button{flex:0 0 26px;width:26px;height:26px}.code-reader-content{flex:1 1;min-width:0;min-height:0;overflow:auto;margin:0;padding:16px 18px;background:#111315;color:#d6dde5;font:13px/1.65 SFMono-Regular,Consolas,Liberation Mono,monospace;-moz-tab-size:2;tab-size:2;white-space:pre}.code-reader-content span{font:inherit}.code-reader-content mark{padding:0;background:#6b5c16;color:#fff3bf}.code-reader-content mark.active{background:#d99a2b;color:#151719}.reader-placeholder{flex:1 1;display:grid;place-content:center;justify-items:center;grid-gap:10px;gap:10px;color:var(--muted);font-size:13px}.version-detail .compile-actions button{display:inline-flex;align-items:center;justify-content:center;gap:5px}@media (max-width:760px){.center-tabs .reader-tab{display:none}.chat-message{max-width:96%}.chat-toolbar{flex-wrap:wrap}.model-input{max-width:none}.chat-input-area{padding:12px}.chat-composer{border-radius:17px}.chat-composer textarea{padding:12px 62px 38px 16px;font-size:13px}.composer-send{right:12px;bottom:12px;width:40px;height:40px}.reader-toolbar{align-items:stretch;flex-direction:column;gap:8px}.reader-file-path{min-height:24px}.reader-search{flex:0 0 auto;width:100%;min-width:0}.code-reader-content{padding:12px;font-size:12px}}.firmware-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.firmware-actions button{display:inline-flex;align-items:center;gap:5px;padding:6px 8px;border:1px solid var(--line);border-radius:4px;background:var(--panel-2);color:var(--text);font-size:12px}.compile-history{display:grid}.compile-entry{min-width:0}.compile-row{display:grid;grid-template-columns:minmax(0,1fr);grid-gap:3px;gap:3px;padding:3px 8px;border-bottom:1px solid var(--line);font-size:11px}.compile-info{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.65fr) 44px;grid-gap:8px;gap:8px;align-items:start}.compile-board,.compile-version{min-width:0;display:grid;grid-template-rows:16px 15px;grid-gap:1px;gap:1px;align-content:start;line-height:1.35}.compile-board strong,.compile-version strong{font-size:11px;font-weight:500}.compile-info small,.compile-info strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compile-row small{color:var(--muted)}.compile-progress-ring{position:relative;width:44px;height:44px;display:grid;grid-template-rows:12px 10px;align-content:center;justify-items:center;line-height:1}.compile-progress-ring svg{position:absolute;inset:0;width:44px;height:44px}.compile-progress-ring strong{color:var(--text);font-size:8px;font-weight:600}.compile-progress-ring small,.compile-progress-ring strong{z-index:1;align-self:end;overflow:visible;white-space:nowrap}.compile-progress-ring small{color:var(--muted);font:7px/1 SFMono-Regular,Consolas,monospace}.compile-progress-ring.success strong{color:var(--green)}.compile-progress-ring.failed strong,.compile-progress-ring.timeout strong{color:var(--red)}.compile-progress-segment{fill:none;stroke:var(--line);stroke-width:4;transition:stroke .2s ease,opacity .2s ease}.compile-progress-segment.done{stroke:var(--green)}.compile-progress-segment.current{stroke:var(--accent);animation:compile-progress-pulse 1.5s ease-in-out infinite}.compile-progress-ring.failed .compile-progress-segment.current,.compile-progress-ring.timeout .compile-progress-segment.current{stroke:var(--red);animation:none}@keyframes compile-progress-pulse{50%{opacity:.4}}.compile-actions{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) 28px;align-items:center;grid-gap:6px;gap:6px}.compile-actions button,.download-menu summary{width:100%;min-width:0;height:24px;display:inline-flex;align-items:center;gap:4px;padding:2px 5px;border:1px solid var(--line);border-radius:4px;background:var(--panel-2);color:var(--text);font-size:10px;white-space:nowrap;cursor:pointer}.serial-monitor{flex:1 1 auto;height:auto;display:flex;flex-direction:column;min-height:240px;border-top:1px solid var(--line);background:var(--panel)}.serial-monitor-heading{flex:0 0 42px;padding-right:7px;border-bottom:0}.serial-monitor-heading>span{min-width:0}.serial-monitor-heading small{padding:2px 5px;border-radius:4px;background:var(--panel-2);color:var(--muted);font-size:10px;font-weight:400;white-space:nowrap}.serial-monitor-heading small.connected{color:var(--green)}.serial-connection-bar{display:grid;grid-template-columns:minmax(0,1fr) 108px;grid-gap:6px;gap:6px;padding:0 8px 7px}.serial-connection-bar select{min-width:0;height:30px;padding:4px 7px;background:#131518;font-size:11px}.serial-connect-button{display:inline-flex;align-items:center;justify-content:center;gap:5px;height:30px;padding:4px 7px;border:1px solid #377fbd;border-radius:4px;background:#25699b;color:#fff;font-size:11px;white-space:nowrap}.serial-connect-button.connected{border-color:var(--line);background:var(--panel-2);color:var(--text)}.serial-log-options{display:flex;align-items:center;min-height:24px;padding:0 9px 4px}.serial-auto-scroll{display:inline-flex;align-items:center;gap:5px;color:var(--muted);font-size:10px;cursor:pointer}.serial-auto-scroll input{width:13px;height:13px;margin:0;padding:0;accent-color:#13bfa7}.serial-log{flex:1 1;min-height:0;overflow:auto;margin:0 8px;padding:7px 8px;border:1px solid var(--line);border-radius:4px;background:#0c0e10;color:#b8c2cc;font:11px/1.5 SFMono-Regular,Consolas,Liberation Mono,monospace;white-space:pre-wrap;overflow-wrap:anywhere}.serial-send-form{flex:0 0 auto;display:grid;grid-template-columns:minmax(0,1fr) 58px 30px;grid-gap:5px;gap:5px;padding:7px 8px 8px}.serial-send-form input,.serial-send-form select{min-width:0;height:30px;padding:4px 7px;background:#131518;font-size:11px}.serial-send-form select{padding-right:2px}.serial-send-button{width:30px;height:30px;border:1px solid var(--line);background:var(--panel-2);color:var(--text)}.download-menu{position:relative;width:100%;min-width:0}.download-menu summary{list-style:none}.download-menu summary::-webkit-details-marker{display:none}.download-menu summary.disabled{opacity:.45;cursor:not-allowed}.download-menu>div{position:absolute;z-index:5;left:0;min-width:140px;display:grid;padding:4px;border:1px solid var(--line);border-radius:5px;background:var(--panel-2);box-shadow:0 8px 24px #0008}.download-menu>div button{border:0;text-align:left}.invite-form{display:flex;gap:8px;margin-bottom:12px}.invite-form input{max-width:320px}.invite-list{display:grid;grid-gap:5px;gap:5px}.invite-row{display:flex;align-items:center;gap:10px;font-size:12px}.invite-row code{color:#9fc5e8}.invite-row span{color:var(--muted)}.invite-row button{width:26px;height:26px;display:grid;place-items:center;border:0;background:transparent;color:var(--muted)}.key-model-input{flex:0 1 230px;width:230px;padding:5px 7px;font-size:11px}.key-row select{flex:0 0 140px;width:140px;padding:6px 8px}.chat-tab-group{display:flex;align-items:center;overflow:hidden;border:1px solid var(--line);border-radius:5px}.chat-tab-group.active{border-color:#40505f}.chat-tab-main{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border:0;background:transparent;color:var(--muted)}.chat-tab-main.active{background:var(--panel-2);color:var(--text)}.chat-settings-button{flex:0 0 31px;width:31px;height:31px;border-left:1px solid var(--line);border-radius:0}.chat-settings-button.active{color:var(--accent);background:var(--panel-2)}.modal-backdrop{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:20px;background:#0009}.ai-settings-modal{width:min(560px,100%);max-height:calc(100vh - 40px);overflow-y:auto;border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:0 20px 70px #000a}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:15px 18px;border-bottom:1px solid var(--line)}.modal-header>div{display:grid;grid-gap:4px;gap:4px}.modal-header h2{margin:0;font-size:16px}.ai-mode-setting span,.modal-header span{color:var(--muted);font-size:12px}.modal-body{display:grid;grid-gap:16px;gap:16px;padding:18px}.ai-mode-setting{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:16px;border-bottom:1px solid var(--line)}.ai-mode-setting>div{display:grid;grid-gap:5px;gap:5px}.ai-mode-setting strong{font-size:14px;font-weight:500}.switch-track{flex:0 0 42px;width:42px;height:24px;padding:3px;border:0;border-radius:12px;background:#3a4048}.switch-track span{display:block;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .16s ease}.switch-track.active{background:#25699b}.switch-track.active span{transform:translateX(18px)}.ai-credential-fields{min-width:0;display:grid;grid-gap:12px;gap:12px;margin:0;padding:12px;border:1px solid var(--line);border-radius:5px}.ai-credential-fields:disabled{opacity:.45;background:#131518}.ai-credential-fields legend{padding:0 6px;color:var(--muted);font-size:12px}.ai-credential-fields .byok-form{grid-template-columns:minmax(140px,180px) minmax(200px,1fr);align-items:center}.ai-credential-fields .byok-form button{grid-column:1/-1;justify-self:start;display:inline-flex;align-items:center;justify-content:center;gap:6px}.modal-footer{display:flex;justify-content:flex-end;padding:12px 18px;border-top:1px solid var(--line)}@media (max-width:760px){.modal-backdrop{padding:12px}.ai-settings-modal{max-height:calc(100vh - 24px)}.ai-credential-fields .byok-form{grid-template-columns:1fr}.ai-credential-fields .byok-form button{justify-self:stretch}.serial-monitor{flex:none;height:340px;min-height:340px}}.ai-chat-layout{min-height:0}.ai-chat-layout .chat-messages{gap:18px;padding:20px clamp(12px,3vw,30px);scroll-behavior:smooth}.ai-chat-layout .chat-message{position:relative;width:-moz-fit-content;width:fit-content;max-width:min(850px,88%);padding:12px 14px 8px;overflow:visible}.ai-chat-layout .chat-message.active{border-color:#355c58}.ai-chat-layout .chat-message.user{min-width:72px}.ai-chat-layout .message-author{margin-bottom:6px}.message-text{max-height:24.75em;overflow-y:auto;overscroll-behavior:contain;color:#dce3ea;font-size:14px;line-height:1.65;overflow-wrap:anywhere;scrollbar-width:thin;scrollbar-color:#46515b transparent}.message-text>:first-child,.message-text>:first-child>:first-child{margin-top:0}.message-text>:last-child,.message-text>:last-child>:last-child{margin-bottom:0}.chat-message .message-text pre,.message-text blockquote,.message-text ol,.message-text p,.message-text table,.message-text ul{margin:0 0 10px}.message-text h1,.message-text h2,.message-text h3,.message-text h4{margin:14px 0 7px;color:#edf2f5;font-size:15px;line-height:1.45;letter-spacing:0}.message-text ol,.message-text ul{padding-left:22px}.message-text li+li{margin-top:4px}.message-text a{color:#62c8e8;text-decoration:underline;text-underline-offset:2px}.message-text blockquote{padding-left:10px;border-left:3px solid #52616c;color:#acb7c0}.message-text code{padding:2px 4px;border-radius:3px;background:#0e1113;color:#b9e3d9;font:12px/1.5 SFMono-Regular,Consolas,monospace}.chat-message .message-text pre{max-width:100%;overflow:auto;padding:10px 12px;border:1px solid #303940;border-radius:5px;background:#0c0f11;white-space:pre;line-height:1.55}.message-text pre code{padding:0;background:transparent;color:#d5dee5}.message-text table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse}.message-text td,.message-text th{padding:5px 8px;border:1px solid #3b454d;text-align:left}.message-text th{background:#252b30}.message-footer{min-height:24px;display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:5px}.chat-message .message-footer time{flex:0 0 auto;margin:0}.message-actions{display:flex;align-items:center;gap:1px;margin-right:-5px;opacity:0;transition:opacity .14s ease}.chat-message.active .message-actions,.chat-message:focus-within .message-actions,.chat-message:hover .message-actions{opacity:1}.message-actions .icon-button{width:25px;height:25px;color:#9ba8b1}.message-actions .icon-button:hover{background:#ffffff0d;color:#eef4f7}.message-placeholder{height:24px;display:flex;align-items:center;gap:5px}.message-placeholder span{width:5px;height:5px;border-radius:50%;background:#82938e;animation:chat-thinking-dot 1.2s ease-in-out infinite}.message-placeholder span:nth-child(2){animation-delay:.16s}.message-placeholder span:nth-child(3){animation-delay:.32s}@keyframes chat-thinking-dot{50%{opacity:.25;transform:translateY(-2px)}}.chat-thinking{display:flex;align-items:center;gap:7px;min-width:210px;margin-bottom:8px;color:#a8b5b2;font-size:12px}.chat-thinking small{margin-left:auto;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.chat-thinking.failed,.chat-thinking.timeout{color:var(--red)}.code-task-progress{min-width:min(440px,100%);margin:1px 0 11px;padding:10px 11px;border:1px solid #303b3c;border-radius:6px;background:#14191b}.code-stage-list{display:grid;grid-template-columns:repeat(5,minmax(42px,1fr));grid-gap:0;gap:0}.code-stage-list>div{position:relative;display:grid;justify-items:center;grid-gap:5px;gap:5px;color:#65727a}.code-stage-list>div:not(:last-child):after{content:"";position:absolute;z-index:0;top:9px;left:calc(50% + 11px);width:calc(100% - 22px);height:1px;background:#354047}.code-stage-list>div>span{z-index:1;width:19px;height:19px;display:grid;place-items:center;border:1px solid #3d4850;border-radius:50%;background:#14191b;font-size:10px}.code-stage-list>div>small{font-size:10px}.code-stage-list>div.current,.code-stage-list>div.done{color:#63c9b7}.code-stage-list>div.done>span{border-color:#328b7b;background:#214b43;color:#d9fff6}.code-stage-list>div.done:not(:last-child):after{background:#328b7b}.code-stage-list>div.current>span{border-color:#44bfa8;box-shadow:0 0 0 3px #44bfa815;color:#d9fff6}.code-task-progress.canceled .code-stage-list>div.current,.code-task-progress.failed .code-stage-list>div.current,.code-task-progress.timeout .code-stage-list>div.current{color:var(--red)}.code-task-detail{display:flex;align-items:center;gap:6px;min-width:0;margin-top:9px;color:#a7b3b9;font-size:11px}.code-task-detail>span{min-width:0;flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.code-task-detail>time{flex:0 0 auto;color:#7f8d94;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.task-log-toggle{display:inline-flex;align-items:center;gap:5px;margin-top:8px;padding:3px 0;border:0;background:transparent;color:#8fa7b2;font-size:11px}.task-compile-log{max-height:240px;overflow:auto;margin:5px 0 0;padding:9px;border:1px solid #293238;border-radius:4px;background:#090c0e;color:#b8c2cc;font:10px/1.5 SFMono-Regular,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere}.message-attachments{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(210px,100%),1fr));grid-gap:8px;gap:8px;margin-top:9px}.attachment-card{min-width:0;overflow:hidden;border:1px solid #36434c;border-radius:6px;background:#13181b}.attachment-card img{width:100%;max-height:320px;display:block;object-fit:contain;background:#0b0e10}.attachment-image-loading{height:130px;display:grid;place-items:center;color:#728089;background:#101416}.attachment-meta{min-width:0;min-height:38px;display:flex;align-items:center;gap:7px;padding:5px 7px;color:#b8c4cb}.attachment-meta>svg{flex:0 0 auto}.attachment-meta>span{min-width:0;flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.attachment-meta>small{flex:0 0 auto;color:#7f8d95;font-size:9px}.attachment-meta .icon-button{flex:0 0 26px;width:26px;height:26px}.attachment-error{display:block;padding:0 8px 7px;color:var(--red);font-size:10px}.chat-error{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;padding:7px 9px;border:1px solid #75433f;border-radius:5px;background:#321f1e;color:#efb5af;font-size:12px}.pending-attachments{display:flex;gap:7px;max-width:100%;overflow-x:auto;margin-bottom:8px;padding-bottom:2px}.pending-attachment{position:relative;flex:0 0 190px;min-width:0;height:52px;display:flex;align-items:center;gap:7px;padding:5px 6px;border:1px solid #36434c;border-radius:6px;background:#171d22}.pending-attachment.error{border-color:#75433f}.pending-attachment>img{flex:0 0 40px;width:40px;height:40px;border-radius:4px;object-fit:cover}.pending-attachment>div{min-width:0;flex:1 1;display:grid;grid-gap:3px;gap:3px}.pending-attachment>div>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#d5dde2;font-size:11px}.pending-attachment>div>small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#85929a;font-size:9px}.pending-attachment.error>div>small{color:#efb5af}.pending-attachment>.icon-button{flex:0 0 23px;width:23px;height:23px}.chat-composer.dragging{border-color:#20d1b8;box-shadow:0 0 0 2px #20d1b825}.chat-composer textarea{padding-left:50px}.composer-file-input{display:none}.composer-attach{position:absolute;z-index:1;left:13px;bottom:17px;width:30px;height:30px;color:#9aabaf}.composer-attach:hover{background:#ffffff0b;color:#20d1b8}@media (hover:none){.message-actions{opacity:1}}@media (max-width:760px){.topbar{padding:0 10px}.brand>span{display:none}.account .account-name{max-width:42vw;font-size:11px}.ai-chat-layout .chat-messages{padding:14px 10px}.ai-chat-layout .chat-message{max-width:96%;padding:10px 11px 7px}.message-text{font-size:13px}.code-task-progress{min-width:0;width:calc(100vw - 70px);padding:9px 7px}.code-stage-list{grid-template-columns:repeat(5,minmax(36px,1fr))}.code-task-detail>span{white-space:normal}.message-attachments{grid-template-columns:1fr}.chat-composer textarea{padding-left:46px}.composer-attach{left:10px}}