: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)}.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)}.dp-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:var(--bg-primary);color:var(--text-primary);display:flex;flex-direction:column;overflow:hidden}.dp-shell{display:flex;flex-direction:column;height:100%;max-width:1100px;width:100%;margin:0 auto}.dp-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border);flex-shrink:0}.dp-header-left{display:flex;align-items:center;gap:var(--space-4);min-width:0}.dp-back{display:inline-flex;align-items:center;gap:4px;background:transparent;border:1px solid var(--border);color:var(--text-secondary);border-radius:var(--radius-md);padding:6px 10px;font-size:12px;cursor:pointer;flex-shrink:0}.dp-back:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.dp-back:disabled{opacity:.4;cursor:not-allowed}.dp-title-block{min-width:0}.dp-title{margin:0;font-size:16px;font-weight:600;letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dp-badges{display:flex;gap:6px;margin-top:4px;flex-wrap:wrap}.dp-badge{font-size:10px;font-weight:500;padding:2px 8px;border-radius:var(--radius-full);background:var(--accent-muted);color:var(--accent-secondary);border:1px solid transparent}.dp-badge--muted{background:var(--bg-hover);color:var(--text-muted)}.dp-elapsed{font-size:13px;color:var(--text-muted);font-variant-numeric:tabular-nums}.dp-progress-bar{height:2px;background:var(--border-subtle);flex-shrink:0}.dp-progress-fill{height:100%;background:var(--accent-secondary);transition:width .35s ease}.dp-body{flex:1;overflow:auto;padding:var(--space-5)}.dp-body--split{display:grid;grid-template-columns:1fr;gap:var(--space-5)}@media (min-width: 800px){.dp-body--split{grid-template-columns:1fr 1fr;align-items:stretch;overflow:hidden}.dp-body--split .dp-stages-col,.dp-body--split .dp-log-col{overflow:auto;min-height:0}}.dp-panel{max-width:520px;margin:0 auto}.dp-section{margin-bottom:var(--space-6)}.dp-label{display:block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:var(--space-2)}.dp-hint{margin:8px 0 0;font-size:12px;color:var(--text-muted);line-height:1.45}.dp-segment{display:flex;border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}.dp-segment button{flex:1;background:transparent;border:none;color:var(--text-secondary);padding:10px 12px;font-size:13px;cursor:pointer}.dp-segment button.active{background:var(--accent-muted);color:var(--text-primary);font-weight:500}.dp-segment button:not(.active):hover{background:var(--bg-hover)}.dp-target-card{border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4);background:var(--bg-elevated)}.dp-target-host{display:block;font-size:14px;color:var(--accent-secondary);margin-bottom:6px;word-break:break-all}.dp-target-note{font-size:12px;color:var(--text-muted)}.dp-setup-card{display:flex;gap:12px;padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-elevated);margin-bottom:var(--space-6);font-size:13px;color:var(--text-secondary);line-height:1.45}.dp-setup-card strong{display:block;color:var(--text-primary);margin-bottom:4px}.dp-setup-card code{font-family:var(--font-mono);font-size:11px;color:var(--silver-bright)}.dp-notice{display:flex;gap:10px;padding:12px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-elevated);font-size:13px;color:var(--text-secondary);margin-bottom:var(--space-4)}.dp-notice.warn{border-color:#d4a84359;background:#d4a8430f}.dp-notice p{margin:0}.dp-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:var(--space-6);justify-content:flex-end}.dp-stage-list{list-style:none;margin:0;padding:0}.dp-stage-row{display:flex;gap:12px;min-height:48px}.dp-stage-rail{display:flex;flex-direction:column;align-items:center;width:28px;flex-shrink:0}.dp-connector{flex:1;width:2px;min-height:16px;background:var(--border);border-radius:1px;transition:background .35s ease}.dp-connector--on{background:var(--success)}.dp-stage-main{flex:1;min-width:0;padding-bottom:14px}.dp-stage-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.dp-stage-label{font-size:13px;font-weight:500;color:var(--text-primary)}.dp-stage-row--pending .dp-stage-label{color:var(--text-muted)}.dp-stage-meta{font-size:11px;font-family:var(--font-mono);color:var(--text-muted);font-variant-numeric:tabular-nums}.dp-stage-detail{margin:2px 0 0;font-size:12px;color:var(--text-secondary);line-height:1.35}.dp-ring-track{fill:none;stroke:var(--border);stroke-width:2}.dp-ring-track--failed{stroke:#d95a6a73}.dp-ring-progress{fill:none;stroke:var(--accent-secondary);stroke-width:2;stroke-linecap:round;transform-origin:14px 14px;transform:rotate(-90deg)}.dp-ring-progress--done{stroke:var(--success)}.dp-ring-spin{animation:dp-spin .85s linear infinite}.dp-check{stroke:var(--success);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.dp-check--draw{stroke-dasharray:24;stroke-dashoffset:24;animation:dp-check-draw .4s ease forwards}.dp-x{stroke:var(--error);stroke-width:2;stroke-linecap:round}.dp-skip-line{stroke:var(--text-muted);stroke-width:2;stroke-linecap:round}@keyframes dp-spin{to{transform:rotate(360deg)}}@keyframes dp-check-draw{to{stroke-dashoffset:0}}@media (prefers-reduced-motion: reduce){.dp-ring-spin{animation:none}.dp-check--draw{animation:none;stroke-dashoffset:0}.dp-progress-fill,.dp-connector{transition:none}}.dp-log-col{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius-lg);background:#070a0f;min-height:220px}.dp-log-head{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--border-subtle);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.dp-log-actions{display:flex;gap:10px}.dp-link-btn{background:none;border:none;color:var(--accent-secondary);font-size:11px;cursor:pointer;text-transform:none;letter-spacing:0;font-weight:500}.dp-link-btn:hover{text-decoration:underline}.dp-log-term{flex:1;overflow:auto;padding:10px 12px;font-family:var(--font-mono);font-size:11px;line-height:1.5;max-height:360px}@media (min-width: 800px){.dp-log-term{max-height:none}}.dp-log-empty{color:var(--text-disabled);padding:8px 0}.dp-log-line{display:flex;gap:10px}.dp-log-ts{color:var(--text-disabled);flex-shrink:0}.dp-log-text{color:var(--text-secondary);word-break:break-word}.dp-success{text-align:center;padding-top:var(--space-8);position:relative}.dp-success-glow{position:absolute;top:20px;left:50%;width:180px;height:180px;transform:translate(-50%);background:radial-gradient(circle,var(--accent-glow) 0%,transparent 70%);pointer-events:none;opacity:.85;animation:forgeSuccessGlow .6s var(--ease-out, ease) forwards}.dp-success-icon{display:flex;justify-content:center;margin-bottom:var(--space-4);position:relative}.dp-success-icon .dp-ring{width:40px;height:40px}.dp-success h2{margin:0 0 8px;font-size:22px;font-weight:600;letter-spacing:-.03em}.dp-success-sub{margin:0 0 var(--space-6);color:var(--text-muted);font-size:13px}.dp-url-card{border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4);background:var(--bg-elevated);text-align:left}.dp-url{display:block;font-size:13px;color:var(--accent-secondary);margin-bottom:12px;word-break:break-all}.dp-url-actions{display:flex;gap:8px;flex-wrap:wrap}.dp-failed h2{margin:0 0 var(--space-5);font-size:18px;font-weight:600}.dp-stage-row--expanded .dp-stage-main{padding-bottom:18px}.dp-fail-box{margin-top:8px;padding:12px;border-radius:var(--radius-md);border:1px solid rgba(217,90,106,.35);background:#d95a6a0f}.dp-fail-msg{margin:0 0 8px;font-size:13px;color:var(--error);line-height:1.4}.dp-fail-hint{margin:0 0 8px;font-size:12px;color:var(--text-secondary);line-height:1.4}.dp-fail-logs{margin:0;padding:8px;background:var(--bg-primary);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:11px;color:var(--text-muted);max-height:140px;overflow:auto;white-space:pre-wrap}.dp-confirm .dp-actions{margin-top:var(--space-8)}.deploy-history-head{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.deploy-filter{display:flex;flex-wrap:wrap;gap:4px}.deploy-filter button{background:transparent;border:1px solid var(--border);color:var(--text-muted);font-size:10px;padding:3px 8px;border-radius:var(--radius-full);cursor:pointer}.deploy-filter button.active{background:var(--accent-muted);border-color:transparent;color:var(--accent-secondary)}.deploy-filter button:hover:not(.active){background:var(--bg-hover);color:var(--text-secondary)}.deploy-hist-row{width:100%;display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;background:transparent;border:1px solid transparent;border-radius:var(--radius-md);color:var(--text-secondary);font-size:11px;text-align:left;cursor:pointer}.deploy-hist-row:hover{background:var(--bg-hover);border-color:var(--border-subtle);color:var(--text-primary)}.deploy-hist-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:var(--text-disabled)}.deploy-hist-dot.ok{background:var(--success)}.deploy-hist-dot.err{background:var(--error)}.deploy-hist-dot.run{background:var(--warning);animation:dp-pulse 1.2s ease-in-out infinite}.deploy-hist-dot.idle{background:var(--text-disabled)}@keyframes dp-pulse{0%,to{opacity:1}50%{opacity:.35}}.deploy-hist-env{text-transform:uppercase;font-size:9px;font-weight:600;letter-spacing:.04em;color:var(--text-muted);min-width:52px}.deploy-hist-id{color:var(--silver)}.deploy-hist-dur{color:var(--text-muted);min-width:36px}.deploy-hist-when{color:var(--text-muted);margin-left:auto}.dd-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:85;background:var(--bg-primary);display:flex;flex-direction:column;overflow:hidden}.dd-shell{max-width:720px;width:100%;margin:0 auto;height:100%;display:flex;flex-direction:column}.dd-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.dd-back{display:inline-flex;align-items:center;gap:4px;background:transparent;border:1px solid var(--border);color:var(--text-secondary);border-radius:var(--radius-md);padding:6px 10px;font-size:12px;cursor:pointer}.dd-back:hover{background:var(--bg-hover);color:var(--text-primary)}.dd-header-meta{display:flex;align-items:center;gap:10px}.dd-status{font-size:11px;font-weight:600;padding:2px 8px;border-radius:var(--radius-full);background:var(--bg-hover);color:var(--text-secondary)}.dd-status--ready{background:#3dba8c1f;color:var(--success)}.dd-status--failed,.dd-status--cancelled{background:#d95a6a1f;color:var(--error)}.dd-id{font-size:11px;color:var(--text-muted)}.dd-tabs{display:flex;gap:2px;padding:0 12px;border-bottom:1px solid var(--border);flex-shrink:0;overflow-x:auto}.dd-tabs button{background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-muted);font-size:12px;padding:10px 12px;cursor:pointer;white-space:nowrap}.dd-tabs button.active{color:var(--text-primary);border-bottom-color:var(--accent-secondary)}.dd-tabs button:hover:not(.active){color:var(--text-secondary)}.dd-body{flex:1;overflow:auto;padding:16px}.dd-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px;margin:0 0 20px}.dd-grid dt{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin:0 0 4px}.dd-grid dd{margin:0;font-size:13px;color:var(--text-primary)}.dd-env{text-transform:capitalize}.dd-url-row{border:1px solid var(--border);border-radius:var(--radius-lg);padding:12px;background:var(--bg-elevated);margin-bottom:16px}.dd-url-row .mono{display:block;font-size:12px;color:var(--accent-secondary);margin-bottom:10px;word-break:break-all}.dd-url-actions{display:flex;gap:8px;flex-wrap:wrap}.dd-error-box{border:1px solid rgba(217,90,106,.35);background:#d95a6a0f;border-radius:var(--radius-md);padding:12px;margin-bottom:16px;font-size:13px;color:var(--error)}.dd-error-box p{margin:0 0 6px}.dd-hint{color:var(--text-secondary)!important;font-size:12px!important}.dd-actions{display:flex;gap:8px;flex-wrap:wrap}.dd-stage-list{list-style:none;margin:0;padding:0}.dd-stage-row{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--border-subtle)}.dd-stage-row--failed{background:#d95a6a0a;margin:0 -8px;padding-left:8px;padding-right:8px;border-radius:var(--radius-md)}.dd-dot{width:10px;height:10px;border-radius:50%;margin-top:4px;flex-shrink:0;background:var(--border)}.dd-dot--done{background:var(--success)}.dd-dot--failed{background:var(--error)}.dd-dot--running{background:var(--warning);animation:dp-pulse 1.2s ease-in-out infinite}.dd-dot--skipped{background:var(--text-disabled)}.dd-dot--pending{background:var(--border)}.dd-stage-body{flex:1;min-width:0}.dd-stage-top{display:flex;justify-content:space-between;gap:8px}.dd-stage-label{font-size:13px;font-weight:500}.dd-stage-dur{font-size:11px;color:var(--text-muted)}.dd-stage-detail{margin:2px 0 0;font-size:12px;color:var(--text-secondary)}.dd-fail-inline{margin-top:8px;padding:10px;border-radius:var(--radius-sm);border:1px solid rgba(217,90,106,.3);background:#d95a6a0f;font-size:12px;color:var(--error)}.dd-fail-inline p{margin:0 0 6px}.dd-fail-inline pre{margin:6px 0 0;font-family:var(--font-mono);font-size:11px;color:var(--text-muted);white-space:pre-wrap}.dd-logs-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px;align-items:center}.dd-log-search{flex:1;min-width:120px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);padding:6px 10px;font-size:12px}.dd-log-pre{margin:0;padding:12px;background:#070a0f;border:1px solid var(--border);border-radius:var(--radius-md);font-family:var(--font-mono);font-size:11px;color:var(--text-secondary);max-height:50vh;overflow:auto;white-space:pre-wrap}.dd-danger{margin-top:28px;padding-top:16px;border-top:1px solid var(--border)}.dd-confirm-del{font-size:13px;color:var(--text-secondary)}.dd-confirm-del p{margin:0 0 10px}.dd-confirm-del .btn,.dd-confirm-del button{margin-right:8px}@media (prefers-reduced-motion: reduce){.deploy-hist-dot.run,.dd-dot--running{animation:none}}.dp-overlay :focus-visible,.dd-overlay :focus-visible,.deployments-panel :focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.dp-back:focus-visible,.dd-back:focus-visible,.dp-segment button:focus-visible,.dp-link-btn:focus-visible,.deploy-filter button:focus-visible,.deploy-hist-row:focus-visible,.dd-tabs button:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.dp-shell:focus,.dd-shell:focus{outline:none}.dp-stage-row{transition:opacity .25s ease,transform .25s ease}.dp-stage-row--pending{opacity:.55}.dp-stage-row--running{opacity:1;transform:translate(0)}.dp-stage-row--done,.dp-stage-row--skipped{opacity:1}.dp-success-glow{will-change:opacity,transform}.dp-log-term{scrollbar-width:thin;scrollbar-color:var(--border) transparent}.dp-success{animation:dp-fade-in .35s ease both}.dp-failed,.dp-confirm{animation:dp-fade-in .25s ease both}@keyframes dp-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.dp-stage-row{transition:none}.dp-success,.dp-failed,.dp-confirm{animation:none}.dp-success-glow{animation:none;opacity:.4}.dp-ring-spin{animation:none}.dp-check--draw{animation:none;stroke-dashoffset:0}.dp-progress-fill,.dp-connector{transition:none}.deploy-hist-dot.run,.dd-dot--running{animation:none}}.import-form{display:flex;flex-direction:column;gap:14px}.import-lead{margin:0;font-size:13px;color:var(--text-secondary);line-height:1.45}.import-drop{border:1px dashed var(--border-strong);border-radius:var(--radius-lg);background:var(--bg-elevated);padding:28px 16px;text-align:center;color:var(--text-muted);transition:border-color .15s ease,background .15s ease}.import-drop--over{border-color:var(--accent-secondary);background:var(--accent-soft);color:var(--text-primary)}.import-drop-title{margin:10px 0 4px;font-size:14px;font-weight:600;color:var(--text-primary)}.import-drop-sub{margin:0;font-size:12px;color:var(--text-muted);line-height:1.4}.import-actions-grid{display:grid;grid-template-columns:1fr;gap:8px}@media (min-width: 480px){.import-actions-grid{grid-template-columns:1fr 1fr 1fr}}.import-status{margin:0;font-size:12px;color:var(--text-muted)}.import-error{margin:0;font-size:12px;color:var(--error)}.import-field{margin-bottom:4px}.import-detect{border:1px solid var(--border);border-radius:var(--radius-lg);padding:12px 14px;background:var(--bg-elevated)}.import-detect-summary{margin:0 0 8px;font-size:13px;font-weight:500;color:var(--text-primary)}.import-detect-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.import-tag{font-size:10px;font-weight:600;padding:2px 8px;border-radius:var(--radius-full);background:var(--accent-muted);color:var(--accent-secondary)}.import-detect-meta{margin:0;font-size:12px;color:var(--text-muted)}.import-file-list{font-size:12px;color:var(--text-secondary)}.import-file-list summary{cursor:pointer;color:var(--text-muted);margin-bottom:6px}.import-file-list ul{list-style:none;margin:0;padding:8px;max-height:160px;overflow:auto;background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm)}.import-file-list li{padding:2px 0;font-size:11px;color:var(--silver)}.dashboard-header-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.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}
