:root{--bg:#10131a;--bg2:#14171d;--bg3:#191d24;--fg:#c8d0e0;--fg-dim:#828ba0;--accent:#61afef;--ok:#98c379;--warn:#d19a66;--err:#e06c75;--border:#232936;font-family:-apple-system,Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--fg)}.layout{flex-direction:column;height:100%;display:flex}.topbar{background:var(--bg2);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:12px;padding:8px 14px;display:flex}.brand{letter-spacing:.3px;font-weight:700}.brand-mark{background:var(--accent);color:#0b0d12;border-radius:4px;margin-right:4px;padding:0 5px;font-weight:800;display:inline-block}.project-select{background:var(--bg3);max-width:240px;color:var(--fg);border:1px solid var(--border);border-radius:6px;padding:4px 8px}.topbar-actions{flex-wrap:wrap;gap:8px;margin-left:auto;display:flex}.btn{background:var(--bg3);color:var(--fg);border:1px solid var(--border);cursor:pointer;border-radius:6px;padding:6px 12px;font-size:13px;text-decoration:none;display:inline-block}.btn:hover{border-color:var(--accent)}.btn.primary{background:var(--accent);color:#0b0d12;border-color:var(--accent);font-weight:600}.btn.ghost{background:0 0}.btn.tiny{padding:2px 8px;font-size:12px}.btn.danger:hover{border-color:var(--err);color:var(--err)}.btn:disabled{opacity:.5;cursor:default}.main{flex:1;grid-template-columns:220px minmax(0,1fr) minmax(0,1fr);min-height:0;display:grid}.sidebar{background:var(--bg2);border-right:1px solid var(--border);overflow-y:auto}.filetree-actions{flex-wrap:wrap;gap:6px;padding:8px;display:flex}.filetree ul{margin:0;padding:0 4px 12px;list-style:none}.filetree .file{text-align:left;width:100%;color:var(--fg);cursor:pointer;background:0 0;border:none;border-radius:5px;padding:4px 10px;font-family:SF Mono,Menlo,monospace;font-size:13px;display:block}.filetree .file:hover{background:var(--bg3)}.filetree .file.active{color:var(--accent);background:#1f2631}.filetree .deleted-row{align-items:center;gap:6px;padding-right:6px;display:flex}.filetree .file.deleted{opacity:.55;cursor:default;flex:1;text-decoration:line-through}.editor-area{border-right:1px solid var(--border);flex-direction:column;min-width:0;min-height:0;display:flex}.editor-host{flex-direction:column;flex:1;min-height:0;display:flex}.editor-statusbar{background:var(--bg2);border-bottom:1px solid var(--border);color:var(--fg-dim);justify-content:space-between;padding:4px 10px;font-family:SF Mono,Menlo,monospace;font-size:12px;display:flex}.status-badge[data-state=connected]{color:var(--ok)}.status-badge[data-state=disconnected]{color:var(--warn)}.status-badge[data-state=reloading]{color:var(--err)}.editor-container{flex:1;min-height:0;overflow:hidden}.document-outline{background:var(--bg2);max-height:180px;color:var(--fg-dim);flex-shrink:0;font-size:12px;overflow:auto}.document-outline summary{cursor:pointer;padding:6px 10px}.document-outline small{padding:6px 10px;display:block}.editor-syncing{color:var(--fg-dim);padding:24px;font-size:13px}.editor-notice{border-bottom:1px solid var(--warn);color:var(--warn);background:#2b2331;padding:10px 14px;font-size:13px}.editor-container .cm-editor{height:100%}.empty-pane{color:var(--fg-dim);flex:1;place-items:center;display:grid}.panel-tabs{background:var(--bg2);border-top:1px solid var(--border);flex-wrap:wrap;gap:2px;padding:4px 8px 0;display:flex}.tab{color:var(--fg-dim);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:5px 12px;font-size:12px}.tab.active{color:var(--fg);border-bottom-color:var(--accent)}.badge{border-radius:8px;margin-left:6px;padding:0 6px;font-size:11px}.badge.err{background:var(--err);color:#0b0d12}.badge.tag{background:var(--ok);color:#0b0d12}.panel{background:var(--bg2);border-top:1px solid var(--border);height:180px;overflow-y:auto}.panel-empty{color:var(--fg-dim);padding:12px;font-size:13px}.diag{text-align:left;border:none;border-bottom:1px solid var(--border);cursor:pointer;width:100%;color:var(--fg);background:0 0;align-items:baseline;gap:10px;padding:6px 10px;font-size:12.5px;display:flex}.diag:hover{background:var(--bg3)}.diag.error .diag-loc{color:var(--err)}.diag.warning .diag-loc{color:var(--warn)}.diag-loc{white-space:nowrap;font-family:SF Mono,Menlo,monospace}.diag-msg{text-overflow:ellipsis;overflow:hidden}.history{margin:0;padding:0;list-style:none}.hist-row{text-align:left;border:none;border-bottom:1px solid var(--border);cursor:pointer;width:100%;color:var(--fg);background:0 0;align-items:baseline;gap:10px;padding:6px 10px;font-size:12.5px;display:flex}.hist-row:hover{background:var(--bg3)}.hist-msg{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.hist-meta{color:var(--fg-dim);white-space:nowrap;font-size:11px}.diff-view{border-bottom:1px solid var(--border);max-height:160px;overflow:auto}.diff-head{justify-content:space-between;padding:4px 10px;font-family:monospace;display:flex}.diff-view pre{margin:0;padding:0 10px 10px;font-size:11.5px;overflow-x:auto}.preview{background:var(--bg2);flex-direction:column;height:100%;display:flex}.preview-bar{border-bottom:1px solid var(--border);color:var(--fg-dim);justify-content:center;align-items:center;gap:10px;padding:6px;font-size:12.5px;display:flex}.preview-scroll{flex:1;padding:8px;overflow:auto}.preview-scroll canvas{margin:0 auto;display:block;box-shadow:0 2px 14px #00000080}.preview-empty{color:var(--fg-dim);flex:1;place-items:center;display:grid}.binary-pane{flex-direction:column;height:100%;display:flex}.binary-preview{flex:1;place-items:center;padding:16px;display:grid;overflow:auto}.binary-preview img{max-width:100%;box-shadow:0 2px 14px #0006}.unlock{place-items:center;height:100%;display:grid}.unlock-card{background:var(--bg2);border:1px solid var(--border);border-radius:12px;width:380px;padding:32px}.unlock-card h1{margin-top:0}.unlock-card input{background:var(--bg3);border:1px solid var(--border);width:100%;color:var(--fg);border-radius:6px;margin-bottom:10px;padding:8px 10px;font-size:13px}.unlock-card button{width:100%}.error-text{color:var(--err);font-size:13px}.cm-ySelectionInfo{background:var(--bg3);color:var(--fg);border-radius:3px;padding:0 4px;font-size:11px;opacity:1!important}.overlay{z-index:10;background:#0000008c;place-items:center;display:grid;position:fixed;inset:0}.dialog{background:var(--bg2);border:1px solid var(--border);border-radius:12px;width:480px;max-height:80vh;padding:24px;overflow-y:auto}.dialog h2{margin-top:0}.dialog h3{color:var(--fg-dim);margin-bottom:6px;font-size:13px}.dialog-row{align-items:center;gap:8px;margin-top:12px;display:flex}.dialog-label{color:var(--fg-dim);margin-top:10px;font-size:13px;display:block}.dialog-label input,.dialog-label select{background:var(--bg3);border:1px solid var(--border);width:100%;color:var(--fg);border-radius:6px;margin-top:4px;padding:6px 8px;display:block}.dialog-label.checkbox{align-items:center;gap:8px;display:flex}.dialog-label.checkbox input{width:auto;margin-top:0}.dialog-row input,.dialog-row select{background:var(--bg3);border:1px solid var(--border);color:var(--fg);border-radius:6px;flex:1;padding:6px 8px}.dialog-fresh{border:1px solid var(--ok);border-radius:8px;margin-top:12px;padding:10px}.share-url{word-break:break-all;color:var(--ok);margin:6px 0;font-size:12px;display:block}.share-list{margin:0;padding:0;list-style:none}.share-row{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:6px 0;display:flex}.share-row.revoked{opacity:.55}.share-meta{color:var(--fg-dim);flex:1;font-size:12px}.project-name{font-weight:600}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}:root[data-theme=light] .btn.primary,:root[data-theme=light] .brand-mark,:root[data-theme=light] .badge.err,:root[data-theme=light] .badge.tag{color:#fff}:root[data-theme=light] .filetree .file.active,:root[data-theme=light] .editor-notice{background:var(--bg2)}.integration-dialog{width:min(860px,94vw);max-height:90vh;overflow:auto}.connection-layout{grid-template-columns:minmax(130px,1fr) minmax(0,3fr);gap:20px;display:grid}.connection-layout nav,.connection-form{flex-direction:column;gap:10px;display:flex}.connection-form label,.assistant-panel label{flex-direction:column;gap:5px;display:flex}.connection-form input,.connection-form select,.assistant-panel input,.assistant-panel select,.assistant-panel textarea{box-sizing:border-box;width:100%;min-width:0}.connection-form .inline-check{flex-direction:row;align-items:center}.connection-form .inline-check input{width:auto}.assistant-panel{box-sizing:border-box;flex:0 45%;min-height:180px;max-height:55%;padding:12px;overflow:auto}.assistant-controls{flex-wrap:wrap;align-items:end;gap:10px;display:flex}.assistant-controls label{flex:150px}.assistant-results{margin-top:16px}.assistant-result{border-top:1px solid var(--border);padding:12px 0}.assistant-result pre{white-space:pre-wrap;overflow-wrap:anywhere;-webkit-user-select:text;user-select:text;max-height:320px;overflow:auto}.assistant-result button{margin:6px 8px 0 0}@media (width<=650px){.connection-layout{grid-template-columns:1fr}.connection-layout nav{flex-flow:wrap}}.assistant-panel textarea{background:var(--bg);color:var(--fg);border:1px solid var(--border);resize:vertical;border-radius:6px;padding:8px}.layout{height:100dvh;overflow:hidden}.main{grid-template-rows:minmax(0,1fr);overflow:hidden}.workspace-header{flex-wrap:nowrap;flex-shrink:0;gap:12px}.workspace-header .project-select{min-width:120px;max-width:min(30vw,360px)}.workspace-save{color:var(--fg-dim);font-size:12px}.build-actions{align-items:center;gap:12px;margin-left:auto;display:flex}.build-state{color:var(--fg-dim);font-size:12px}.build-state.failed{color:var(--err)}.sidebar{flex-direction:column;min-height:0;display:flex;overflow:hidden}.filetree{flex-direction:column;flex:1;min-height:180px;display:flex;overflow:hidden}.files-heading{justify-content:space-between;align-items:center;padding:12px 10px 2px;font-size:13px;display:flex}.file-list{flex:1;min-height:0;overflow:auto}.file-folder summary{color:var(--fg-dim);cursor:pointer;padding:6px 10px;font-size:12px}.file-folder ul{padding-left:10px}.file-selection-actions{border-top:1px solid var(--border);flex-wrap:wrap;gap:5px;padding:8px;display:flex}.file-selection-actions span{text-overflow:ellipsis;width:100%;color:var(--fg-dim);font-size:11px;overflow:hidden}.workspace-tools{border-top:1px solid var(--border);flex-shrink:1;max-height:48%;padding:6px;overflow:auto}.workspace-tools details{border-bottom:1px solid var(--border)}.workspace-tools summary{cursor:pointer;padding:9px 7px;font-size:13px}.workspace-tools button,.workspace-tools a{text-align:left;width:100%;color:var(--fg);cursor:pointer;background:0 0;border:0;padding:8px 12px 8px 23px;font-size:12px;text-decoration:none;display:block}.workspace-tools button:hover,.workspace-tools a:hover{background:var(--bg3)}.workspace-tools button:disabled{opacity:.45;cursor:default}.project-hub{width:min(740px,92vw)}.dialog-heading{justify-content:space-between;align-items:start;gap:16px;display:flex}.dialog-heading h2{margin:0}.dialog-heading p{color:var(--fg-dim);line-height:1.5}.project-start{grid-template-columns:1fr 1fr;gap:14px;margin:18px 0 25px;display:grid}.start-card{background:var(--bg3);color:var(--fg);border:1px solid var(--border);cursor:pointer;text-align:left;border-radius:8px;flex-direction:column;align-items:start;gap:8px;padding:20px;display:flex}.start-card:hover{border-color:var(--accent)}.start-card strong{font-size:17px}.start-card span{color:var(--fg-dim)}.recent-projects{max-height:260px;margin-bottom:14px;overflow:auto}.recent-projects button{width:100%;color:var(--fg);border:0;border-bottom:1px solid var(--border);text-align:left;cursor:pointer;background:0 0;align-items:center;gap:12px;padding:12px;display:flex}.recent-projects button span{color:var(--fg-dim);font-size:12px}.recent-projects button span:last-child{margin-left:auto}.import-selection,.upload-results{background:var(--bg);border-radius:6px;max-height:230px;margin:12px 0;padding:12px;overflow:auto}.upload-results{list-style:none}.upload-results li{border-bottom:1px solid var(--border);flex-direction:column;align-items:start;gap:6px;padding:10px 0;display:flex}.upload-results span{color:var(--fg-dim);font-size:12px}.build-failure{border-bottom:1px solid var(--err);background:var(--bg2);flex-direction:column;flex-shrink:0;gap:5px;padding:12px;display:flex}.build-failure strong{color:var(--err)}.build-failure span{font-size:13px}.action-notice{background:var(--bg2);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:8px 14px;font-size:13px;display:flex}@media (width<=1000px){.workspace-save,.build-state{display:none}}.preview-target{color:var(--fg-dim);background:var(--bg2);border-bottom:1px solid var(--border);flex-shrink:0;padding:5px 10px;font-size:11px}.build-log-dialog{width:min(900px,94vw)}.build-log-dialog pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:50vh;font-size:12px;overflow:auto}.preview-area,.preview{min-width:0;min-height:0;overflow:hidden}.preview-bar{flex-wrap:wrap;flex-shrink:0}.preview-scroll{contain:size;scrollbar-gutter:stable;overflow-anchor:none;min-width:0;min-height:0}.pdf-pages{flex-direction:column;align-items:center;gap:16px;display:flex}.pdf-page{background:#fff;flex:none;max-width:100%;position:relative;box-shadow:0 2px 14px #00000080}.pdf-page canvas{width:100%;height:100%;box-shadow:none;margin:0;position:absolute;inset:0}.pdf-page-placeholder{color:#555;padding:20px;font-size:12px;display:block}
