:root{--bg-primary: #0a0e14;--bg-secondary: #0f141c;--bg-elevated: #111823;--bg-hover: #161e2a;--bg-active: #1a2330;--bg-panel: #0d1219;--border: #1e2a38;--border-subtle: #16202c;--border-focus: #5B8DC7;--border-strong: #2a3a4d;--accent: #3B6EA5;--accent-hover: #4a7db4;--accent-secondary: #5B8DC7;--accent-muted: rgba(59, 110, 165, .14);--accent-glow: rgba(91, 141, 199, .22);--accent-soft: rgba(59, 110, 165, .08);--silver: #9AA5B1;--silver-soft: #7a8794;--silver-bright: #c0c8d0;--violet: #6b5b9e;--violet-muted: rgba(107, 91, 158, .12);--text-primary: #e8edf2;--text-secondary: #9AA5B1;--text-muted: #6b7682;--text-disabled: #3d4754;--success: #3dba8c;--warning: #d4a843;--error: #d95a6a;--info: #5B8DC7;--glass-bg: rgba(17, 24, 35, .72);--glass-border: rgba(154, 165, 177, .08);--glass-highlight: rgba(91, 141, 199, .06);--font-ui: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "SF Mono", Consolas, monospace;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-full: 9999px;--duration-fast: .12s;--duration-normal: .18s;--duration-slow: .26s;--duration-page: .32s;--duration-run: .64s;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .5);--shadow-md: 0 4px 12px rgba(0, 0, 0, .55);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .6);--shadow-modal: 0 16px 48px rgba(0, 0, 0, .7);--nav-height: 44px;--sidebar-width: 260px;--sidebar-min: 180px;--sidebar-max: 420px;--activity-bar-width: 48px;--panel-height: 200px;--panel-min: 120px;--panel-max: 420px;--right-panel-width: 320px;--tab-height: 36px;--status-bar-height: 24px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}html,body,#root{height:100%;min-height:100%}body{font-family:var(--font-ui);background-color:var(--bg-primary);color:var(--text-primary);line-height:1.5;overflow-x:hidden}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 70% 45% at 40% -15%,rgba(59,110,165,.06),transparent 55%),radial-gradient(ellipse 50% 35% at 100% 0%,rgba(154,165,177,.025),transparent 45%),radial-gradient(ellipse 40% 30% at 0% 100%,rgba(139,124,255,.03),transparent 50%);pointer-events:none;z-index:0}#root{position:relative;z-index:1;display:flex;flex-direction:column;min-height:100%}h1,h2,h3,h4,h5,h6{font-weight:600;letter-spacing:-.02em;color:var(--text-primary)}p{color:var(--text-secondary)}code,pre,.mono{font-family:var(--font-mono)}:focus{outline:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}::selection{background:var(--accent-muted);color:var(--text-primary)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:var(--font-ui);font-weight:500;font-size:.875rem;line-height:1.25;border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out);white-space:nowrap;-webkit-user-select:none;user-select:none;text-decoration:none}.btn:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.btn-sm{height:32px;padding:0 var(--space-3);font-size:.8125rem}.btn-md{height:36px;padding:0 var(--space-4)}.btn-lg{height:42px;padding:0 var(--space-5);font-size:.9375rem}.btn-primary{background:var(--accent);color:#fff;box-shadow:0 0 0 0 transparent}.btn-primary:hover{background:var(--accent-secondary)}.btn-primary:active{transform:scale(.98);background:#6b4de6}.btn-primary:focus-visible{box-shadow:0 0 0 3px var(--accent-glow)}.btn-secondary{background:var(--bg-elevated);border-color:var(--border);color:var(--text-primary)}.btn-secondary:hover{background:var(--bg-hover);border-color:#2a3340}.btn-secondary:active{transform:scale(.98);background:var(--bg-active)}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-ghost:active{background:var(--bg-active)}.btn-danger{background:transparent;border-color:#ff5d7359;color:var(--error)}.btn-danger:hover{background:#ff5d731a;border-color:var(--error)}.input{display:block;width:100%;height:38px;padding:0 var(--space-3);font-family:var(--font-ui);font-size:.875rem;color:var(--text-primary);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out),background-color var(--duration-fast) var(--ease-out)}.input::placeholder{color:var(--text-muted)}.input:hover:not(:disabled):not(:focus){border-color:#2a3340}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-muted);background:var(--bg-elevated)}.input:disabled{opacity:.5;cursor:not-allowed;background:var(--bg-secondary)}.input-error{border-color:var(--error)}.input-error:focus{box-shadow:0 0 0 3px #ff5d7333}.label{display:block;font-size:.8125rem;font-weight:500;color:var(--text-secondary);margin-bottom:var(--space-2)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-4);animation:fadeIn var(--duration-normal) var(--ease-out)}.modal{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-modal);width:100%;max-width:440px;max-height:calc(100vh - 48px);overflow:auto;animation:modalIn var(--duration-normal) var(--ease-out)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-5) var(--space-5) var(--space-3)}.modal-title{font-size:1.0625rem;font-weight:600}.modal-body{padding:0 var(--space-5) var(--space-5)}.modal-footer{display:flex;justify-content:flex-end;gap:var(--space-3);padding:var(--space-3) var(--space-5) var(--space-5);border-top:1px solid var(--border-subtle)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalIn{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.nav{height:var(--nav-height);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-5);background:var(--bg-secondary);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100}.nav-brand{display:flex;align-items:center;gap:var(--space-3);text-decoration:none;color:var(--text-primary)}.nav-logo{width:22px;height:22px;display:flex;align-items:center;justify-content:center}.nav-title{font-size:.875rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.nav-links{display:flex;align-items:center;gap:var(--space-1)}.nav-link{display:inline-flex;align-items:center;height:32px;padding:0 var(--space-3);font-size:.8125rem;font-weight:500;color:var(--text-secondary);border-radius:var(--radius-sm);text-decoration:none;transition:color var(--duration-fast),background var(--duration-fast)}.nav-link:hover{color:var(--text-primary);background:var(--bg-hover)}.nav-link.active{color:var(--accent-secondary);background:var(--accent-muted)}.nav-right{display:flex;align-items:center;gap:var(--space-3)}.nav-avatar{width:30px;height:30px;border-radius:var(--radius-full);background:var(--bg-elevated);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600;color:var(--text-secondary);cursor:pointer;transition:border-color var(--duration-fast),background var(--duration-fast)}.nav-avatar:hover{border-color:var(--accent);background:var(--bg-hover)}.page{flex:1;display:flex;flex-direction:column;animation:pageIn var(--duration-page) var(--ease-out)}@keyframes pageIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.state-container{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--space-12) var(--space-6);min-height:280px}.state-icon{width:48px;height:48px;margin-bottom:var(--space-4);color:var(--text-muted);opacity:.7}.state-title{font-size:1rem;font-weight:600;margin-bottom:var(--space-2)}.state-desc{font-size:.875rem;color:var(--text-muted);max-width:320px;margin-bottom:var(--space-6)}.spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.entry{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8) var(--space-5);text-align:center;position:relative}.entry-label{font-size:.6875rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin-bottom:var(--space-4)}.entry-title{font-size:clamp(1.75rem,4vw,2.5rem);font-weight:600;letter-spacing:-.03em;margin-bottom:var(--space-4);background:linear-gradient(180deg,#f5f7fa,#a7afbd);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.entry-desc{font-size:1rem;color:var(--text-secondary);max-width:420px;margin-bottom:var(--space-8);line-height:1.6}.entry-actions{display:flex;gap:var(--space-3);flex-wrap:wrap;justify-content:center}.dashboard{flex:1;display:flex;flex-direction:column;max-width:1100px;width:100%;margin:0 auto;padding:var(--space-8) var(--space-5)}.dashboard-header{margin-bottom:var(--space-8)}.dashboard-heading{font-size:1.5rem;font-weight:600;letter-spacing:-.02em;margin-bottom:var(--space-2)}.dashboard-sub{font-size:.9375rem;color:var(--text-secondary);margin-bottom:var(--space-6)}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--space-4)}.project-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5);transition:border-color var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out);cursor:pointer}.project-card-name{font-size:.9375rem;font-weight:550;margin-bottom:var(--space-1)}.project-card-meta{font-size:.75rem;font-family:var(--font-mono);color:var(--text-muted)}@media (max-width: 640px){.nav{padding:0 var(--space-4)}.nav-title{font-size:.8125rem}.nav-links{display:none}.entry{padding:var(--space-6) var(--space-4)}.entry-actions{flex-direction:column;width:100%;max-width:280px}.entry-actions .btn{width:100%}.dashboard{padding:var(--space-6) var(--space-4)}.modal{max-width:100%}}@media (min-width: 641px) and (max-width: 1024px){.dashboard{padding:var(--space-6) var(--space-5)}}.hide-mobile{display:inline-flex}@media (max-width: 640px){.hide-mobile{display:none!important}}.loading-text{font-size:.875rem;color:var(--text-muted);display:inline-flex;align-items:center;gap:var(--space-2)}.state-offline{color:var(--warning)}.unsaved-dot{width:6px;height:6px;border-radius:50%;background:var(--warning);display:inline-block}.dashboard-header-row{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;margin-bottom:var(--space-2)}.dashboard-create-btn{flex-shrink:0}.dashboard-toolbar{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-5);margin-bottom:var(--space-2);flex-wrap:wrap}.search-wrap{position:relative;flex:1;min-width:180px;max-width:320px;display:flex;align-items:center}.search-icon{position:absolute;left:12px;color:var(--text-muted);pointer-events:none;display:flex}.search-input{padding-left:36px!important;padding-right:36px!important;height:36px}.search-clear{position:absolute;right:8px;background:transparent;border:none;color:var(--text-muted);cursor:pointer;width:28px;height:28px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:.75rem}.search-clear:hover{color:var(--text-primary);background:var(--bg-hover)}.sort-select{height:36px;padding:0 var(--space-3);font-family:var(--font-ui);font-size:.8125rem;color:var(--text-secondary);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23687180' d='M3 4.5L6 8l3-3.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:28px}.sort-select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-muted)}.projects-section{margin-top:var(--space-6)}.projects-section-title{font-size:.75rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:var(--space-4);display:flex;align-items:center;gap:var(--space-2)}.projects-count{font-family:var(--font-mono);font-size:.6875rem;color:var(--text-disabled);background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-full);padding:1px 8px}.project-list{display:flex;flex-direction:column;gap:var(--space-2)}.project-card{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-4);cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out);outline:none}.project-card:hover{border-color:#2a3340;background:var(--bg-elevated)}.project-card:hover .project-card-arrow{transform:translate(3px);color:var(--accent-secondary)}.project-card:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-muted)}.project-card-main{display:flex;align-items:flex-start;gap:var(--space-3);min-width:0;flex:1}.project-card-icon{width:36px;height:36px;border-radius:var(--radius-md);background:var(--bg-elevated);border:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:center;color:var(--text-muted);flex-shrink:0}.project-card-body{min-width:0}.project-card-name{font-size:.9375rem;font-weight:550;letter-spacing:-.01em;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-card-meta{font-size:.75rem;color:var(--text-muted);display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.project-card-meta .dot{opacity:.5}.project-card-time{font-size:.75rem;color:var(--text-disabled);margin-top:2px}.project-card-actions{display:flex;align-items:center;gap:var(--space-2);position:relative;flex-shrink:0}.project-card-arrow{color:var(--text-muted);font-size:.875rem;transition:transform var(--duration-fast) var(--ease-out),color var(--duration-fast)}.project-menu-trigger{width:32px;height:32px;border-radius:var(--radius-sm);border:none;background:transparent;color:var(--text-muted);cursor:pointer;font-size:.875rem;letter-spacing:.05em;display:flex;align-items:center;justify-content:center;transition:background var(--duration-fast),color var(--duration-fast)}.project-menu-trigger:hover,.project-menu-trigger[aria-expanded=true]{background:var(--bg-hover);color:var(--text-primary)}.project-menu{position:absolute;top:100%;right:0;margin-top:4px;min-width:160px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:var(--space-1);z-index:50;animation:menuIn var(--duration-fast) var(--ease-out)}@keyframes menuIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.project-menu-item{display:block;width:100%;text-align:left;padding:8px 12px;font-family:var(--font-ui);font-size:.8125rem;color:var(--text-primary);background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--duration-fast)}.project-menu-item:hover{background:var(--bg-hover)}.project-menu-danger{color:var(--error)}.project-menu-danger:hover{background:#ff5d731a}.project-menu-sep{height:1px;background:var(--border-subtle);margin:var(--space-1) 0}.create-form{display:flex;flex-direction:column;gap:var(--space-5)}.create-field{display:flex;flex-direction:column}.create-hint{font-size:.75rem;color:var(--text-muted);margin-bottom:var(--space-3);margin-top:-4px}.field-error{font-size:.75rem;color:var(--error);margin-top:var(--space-2)}.starter-grid{display:flex;flex-direction:column;gap:var(--space-2)}.starter-card{position:relative;text-align:left;padding:var(--space-4);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out);color:inherit;font-family:var(--font-ui)}.starter-card:hover:not(:disabled){border-color:#2a3340;background:var(--bg-hover)}.starter-card.selected{border-color:var(--accent);background:var(--accent-muted)}.starter-card:disabled{opacity:.6;cursor:not-allowed}.starter-label{display:block;font-size:.8125rem;font-weight:600;letter-spacing:.04em;margin-bottom:4px}.starter-desc{display:block;font-size:.8125rem;color:var(--text-secondary);line-height:1.4}.starter-check{position:absolute;top:12px;right:12px;width:20px;height:20px;border-radius:var(--radius-full);background:var(--accent);color:#fff;font-size:.6875rem;display:flex;align-items:center;justify-content:center}.create-footer{margin:var(--space-2) calc(-1 * var(--space-5)) calc(-1 * var(--space-5));padding:var(--space-4) var(--space-5) var(--space-5);border-top:1px solid var(--border-subtle);display:flex;justify-content:flex-end;gap:var(--space-3)}.delete-message{font-size:.9375rem;color:var(--text-secondary);line-height:1.5;margin-bottom:var(--space-2)}.delete-name{color:var(--text-primary);font-weight:550}.workspace-placeholder{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--space-8) var(--space-5)}.workspace-placeholder-inner{text-align:center;max-width:420px}.workspace-title{font-size:clamp(1.5rem,3vw,2rem);font-weight:600;letter-spacing:-.02em;margin-bottom:var(--space-2)}.workspace-meta{font-size:.8125rem;color:var(--text-muted);margin-bottom:var(--space-5)}.workspace-note{font-size:.9375rem;color:var(--text-secondary);line-height:1.55;margin-bottom:var(--space-8)}.btn-danger{background:#ff5d731f;border-color:#ff5d7366;color:var(--error)}.btn-danger:hover{background:#ff5d7333;border-color:var(--error)}.btn-danger:active{transform:scale(.98)}@media (max-width: 640px){.dashboard-header-row{flex-direction:column;align-items:stretch}.dashboard-create-btn{width:100%}.dashboard-toolbar{flex-direction:column;align-items:stretch}.search-wrap{max-width:none}.sort-select{width:100%}.project-card{padding:var(--space-3) var(--space-3)}.project-card-arrow{display:none}.starter-card{padding:var(--space-3)}.modal{max-height:calc(100vh - 24px)}}.page-workspace{padding:0;animation:none;overflow:hidden;min-height:0;height:100%}.workspace{display:flex;flex-direction:column;flex:1;min-height:0;height:100%;background:var(--bg-primary)}.ws-bar{height:48px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:0 var(--space-4);background:var(--bg-secondary);border-bottom:1px solid var(--border)}.ws-bar-left{display:flex;align-items:center;gap:var(--space-3);min-width:0}.ws-back{background:none;border:none;color:var(--text-secondary);font-family:var(--font-ui);font-size:.8125rem;cursor:pointer;padding:4px 6px;border-radius:var(--radius-sm);white-space:nowrap}.ws-back:hover{color:var(--text-primary);background:var(--bg-hover)}.ws-sep{width:1px;height:16px;background:var(--border)}.ws-project-name{font-size:.875rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ws-save-state{font-size:.75rem;color:var(--text-muted);font-family:var(--font-mono)}.ws-save-state[data-state=unsaved]{color:var(--warning)}.ws-save-state[data-state=saving]{color:var(--text-secondary)}.ws-save-state[data-state=saved]{color:var(--success)}.ws-bar-right{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.ws-body{flex:1;min-height:0;display:grid;grid-template-columns:minmax(180px,20%) minmax(0,1fr) minmax(200px,30%);overflow:hidden}.files-panel{background:var(--bg-secondary);border-right:1px solid var(--border);display:flex;flex-direction:column;min-width:0;min-height:0}.files-header,.preview-header{height:36px;display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-3);border-bottom:1px solid var(--border);flex-shrink:0}.files-title{font-size:.6875rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.files-add-wrap{position:relative}.files-add{width:24px;height:24px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);font-size:1rem;line-height:1}.files-add:hover{background:var(--bg-hover);color:var(--text-primary)}.files-add-menu{right:0;top:100%}.file-tree{list-style:none;margin:0;padding:var(--space-2) 0;overflow:auto;flex:1}.tree-row{position:relative;display:flex;align-items:center;gap:6px;height:28px;padding-right:8px;cursor:pointer;color:var(--text-secondary);font-size:.8125rem}.tree-row.active{background:var(--accent-muted);color:var(--text-primary);box-shadow:inset 2px 0 0 var(--accent)}.tree-icon{font-family:var(--font-mono);font-size:.6875rem;width:16px;text-align:center;color:var(--text-muted);flex-shrink:0}.tree-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-more{opacity:0;background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:.75rem;padding:0 4px}.tree-row:hover .tree-more,.tree-more:focus{opacity:1}.tree-menu{right:6px;top:26px;z-index:20}.tree-empty{padding:var(--space-4);font-size:.8125rem;color:var(--text-muted)}.editor-panel{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--bg-primary);border-right:1px solid var(--border)}.editor-tabs{display:flex;align-items:stretch;overflow-x:auto;height:36px;border-bottom:1px solid var(--border);background:var(--bg-secondary);flex-shrink:0}.editor-tab{display:inline-flex;align-items:center;gap:8px;height:100%;padding:0 12px;border:none;border-right:1px solid var(--border);background:transparent;color:var(--text-muted);font-family:var(--font-mono);font-size:.75rem;cursor:pointer;white-space:nowrap}.editor-tab:hover{color:var(--text-primary);background:var(--bg-hover)}.editor-tab.active{color:var(--text-primary);background:var(--bg-primary);box-shadow:inset 0 -2px 0 var(--accent)}.tab-close{opacity:.5;font-size:1rem;line-height:1}.tab-close:hover{opacity:1}.editor-stage{flex:1;min-height:0;display:flex;overflow:hidden}.editor-empty{flex:1;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:.875rem;padding:var(--space-6);text-align:center}.code-editor{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0}.editor-find{display:flex;align-items:center;gap:var(--space-2);padding:6px var(--space-3);border-bottom:1px solid var(--border);background:var(--bg-elevated)}.editor-find-input{height:30px!important;max-width:240px}.editor-body{flex:1;display:flex;min-height:0;overflow:hidden}.editor-gutter{width:48px;flex-shrink:0;overflow:hidden;background:var(--bg-primary);border-right:1px solid var(--border-subtle);padding:12px 0;text-align:right;-webkit-user-select:none;user-select:none}.gutter-line{height:20px;line-height:20px;padding-right:8px;font-family:var(--font-mono);font-size:12px;color:var(--text-disabled)}.editor-textarea{flex:1;min-width:0;resize:none;border:none;outline:none;background:var(--bg-primary);color:var(--text-primary);font-family:var(--font-mono);font-size:13px;line-height:20px;padding:12px 14px;-moz-tab-size:2;tab-size:2;white-space:pre;overflow:auto}.editor-textarea:focus{outline:none;box-shadow:none}.preview-panel{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--bg-elevated)}.preview-frame-wrap{flex:1;min-height:0;position:relative;background:#fff}.preview-frame{width:100%;height:100%;border:none;background:#fff}.preview-error{position:absolute;left:12px;right:12px;top:12px;z-index:2;background:#1a1012;border:1px solid rgba(255,93,115,.4);border-radius:var(--radius-md);padding:var(--space-3);color:var(--error);font-size:.8125rem}.preview-error p{color:var(--text-secondary);margin:6px 0 10px}.cm-host .cm-editor{height:100%;width:100%;outline:none}.cm-host{flex:1;min-width:0;min-height:0;overflow:hidden;display:flex;flex-direction:column}.cm-host .cm-editor{height:100%;width:100%;max-width:100%;outline:none}.cm-host .cm-scroller{overflow:auto!important}.page-workspace,.workspace,.ws-body,.editor-panel,.editor-stage{max-width:100%}.ws-pane{min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.ws-pane-files .files-panel{flex:1;height:100%}.ws-pane-preview{height:100%}.ws-pane-preview .preview-panel{flex:1;height:100%}.ws-mobile-nav{display:none}@media (max-width: 900px){.ws-body{display:grid;grid-template-columns:1fr;grid-template-rows:1fr}.ws-pane{display:none;height:100%}.ws-body.mobile-pane-files .ws-pane-files,.ws-body.mobile-pane-code .ws-pane-code,.ws-body.mobile-pane-preview .ws-pane-preview{display:flex}.ws-mobile-nav{display:grid;grid-template-columns:1fr 1fr 1fr auto;flex-shrink:0;height:52px;border-top:1px solid var(--border);background:var(--bg-secondary);padding:0 4px;padding-bottom:env(safe-area-inset-bottom,0)}.ws-mobile-nav button{border:none;background:transparent;color:var(--text-muted);font-family:var(--font-ui);font-size:.75rem;font-weight:500;cursor:pointer;min-height:44px;border-radius:var(--radius-sm)}.ws-mobile-nav button.active{color:var(--accent-secondary);background:var(--accent-muted)}.ws-mobile-nav .mobile-download{padding:0 12px;color:var(--text-secondary)}.page-workspace,.workspace{height:100%;max-height:100dvh}.tree-row{min-height:40px;height:auto;padding-top:8px;padding-bottom:8px}.tree-more{opacity:1;min-width:36px;min-height:36px}.files-add{width:36px;height:36px}.ws-bar{height:48px;padding:0 var(--space-3)}.ws-save-state{font-size:.6875rem}}@media (min-width: 901px){.ws-body{display:grid;grid-template-columns:minmax(180px,20%) minmax(0,1fr) minmax(200px,30%)}.ws-pane{display:flex!important}.ws-mobile-nav{display:none!important}}.shell-page{flex:1;width:100%;max-width:640px;margin:0 auto;padding:var(--space-6) var(--space-5) var(--space-10)}.shell-page-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-6)}.shell-page-title{font-size:1.25rem;font-weight:600;letter-spacing:-.02em}.shell-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5);margin-bottom:var(--space-4)}.shell-section-title{font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:var(--space-4)}.shell-note{font-size:.8125rem;color:var(--text-muted);line-height:1.5;margin-bottom:var(--space-4)}.shell-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-2)}.profile-meta{display:grid;gap:var(--space-3);margin:var(--space-4) 0}.profile-meta dt{font-size:.75rem;color:var(--text-muted);margin-bottom:2px}.profile-meta dd{font-size:.875rem;color:var(--text-primary)}.profile-id{font-size:.75rem;word-break:break-all;color:var(--text-secondary)}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-3)}.settings-row label{font-size:.875rem;color:var(--text-secondary)}.settings-check{display:flex;align-items:center;gap:var(--space-3);font-size:.875rem;color:var(--text-secondary);margin-bottom:var(--space-3);cursor:pointer}.settings-check input{width:16px;height:16px;accent-color:var(--accent)}html[data-reduce-motion=true] *,html[data-reduce-motion=true] *:before,html[data-reduce-motion=true] *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}@media (max-width: 640px){.shell-page{padding:var(--space-5) var(--space-4) var(--space-10)}.settings-row{flex-direction:column;align-items:stretch}.nav-links .nav-link:not(:first-child){display:none}}.glass-surface{background:var(--glass-bg);border:1px solid var(--glass-border);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:inset 0 1px 0 var(--glass-highlight)}.profile-page .profile-hero{display:flex;align-items:center;gap:var(--space-5);padding:var(--space-6);border-radius:var(--radius-xl);margin-bottom:var(--space-5)}.profile-avatar{width:64px;height:64px;border-radius:var(--radius-full);background:linear-gradient(145deg,#5b8dc7,#111823 55%,#8b7cff 120%);border:1px solid rgba(216,224,232,.2);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1.25rem;color:#f5f7fa;letter-spacing:.02em;flex-shrink:0;box-shadow:0 0 24px #3ba7ff26}.profile-hero-text{min-width:0}.profile-name{font-size:1.25rem;font-weight:600;letter-spacing:-.02em;margin:0 0 2px}.profile-handle{font-size:.875rem;color:var(--silver-soft);margin:0 0 4px;font-family:var(--font-mono)}.profile-email{font-size:.8125rem;color:var(--text-muted);margin:0;word-break:break-all}.nav-avatar{background:linear-gradient(145deg,#3ba7ff40,#151b22e6);border-color:#74c7ff40;color:var(--silver)}.run-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:40;pointer-events:none;overflow:hidden;opacity:0;transition:opacity .12s var(--ease-out)}.run-overlay.active{opacity:1}.run-wave{position:absolute;top:-20%;right:-30%;bottom:-20%;left:-30%;border-radius:40% 60% 50% 50%;filter:blur(18px);opacity:.55;transform:translate3d(-40%,10%,0) rotate(-8deg);will-change:transform,opacity}.run-wave-1{background:linear-gradient(115deg,rgba(59,167,255,.35) 0%,rgba(216,224,232,.18) 40%,rgba(139,124,255,.12) 70%,transparent 100%);animation:forgeWave1 var(--duration-run) var(--ease-out) forwards}.run-wave-2{background:linear-gradient(95deg,transparent 10%,rgba(116,199,255,.28) 35%,rgba(216,224,232,.22) 55%,rgba(59,167,255,.1) 80%,transparent 100%);filter:blur(22px);animation:forgeWave2 var(--duration-run) var(--ease-out) forwards;animation-delay:40ms}.run-wave-3{background:linear-gradient(130deg,rgba(216,224,232,.12) 0%,rgba(59,167,255,.2) 45%,rgba(139,124,255,.1) 75%,transparent 100%);filter:blur(14px);opacity:.4;animation:forgeWave3 var(--duration-run) var(--ease-out) forwards;animation-delay:80ms}.run-success-glow{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;background:radial-gradient(ellipse 70% 50% at 70% 50%,rgba(59,167,255,.18),rgba(216,224,232,.06) 45%,transparent 70%);transition:opacity .2s var(--ease-out)}.run-overlay.success .run-success-glow{opacity:1;animation:forgeSuccessGlow .6s var(--ease-out) forwards}.run-overlay.success:not(.active) .run-wave{opacity:0}@keyframes forgeWave1{0%{transform:translate3d(-55%,15%,0) rotate(-10deg) scale(1);opacity:0}20%{opacity:.6}to{transform:translate3d(45%,-20%,0) rotate(6deg) scale(1.05);opacity:0}}@keyframes forgeWave2{0%{transform:translate3d(-35%,30%,0) rotate(4deg) scale(.95);opacity:0}25%{opacity:.5}to{transform:translate3d(50%,-15%,0) rotate(-4deg) scale(1.08);opacity:0}}@keyframes forgeWave3{0%{transform:translate3d(-20%,40%,0) skew(-4deg);opacity:0}30%{opacity:.45}to{transform:translate3d(40%,-25%,0) skew(2deg);opacity:0}}@keyframes forgeSuccessGlow{0%{opacity:0}30%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion: reduce){.run-wave{animation:none!important;opacity:0!important}.run-overlay.active{background:#3ba7ff14;transition:opacity .1s linear}.run-success-glow{animation:none!important}}html[data-reduce-motion=true] .run-wave{animation:none!important;opacity:0!important}html[data-reduce-motion=true] .run-overlay.active{background:#3ba7ff14}html[data-reduce-motion=true] .run-success-glow{animation:none!important}.workspace{position:relative}@media (max-width: 640px){.profile-hero{flex-direction:column;align-items:flex-start;text-align:left}.profile-avatar{width:56px;height:56px;font-size:1.1rem}}.workspace.ide-layout{display:flex;flex-direction:column;height:100%;min-height:100vh;background:var(--bg-primary)}.workspace.ide-layout .ws-bar{height:var(--nav-height);min-height:var(--nav-height);flex-shrink:0;border-bottom:1px solid var(--border-subtle);background:var(--bg-secondary)}.workspace.ide-layout .ws-body{flex:1;display:flex;min-height:0;overflow:hidden}.activity-bar{width:var(--activity-bar-width);min-width:var(--activity-bar-width);background:var(--bg-primary);border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;align-items:center;padding:var(--space-2) 0;gap:2px}.activity-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-left:2px solid transparent;color:var(--text-muted);cursor:pointer;border-radius:0;transition:color var(--duration-fast),background var(--duration-fast),border-color var(--duration-fast)}.activity-btn:hover{color:var(--text-primary);background:var(--bg-hover)}.activity-btn.active{color:var(--text-primary);border-left-color:var(--accent-secondary);background:var(--accent-soft)}.activity-icon{font-size:16px;line-height:1}.ws-sidebar-rail{display:flex;flex-shrink:0;height:100%;border-right:1px solid var(--border-subtle)}.workspace.ide-layout .ws-pane-files{width:var(--sidebar-width);min-width:var(--sidebar-min);max-width:var(--sidebar-max);background:var(--bg-panel);display:flex;flex-direction:column;overflow:hidden}.side-panel-title{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border-subtle);flex-shrink:0}.panel-icon-btn{background:transparent;border:none;color:var(--text-muted);cursor:pointer;padding:2px 6px;font-size:14px;border-radius:var(--radius-sm);line-height:1}.panel-icon-btn:hover{color:var(--text-primary);background:var(--bg-hover)}.sidebar-expand-btn,.preview-expand-btn{background:var(--bg-panel);border:none;border-right:1px solid var(--border-subtle);color:var(--text-muted);cursor:pointer;padding:var(--space-2);font-size:14px;writing-mode:vertical-rl;text-orientation:mixed}.preview-expand-btn{border-right:none;border-left:1px solid var(--border-subtle);writing-mode:horizontal-tb;padding:var(--space-2) var(--space-1)}.sidebar-expand-btn:hover,.preview-expand-btn:hover{color:var(--text-primary);background:var(--bg-hover)}.workspace.ide-layout .ws-pane-code{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--bg-primary)}.workspace.ide-layout .editor-tabs{height:var(--tab-height);min-height:var(--tab-height);background:var(--bg-secondary);border-bottom:1px solid var(--border-subtle);display:flex;overflow-x:auto;flex-shrink:0}.workspace.ide-layout .editor-tab{display:flex;align-items:center;gap:6px;padding:0 12px;height:100%;background:transparent;border:none;border-right:1px solid var(--border-subtle);color:var(--text-muted);font-size:12px;font-family:var(--font-ui);cursor:pointer;white-space:nowrap}.workspace.ide-layout .editor-tab:hover{background:var(--bg-hover);color:var(--text-secondary)}.workspace.ide-layout .editor-tab.active{background:var(--bg-primary);color:var(--text-primary);border-bottom:1px solid var(--bg-primary);margin-bottom:-1px}.workspace.ide-layout .tab-close{opacity:.5;font-size:14px;padding:0 2px;border-radius:2px}.workspace.ide-layout .tab-close:hover{opacity:1;background:var(--bg-active)}.breadcrumbs{display:flex;align-items:center;padding:4px 12px;font-size:12px;color:var(--text-muted);background:var(--bg-primary);border-bottom:1px solid var(--border-subtle);flex-shrink:0;overflow-x:auto;white-space:nowrap}.breadcrumb-sep{margin:0 4px;opacity:.5}.breadcrumb-link{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:inherit;font-family:inherit;padding:0}.breadcrumb-link:hover{color:var(--accent-secondary)}.breadcrumb-current{color:var(--text-secondary)}.workspace.ide-layout .editor-stage{flex:1;min-height:0;overflow:hidden}.workspace.ide-layout .ws-pane-preview{width:var(--right-panel-width);min-width:240px;max-width:480px;border-left:1px solid var(--border-subtle);display:flex;flex-direction:column;background:var(--bg-panel);flex-shrink:0}.preview-toolbar{display:flex;align-items:center;justify-content:space-between;padding:4px 8px;border-bottom:1px solid var(--border-subtle);flex-shrink:0}.preview-label{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.bottom-panel{flex-shrink:0;border-top:1px solid var(--border-subtle);background:var(--bg-secondary);display:flex;flex-direction:column;height:var(--panel-height);min-height:var(--panel-min)}.bottom-panel.collapsed{height:28px;min-height:28px}.bottom-panel-toggle{width:100%;height:100%;display:flex;align-items:center;gap:8px;padding:0 12px;background:transparent;border:none;color:var(--text-muted);font-size:12px;font-family:var(--font-ui);cursor:pointer}.bottom-panel-toggle:hover{background:var(--bg-hover);color:var(--text-secondary)}.bottom-panel-toggle .sep{opacity:.3}.bottom-panel-toggle .badge{font-size:10px;padding:1px 5px;border-radius:var(--radius-full);font-weight:600}.bottom-panel-toggle .badge.error{background:#d95a6a33;color:var(--error)}.bottom-panel-toggle .badge.warn{background:#d4a84333;color:var(--warning)}.bottom-panel-tabs{display:flex;align-items:center;height:32px;border-bottom:1px solid var(--border-subtle);padding:0 4px;flex-shrink:0}.bottom-panel-tabs>button{background:transparent;border:none;color:var(--text-muted);font-size:12px;font-family:var(--font-ui);padding:0 12px;height:100%;cursor:pointer;border-bottom:1px solid transparent;display:flex;align-items:center;gap:6px}.bottom-panel-tabs>button:hover{color:var(--text-secondary)}.bottom-panel-tabs>button.active{color:var(--text-primary);border-bottom-color:var(--accent-secondary)}.bottom-panel-tabs .tab-count{font-size:10px;background:var(--bg-active);padding:1px 5px;border-radius:var(--radius-full)}.bottom-panel-actions{margin-left:auto}.bottom-panel-body{flex:1;overflow:auto;min-height:0}.panel-empty{padding:var(--space-4);color:var(--text-muted);font-size:13px}.panel-hint{padding:0 var(--space-4) var(--space-4);color:var(--text-disabled);font-size:12px;line-height:1.5}.problems-list{display:flex;flex-direction:column}.problem-row{display:flex;align-items:center;gap:10px;padding:6px 12px;background:transparent;border:none;border-bottom:1px solid var(--border-subtle);color:var(--text-secondary);font-size:12px;font-family:var(--font-ui);cursor:pointer;text-align:left;width:100%}.problem-row:hover{background:var(--bg-hover)}.problem-sev{font-size:10px;text-transform:uppercase;font-weight:600;min-width:56px}.severity-error .problem-sev{color:var(--error)}.severity-warning .problem-sev{color:var(--warning)}.severity-info .problem-sev{color:var(--info)}.problem-msg{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.problem-loc{color:var(--text-muted);font-family:var(--font-mono);font-size:11px}.output-log{padding:var(--space-3);font-family:var(--font-mono);font-size:12px;color:var(--text-secondary);white-space:pre-wrap;margin:0}.terminal-stub{padding:var(--space-2) 0}.status-bar{height:var(--status-bar-height);min-height:var(--status-bar-height);background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 10px;font-size:11px;flex-shrink:0}.status-left,.status-right{display:flex;align-items:center;gap:12px}.status-item{opacity:.95}.status-item.muted{opacity:.7}.status-item[data-state=unsaved]{font-weight:600}.status-item.runtime-running{opacity:1}.search-panel{display:flex;flex-direction:column;height:100%;overflow:hidden}.search-panel-header{padding:var(--space-2) var(--space-3);display:flex;flex-direction:column;gap:6px;border-bottom:1px solid var(--border-subtle)}.search-input{width:100%;background:var(--bg-primary);border:1px solid var(--border);color:var(--text-primary);border-radius:var(--radius-sm);padding:6px 10px;font-size:13px;font-family:var(--font-ui);outline:none}.search-input:focus{border-color:var(--border-focus)}.search-option{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text-muted);cursor:pointer}.search-results{flex:1;overflow:auto}.search-count{padding:6px 12px;font-size:11px;color:var(--text-muted)}.search-hit{display:flex;flex-direction:column;gap:2px;width:100%;padding:6px 12px;background:transparent;border:none;border-bottom:1px solid var(--border-subtle);cursor:pointer;text-align:left}.search-hit:hover{background:var(--bg-hover)}.search-hit-path{font-size:11px;color:var(--accent-secondary);font-family:var(--font-mono)}.search-hit-preview{font-size:12px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-panel-stub{padding:var(--space-2) 0}.tools-list{list-style:none;padding:0;margin:0}.tools-list li{padding:10px 12px;border-bottom:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:2px}.tools-list strong{font-size:12px;color:var(--text-primary)}.tools-list span{font-size:11px;color:var(--text-muted)}.workspace.fullscreen-editor .ws-sidebar-rail,.workspace.fullscreen-editor .ws-pane-preview,.workspace.fullscreen-editor .bottom-panel,.workspace.fullscreen-editor .status-bar,.workspace.fullscreen-editor .ws-mobile-nav{display:none!important}.workspace.fullscreen-editor .ws-body{height:calc(100vh - var(--nav-height))}@media (max-width: 768px){.activity-bar{display:none}.ws-sidebar-rail{border-right:none}.workspace.ide-layout .ws-pane-files{width:100%;max-width:none}.workspace.ide-layout .ws-pane-preview{width:100%;max-width:none;border-left:none}.bottom-panel,.status-bar,.side-panel-title{display:none}}.forge-icon{flex-shrink:0;vertical-align:middle}.icon-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:28px;height:28px;padding:0;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;transition:color var(--duration-fast),background var(--duration-fast)}.icon-btn:hover:not(:disabled){color:var(--text-primary);background:var(--bg-hover)}.icon-btn:disabled{opacity:.4;cursor:not-allowed}.icon-btn.active{color:var(--accent-secondary);background:var(--accent-soft)}.icon-btn-primary{color:#fff;background:var(--accent)}.icon-btn-primary:hover:not(:disabled){background:var(--accent-hover);color:#fff}.icon-btn-danger:hover:not(:disabled){color:var(--error);background:#d95a6a1f}.tooltip-wrap{position:relative;display:inline-flex}.tooltip{position:absolute;z-index:1000;padding:4px 8px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:11px;font-family:var(--font-ui);white-space:nowrap;pointer-events:none;box-shadow:var(--shadow-md);display:flex;align-items:center;gap:8px}.tooltip-bottom{top:calc(100% + 6px);left:50%;transform:translate(-50%)}.tooltip-top{bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.tooltip-right{left:calc(100% + 8px);top:50%;transform:translateY(-50%)}.tooltip-left{right:calc(100% + 8px);top:50%;transform:translateY(-50%)}.tooltip-shortcut{color:var(--text-muted);font-size:10px;font-family:var(--font-mono)}.context-menu{position:fixed;z-index:1100;min-width:180px;max-width:280px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:4px;display:flex;flex-direction:column}.context-menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1099}.context-menu-item{display:flex;align-items:center;gap:8px;width:100%;padding:6px 10px;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-secondary);font-size:12px;font-family:var(--font-ui);cursor:pointer;text-align:left}.context-menu-item:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.context-menu-item:disabled{opacity:.4;cursor:not-allowed}.context-menu-item.danger{color:var(--error)}.context-menu-item.danger:hover:not(:disabled){background:#d95a6a1f}.context-menu-label{flex:1}.context-menu-shortcut{color:var(--text-muted);font-size:10px;font-family:var(--font-mono)}.context-menu-sep{height:1px;background:var(--border-subtle);margin:4px 0}.cmd-palette-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;background:#00000073;display:flex;justify-content:center;padding-top:12vh}.cmd-palette{width:min(560px,92vw);max-height:60vh;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-modal);display:flex;flex-direction:column;overflow:hidden}.cmd-palette-input-row{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--border-subtle);color:var(--text-muted)}.cmd-palette-input{flex:1;background:transparent;border:none;outline:none;color:var(--text-primary);font-size:14px;font-family:var(--font-ui)}.cmd-palette-input::placeholder{color:var(--text-muted)}.cmd-palette-list{overflow-y:auto;max-height:50vh;padding:4px}.cmd-palette-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 12px;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-secondary);font-size:13px;font-family:var(--font-ui);cursor:pointer;text-align:left}.cmd-palette-item:hover,.cmd-palette-item.active{background:var(--accent-soft);color:var(--text-primary)}.cmd-palette-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cmd-palette-cat{color:var(--text-muted)}.cmd-palette-shortcut{color:var(--text-muted);font-size:11px;font-family:var(--font-mono)}.cmd-palette-empty{padding:24px;text-align:center;color:var(--text-muted);font-size:13px}.goto-line-dialog{width:min(360px,90vw);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-modal);padding:12px 14px}.goto-line-row{display:flex;align-items:center;gap:10px;color:var(--text-muted)}.goto-line-error{color:var(--error);font-size:12px;margin-top:8px}.goto-line-hint{color:var(--text-muted);font-size:11px;margin-top:8px}.project-action-bar{display:flex;align-items:center;gap:8px}.action-group{display:flex;align-items:center;gap:6px}.action-run-btn{display:inline-flex;align-items:center;gap:6px}.action-run-btn.running{opacity:.9}.file-tree{display:flex;flex-direction:column;height:100%;overflow:hidden}.file-tree-toolbar{display:flex;align-items:center;justify-content:space-between;padding:4px 8px;border-bottom:1px solid var(--border-subtle);flex-shrink:0}.file-tree-title{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.file-tree-actions{display:flex;gap:2px}.tree-list{list-style:none;margin:0;padding:4px 0;overflow-y:auto;flex:1}.tree-children{list-style:none;margin:0;padding:0}.tree-row{display:flex;align-items:center;gap:4px;padding:3px 8px 3px 0;cursor:pointer;color:var(--text-secondary);font-size:12px;border-radius:0;min-height:26px}.tree-row:hover{background:var(--bg-hover);color:var(--text-primary)}.tree-row.active{background:var(--accent-soft);color:var(--text-primary)}.tree-icon{display:flex;align-items:center;width:16px;flex-shrink:0;color:var(--text-muted)}.tree-folder-icon{display:flex;align-items:center;color:var(--accent-secondary);opacity:.85}.tree-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-more{opacity:0;background:transparent;border:none;color:var(--text-muted);cursor:pointer;padding:2px;border-radius:var(--radius-sm);display:flex;align-items:center}.tree-row:hover .tree-more{opacity:1}.tree-more:hover{background:var(--bg-active);color:var(--text-primary)}.tree-empty{padding:16px;color:var(--text-muted);font-size:12px}.preview-label{display:flex;align-items:center;gap:6px}.preview-running-badge{font-size:10px;font-weight:600;padding:1px 6px;border-radius:var(--radius-full);background:#3dba8c26;color:var(--success);text-transform:uppercase;letter-spacing:.04em}.preview-running-badge.starting{background:#5b8dc726;color:var(--accent-secondary)}.preview-running-badge.error{background:#d95a6a26;color:var(--error)}.preview-toolbar-actions{display:flex;align-items:center;gap:2px}.status-indicator{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary)}.status-dot{width:7px;height:7px;border-radius:50%;background:var(--text-muted);flex-shrink:0}.status-ready .status-dot,.status-running .status-dot{background:var(--success)}.status-building .status-dot,.status-deploying .status-dot,.status-queued .status-dot{background:var(--warning)}.status-failed .status-dot,.status-error .status-dot{background:var(--error)}.status-local .status-dot{background:var(--silver)}.status-cloud .status-dot{background:var(--accent-secondary)}.status-idle .status-dot{background:var(--text-muted)}.deploy-modal{display:flex;flex-direction:column;gap:14px}.deploy-field .label{display:block;margin-bottom:4px}.deploy-value{font-size:13px;color:var(--text-primary)}.deploy-value.muted{color:var(--text-muted)}.deploy-env-row{display:flex;gap:6px}.deploy-env-btn{padding:6px 14px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:12px;font-family:var(--font-ui);cursor:pointer}.deploy-env-btn.selected{border-color:var(--accent-secondary);color:var(--text-primary);background:var(--accent-soft)}.deploy-notice{display:flex;gap:10px;padding:10px 12px;background:var(--accent-soft);border:1px solid var(--border);border-radius:var(--radius-md);font-size:12px;color:var(--text-secondary);line-height:1.45}.deploy-notice .forge-icon{color:var(--accent-secondary);flex-shrink:0;margin-top:2px}.deploy-message{font-size:12px;color:var(--warning);padding:8px 0}.deployments-panel{padding:8px;overflow-y:auto;height:100%}.deployments-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.deployments-header h3{font-size:13px;font-weight:600;color:var(--text-primary);margin:0}.deploy-section-title{font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);margin:12px 0 8px}.deploy-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-primary);padding:12px}.deploy-card.empty{opacity:.85}.deploy-card-title{font-size:13px;font-weight:500;color:var(--text-primary);margin:6px 0 2px}.deploy-card-url{font-size:12px;font-family:var(--font-mono)}.deploy-card-actions{margin-top:10px}.deploy-empty-state{text-align:center;padding:24px 12px;color:var(--text-muted)}.deploy-empty-state .forge-icon{margin-bottom:8px;opacity:.5}.deploy-empty-state p{font-size:13px;margin:0 0 4px}.tools-list-btn,.tools-list-item{display:flex;align-items:flex-start;gap:10px;width:100%;padding:10px 12px;background:transparent;border:none;border-bottom:1px solid var(--border-subtle);color:var(--text-secondary);font-family:var(--font-ui);text-align:left;cursor:pointer}.tools-list-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.tools-list-btn strong,.tools-list-item strong{display:block;font-size:12px;color:var(--text-primary)}.tools-desc{display:block;font-size:11px;color:var(--text-muted);font-weight:400}.editor-tab .forge-icon{opacity:.7}.editor-tab.active .forge-icon{opacity:1}.ws-back{display:inline-flex;align-items:center;gap:4px}.run-overlay{display:none!important}.activity-btn .forge-icon{opacity:.75}.activity-btn.active .forge-icon,.activity-btn:hover .forge-icon{opacity:1}.btn .forge-icon,button .forge-icon{flex-shrink:0}@media (max-width: 900px){.project-action-bar:not(.compact) .secondary-actions{display:none}}.cm-host,.code-editor{height:100%;width:100%;overflow:hidden}.cm-host .cm-editor{height:100%}.cm-host .cm-editor.cm-focused{outline:none}.editor-groups{display:flex;height:100%;width:100%;min-height:0}.editor-groups.split-right{flex-direction:row}.editor-group{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.editor-groups.split-right .editor-group.secondary{border-left:1px solid var(--border-subtle)}.editor-group-bar{display:flex;align-items:center;justify-content:space-between;padding:2px 8px;font-size:11px;color:var(--text-muted);background:var(--bg-secondary);border-bottom:1px solid var(--border-subtle);flex-shrink:0}.cm-host .cm-foldGutter .cm-gutterElement{cursor:pointer;color:var(--text-muted)}.cm-host .cm-foldGutter .cm-gutterElement:hover{color:var(--text-primary)}.cm-host .cm-selectionMatch{background-color:#5b8dc726}.cm-host .cm-activeLine{background-color:#111823d9}.cm-host .cm-tooltip-autocomplete{max-height:240px}.cm-host .cm-completionLabel{font-family:var(--font-mono);font-size:12px}.cm-host .cm-completionDetail{font-style:normal;color:var(--text-muted);font-size:11px;margin-left:8px}.search-input-row{display:flex;align-items:center;gap:8px;color:var(--text-muted)}.search-input-row .search-input{flex:1}.search-options-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.search-option{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-family:var(--font-mono);color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none}.search-option input{accent-color:var(--accent-secondary)}.search-toggle-replace{margin-left:auto;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;padding:2px 6px;display:inline-flex}.search-toggle-replace:hover,.search-toggle-replace.active{color:var(--text-primary);background:var(--bg-hover);border-color:var(--border)}.search-filter{font-size:12px!important}.search-replace-actions{display:flex;gap:6px}.search-action-btn{flex:1;padding:5px 8px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:11px;font-family:var(--font-ui);cursor:pointer}.search-action-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.search-action-btn.primary{border-color:var(--accent);color:var(--accent-secondary)}.search-action-btn:disabled{opacity:.4;cursor:not-allowed}.search-status{font-size:11px;color:var(--text-muted);margin:0}.search-count-row{display:flex;align-items:center;justify-content:space-between;padding:4px 12px}.search-nav{display:flex;align-items:center;gap:4px}.search-idx{font-size:11px;color:var(--text-muted);font-family:var(--font-mono);min-width:36px;text-align:center}.search-hit.active{background:var(--accent-soft)}.editor-group-tabs{display:flex;align-items:center;gap:2px;overflow-x:auto;flex:1;min-width:0}.editor-group-tab{background:transparent;border:none;color:var(--text-muted);font-size:11px;font-family:var(--font-ui);padding:2px 8px;cursor:pointer;border-radius:var(--radius-sm);white-space:nowrap}.editor-group-tab:hover{color:var(--text-secondary);background:var(--bg-hover)}.editor-group-tab.active{color:var(--text-primary);background:var(--bg-active)}.editor-groups.split-right .editor-group{position:relative}.editor-groups.split-right .editor-group.secondary:before{content:"";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--border);z-index:1}.cm-host .cm-scroller::-webkit-scrollbar{width:10px;height:10px}.cm-host .cm-scroller::-webkit-scrollbar-track{background:transparent}.cm-host .cm-scroller::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:5px;border:2px solid var(--bg-primary)}.cm-host .cm-scroller::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.starter-group-label{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin:12px 0 8px}.starter-card.starter-blank{border-style:dashed}.starter-tech{display:block;font-size:11px;color:var(--accent-secondary);margin-top:6px}.starter-meta{display:block;font-size:10px;color:var(--text-muted);font-family:var(--font-mono);margin-top:4px}.starter-selected-hint{font-size:12px;color:var(--text-muted);margin:12px 0 0;line-height:1.45}.empty-workspace{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem;gap:8px;height:100%}.empty-title{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin:0}.empty-actions{display:flex;gap:8px;margin-top:12px}.deploy-flow .deploy-unsupported{color:var(--warning);font-size:12px}.deploy-notice.warn{background:#d9a05a1a;border-color:#d9a05a59}.deploy-pipeline{background:#0a0e14;border:1px solid var(--border);border-radius:var(--radius-md);padding:14px;margin-bottom:12px}.deploy-pipeline-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.deploy-pipeline-brand{font-size:10px;font-weight:600;letter-spacing:.12em;color:var(--silver);text-transform:uppercase}.deploy-pipeline-track{height:2px;background:var(--border-subtle);border-radius:1px;margin-bottom:14px;overflow:hidden}.deploy-pipeline-progress{height:100%;background:linear-gradient(90deg,#3b6ea5,#5b8dc7);transition:width .4s ease}.deploy-pipeline-progress.phase-ready{background:var(--success)}.deploy-pipeline-progress.phase-failed{background:var(--error)}.deploy-stage-list{list-style:none;margin:0;padding:0}.deploy-stage-row{display:flex;align-items:center;gap:10px;width:100%;padding:6px 4px;background:transparent;border:none;color:var(--text-secondary);font-size:12px;font-family:var(--font-ui);cursor:pointer;text-align:left}.deploy-stage.status-done .deploy-stage-label{color:var(--text-primary)}.deploy-stage.status-running .deploy-stage-label{color:var(--accent-secondary)}.deploy-stage.status-failed .deploy-stage-label{color:var(--error)}.deploy-stage.status-pending .deploy-stage-label{color:var(--text-muted)}.deploy-stage-icon{width:16px;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.deploy-stage.status-done .deploy-stage-icon{color:var(--success)}.deploy-stage.status-running .deploy-stage-icon{color:var(--accent-secondary)}.deploy-stage.status-failed .deploy-stage-icon{color:var(--error)}.deploy-stage-detail{margin-left:auto;font-size:11px;color:var(--text-muted);font-family:var(--font-mono);max-width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.deploy-stage-body{padding:4px 4px 8px 30px;font-family:var(--font-mono);font-size:11px;color:var(--text-muted)}.deploy-log-line{margin:2px 0}.spin{animation:forge-spin .9s linear infinite}@keyframes forge-spin{to{transform:rotate(360deg)}}.deploy-success{text-align:center;padding:12px 0 4px}.deploy-success-title{font-size:14px;font-weight:600;color:var(--text-primary);margin:0 0 6px}.deploy-success-url{font-size:13px;color:var(--accent-secondary);margin:0 0 14px}.deploy-success-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.deploy-failed{padding:8px 0}.deploy-failed-msg{font-size:12px;color:var(--error);margin:0 0 12px;line-height:1.45}.deploy-history-list{list-style:none;margin:0;padding:0}.deploy-history-row{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;background:transparent;border:none;border-bottom:1px solid var(--border-subtle);color:var(--text-secondary);font-size:12px;font-family:var(--font-ui);cursor:pointer;text-align:left}.deploy-history-row:hover{background:var(--bg-hover)}.deploy-hist-env{text-transform:capitalize;min-width:70px}.deploy-hist-time{color:var(--text-muted);font-size:11px}.deploy-hist-url{margin-left:auto;font-family:var(--font-mono);font-size:10px;max-width:40%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.deploy-log-drawer{margin-top:12px;border-top:1px solid var(--border);padding-top:10px}.deploy-log-drawer-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;font-size:12px}.deploy-log-pre{background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:10px;font-size:11px;font-family:var(--font-mono);color:var(--text-secondary);max-height:160px;overflow:auto;margin:0 0 8px;white-space:pre-wrap}.mono{font-family:var(--font-mono)}
