*{margin:0;padding:0;box-sizing:border-box}:root{--color-bg-primary:#0d1117;--color-bg-secondary:#161b22;--color-bg-tertiary:#21262d;--color-bg-overlay:#1c2128;--color-border-primary:#30363d;--color-border-secondary:#21262d;--color-text-primary:#e6edf3;--color-text-secondary:#8b949e;--color-text-tertiary:#6e7681;--color-text-link:#58a6ff;--color-accent-fg:#58a6ff;--color-accent-emphasis:#1f6feb;--color-success-fg:#3fb950;--color-attention-fg:#d29922;--color-danger-fg:#f85149;--color-done-fg:#a371f7;--color-btn-bg:#21262d;--color-btn-border:#363b42;--color-btn-hover-bg:#30363d;--color-btn-primary-bg:#238636;--color-btn-primary-hover-bg:#2ea043;--color-header-bg:#010409;--sidebar-width:300px;--header-height:48px;--subheader-height:48px;--font-mono:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace;--font-body:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif}body,html{width:100%;height:100%;background-color:var(--color-bg-primary);color:var(--color-text-primary);font-family:var(--font-body);font-size:14px;line-height:1.5;overflow:hidden;-webkit-font-smoothing:antialiased}.app-header{height:var(--header-height);background:var(--color-header-bg);border-bottom:1px solid var(--color-border-primary);padding:0 16px;gap:16px;position:fixed;top:0;left:0;right:0;z-index:100}.app-header,.header-logo{display:flex;align-items:center}.header-logo{gap:8px;color:var(--color-text-primary);font-weight:600;font-size:15px;text-decoration:none;flex-shrink:0}.header-logo svg{fill:var(--color-text-primary)}.header-nav{gap:4px;flex:1 1}.header-nav,.header-nav-item{display:flex;align-items:center}.header-nav-item{padding:6px 12px;border-radius:6px;color:var(--color-text-primary);font-size:14px;font-weight:500;cursor:pointer;border:none;background:none;font-family:var(--font-body);gap:6px;transition:background .1s}.header-nav-item .count-badge,.header-nav-item.active,.header-nav-item:hover{background:var(--color-bg-tertiary)}.header-nav-item .count-badge{color:var(--color-text-secondary);padding:0 6px;border-radius:10px;font-size:12px;min-width:20px;text-align:center;line-height:18px}.header-actions{flex-shrink:0}.header-actions,.repo-header{display:flex;align-items:center;gap:8px}.repo-header{height:var(--subheader-height);background:var(--color-bg-primary);border-bottom:1px solid var(--color-border-primary);padding:0 24px;position:fixed;top:var(--header-height);left:0;right:0;z-index:99}.repo-breadcrumb{display:flex;align-items:center;gap:4px;font-size:16px}.repo-owner{color:var(--color-text-link);font-weight:400}.repo-separator{color:var(--color-text-secondary)}.repo-name{color:var(--color-text-link);font-weight:600}.repo-visibility{border:1px solid var(--color-border-primary);border-radius:12px;padding:0 8px;font-size:12px;color:var(--color-text-secondary);line-height:22px;margin-left:4px}.repo-meta{margin-left:auto;gap:12px}.repo-meta,.repo-stat{display:flex;align-items:center}.repo-stat{gap:4px;color:var(--color-text-secondary);font-size:12px}.repo-stat svg{fill:var(--color-text-secondary)}.app-layout{display:flex;margin-top:calc(var(--header-height) + var(--subheader-height));height:calc(100vh - var(--header-height) - var(--subheader-height))}.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);background:var(--color-bg-primary);border-right:1px solid var(--color-border-primary);display:flex;flex-direction:column;overflow:hidden}.sidebar-search{padding:12px;border-bottom:1px solid var(--color-border-primary)}.sidebar-search input{width:100%;background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:6px;padding:5px 12px;color:var(--color-text-primary);font-size:13px;font-family:var(--font-body);outline:none}.sidebar-search input:focus{border-color:var(--color-accent-fg);box-shadow:0 0 0 3px rgba(31,111,235,.3)}.sidebar-search input::placeholder{color:var(--color-text-tertiary)}.file-tree-container{flex:1 1;overflow-y:auto;padding:4px 0}.tree-item{display:flex;align-items:center;padding:6px 16px;cursor:pointer;font-size:14px;color:var(--color-text-primary);gap:6px;border-left:2px solid transparent;transition:background .1s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.tree-item.active,.tree-item:hover{background:var(--color-bg-secondary)}.tree-item.active{border-left-color:var(--color-accent-fg)}.tree-item.directory{font-weight:500}.tree-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center}.tree-icon,.tree-icon svg{width:16px;height:16px}.tree-icon.folder svg{fill:#54aeff}.tree-icon.file svg{fill:var(--color-text-secondary)}.tree-item-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-children{margin-left:0}.tree-children .tree-item{padding-left:32px}.tree-children .tree-children .tree-item{padding-left:48px}.tree-children .tree-children .tree-children .tree-item{padding-left:64px}.main-content{flex:1 1;overflow-y:auto;display:flex;flex-direction:column;background:var(--color-bg-primary)}.project-banner{margin:16px 16px 0;padding:24px;background:linear-gradient(135deg,rgba(56,139,253,.08),rgba(163,113,247,.08));border:1px solid rgba(56,139,253,.2);border-radius:8px;position:relative;overflow:hidden;flex-shrink:0}.project-banner-ascii{position:absolute;top:50%;right:50%;transform:translate(50%,-50%);font-family:Courier New,Courier,monospace;font-size:14px;line-height:1.2;white-space:pre;color:rgba(56,139,253,.5);pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;margin:-4px 0 0;z-index:0}.project-banner-heading{font-size:20px;font-weight:700;color:var(--color-text-primary);margin-bottom:8px;letter-spacing:-.01em;position:relative;z-index:1}.project-banner-desc{font-size:14px;line-height:1.6;color:var(--color-text-secondary);max-width:620px;position:relative;z-index:1}.tab-bar{display:flex;border-bottom:1px solid var(--color-border-primary);background:var(--color-bg-primary);padding:0 24px;position:-webkit-sticky;position:sticky;top:0;z-index:10;flex-shrink:0}.tab-item{padding:12px 16px;font-size:14px;color:var(--color-text-secondary);cursor:pointer;background:none;border:none;border-bottom:2px solid transparent;font-family:var(--font-body);display:flex;align-items:center;gap:6px;transition:color .1s;font-weight:500}.tab-item.active,.tab-item:hover{color:var(--color-text-primary)}.tab-item.active{border-bottom-color:#f78166}.tab-item .tab-badge{background:var(--color-bg-tertiary);padding:0 6px;border-radius:10px;font-size:12px;line-height:18px;min-width:20px;text-align:center}.file-browser-header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;gap:12px}.branch-selector{display:flex;align-items:center;gap:6px;background:var(--color-btn-bg);border:1px solid var(--color-btn-border);border-radius:6px;padding:5px 12px;color:var(--color-text-primary);font-size:14px;cursor:default;font-family:var(--font-body);font-weight:500}.branch-selector svg{fill:var(--color-text-secondary);width:16px;height:16px}.file-browser-actions{display:flex;align-items:center;gap:8px}.btn{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;font-size:14px;font-weight:500;border-radius:6px;border:1px solid var(--color-btn-border);background:var(--color-btn-bg);color:var(--color-text-primary);cursor:pointer;font-family:var(--font-body);transition:background .1s;white-space:nowrap}.btn:hover{background:var(--color-btn-hover-bg)}.btn-primary{background:var(--color-btn-primary-bg);border-color:rgba(240,246,252,.1);color:#ffffff}.btn-primary:hover{background:var(--color-btn-primary-hover-bg)}.btn svg{width:16px;height:16px;fill:currentColor}.btn-sm{padding:3px 10px;font-size:12px}.file-list{border:1px solid var(--color-border-primary);border-radius:6px;margin:0 24px 24px;overflow:hidden}.file-list-header{display:flex;align-items:center;padding:8px 16px;background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border-primary);gap:8px}.file-list-header .commit-avatar{width:20px;height:20px;border-radius:50%;background:var(--color-bg-tertiary);display:flex;align-items:center;justify-content:center;font-size:10px;color:var(--color-text-secondary);flex-shrink:0}.file-list-header .commit-info{flex:1 1;display:flex;align-items:center;gap:8px;min-width:0}.file-list-header .commit-author{color:var(--color-text-primary);font-weight:600;font-size:13px;flex-shrink:0}.file-list-header .commit-message{color:var(--color-text-secondary);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-list-header .commit-sha{color:var(--color-text-link);font-size:12px;font-family:var(--font-mono);flex-shrink:0}.file-list-header .commit-time{color:var(--color-text-tertiary);font-size:12px;flex-shrink:0}.file-row{display:flex;align-items:center;padding:8px 16px;border-bottom:1px solid var(--color-border-primary);cursor:pointer;transition:background .1s;gap:8px}.file-row:last-child{border-bottom:none}.file-row:hover{background:var(--color-bg-secondary)}.file-row-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center}.file-row-icon,.file-row-icon svg{width:16px;height:16px}.file-row-icon.folder svg{fill:#54aeff}.file-row-icon.file svg{fill:var(--color-text-secondary)}.file-row-name{color:var(--color-text-link);font-size:14px;min-width:180px;flex-shrink:0}.file-row-message{flex:1 1;color:var(--color-text-secondary);font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-row-time{color:var(--color-text-tertiary);font-size:13px;flex-shrink:0;text-align:right;min-width:80px}.file-viewer{flex:1 1;display:flex;flex-direction:column}.file-viewer-header{display:flex;align-items:center;padding:8px 24px;gap:8px;border-bottom:1px solid var(--color-border-primary);background:var(--color-bg-primary)}.file-viewer-breadcrumb{display:flex;align-items:center;gap:4px;font-size:14px}.file-viewer-breadcrumb span{color:var(--color-text-link);cursor:pointer}.file-viewer-breadcrumb span:last-child{color:var(--color-text-primary);font-weight:600;cursor:default}.file-viewer-breadcrumb .bc-sep{color:var(--color-text-tertiary);cursor:default}.file-viewer-actions{margin-left:auto;display:flex;align-items:center;gap:8px}.file-viewer-content{flex:1 1;overflow:auto;margin:0 24px 24px;border:1px solid var(--color-border-primary);border-radius:6px}.file-content-header{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border-primary);font-size:12px;color:var(--color-text-secondary)}.file-content-body{overflow:auto}.file-content-body table{width:100%;border-collapse:collapse;font-family:var(--font-mono);font-size:13px;line-height:20px}.file-content-body tr:hover{background:rgba(136,149,162,.04)}.line-number{width:1%;min-width:50px;text-align:right;color:var(--color-text-tertiary);-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.line-content,.line-number{padding:0 16px;vertical-align:top}.line-content{white-space:pre;color:var(--color-text-primary)}.agents-view{padding:0;display:flex;flex-direction:column;height:100%;overflow:hidden}.agents-tab-bar{display:flex;gap:0;border-bottom:1px solid var(--color-border-primary);background:var(--color-bg-primary);position:-webkit-sticky;position:sticky;top:0;z-index:20;flex-shrink:0;padding:0 24px}.agent-tab{padding:10px 20px;font-size:14px;font-weight:500;color:var(--color-text-secondary);cursor:pointer;background:none;font-family:var(--font-body);border:none;border-bottom:2px solid transparent;transition:color .1s;display:flex;align-items:center;gap:6px}.agent-tab.active,.agent-tab:hover{color:var(--color-text-primary)}.agent-tab.active{border-bottom-color:var(--color-accent-fg)}.agent-tab .agent-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.agent-tab .agent-dot.opus{background:#f97583}.agent-tab .agent-dot.sonnet{background:#79c0ff}.agent-tab .agent-dot.haiku{background:#56d364}.agent-tab .agent-dot.grok{background:#d2a8ff}.agent-workspace{border:1px solid var(--color-border-primary);border-radius:6px;overflow:hidden;margin:16px 24px 24px;display:flex;flex-direction:column;flex:1 1;min-height:0}.agent-workspace-header{padding:12px 16px;background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border-primary);gap:12px}.agent-avatar,.agent-workspace-header{display:flex;align-items:center;flex-shrink:0}.agent-avatar{width:32px;height:32px;border-radius:50%;justify-content:center;font-size:14px;font-weight:700;color:#ffffff}.agent-avatar.opus{background:#da3633}.agent-avatar.sonnet{background:#1f6feb}.agent-avatar.haiku{background:#238636}.agent-avatar.grok{background:#8957e5}.agent-info{flex:1 1}.agent-info-name{font-weight:600;font-size:14px;color:var(--color-text-primary)}.agent-info-role{font-size:12px;color:var(--color-text-secondary)}.agent-info-files{font-size:12px;color:var(--color-text-tertiary)}.agent-messages{flex:1 1;overflow-y:auto;min-height:0}.agent-message{padding:16px;border-bottom:1px solid var(--color-border-primary)}.agent-message:last-child{border-bottom:none}.agent-message-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.agent-message-turn{font-family:var(--font-mono)}.agent-message-time,.agent-message-turn{font-size:12px;color:var(--color-text-tertiary)}.agent-message-body{font-size:14px;line-height:1.6;color:var(--color-text-primary);white-space:pre-wrap;word-wrap:break-word}.agent-message-body .code-block{margin:12px 0;border:1px solid var(--color-border-primary);border-radius:6px;overflow:hidden}.agent-message-body .code-header{padding:8px 16px;background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border-primary);font-size:12px;font-family:var(--font-mono);color:var(--color-text-secondary);display:flex;align-items:center;gap:6px}.agent-message-body .code-header .code-lang{color:var(--color-text-tertiary)}.agent-message-body .code-header .code-path{color:var(--color-text-link)}.agent-message-body .code-block pre{margin:0;padding:16px;overflow-x:auto;background:var(--color-bg-primary);font-family:var(--font-mono);font-size:13px;line-height:1.45}.agent-message-body .code-block code,.agent-message-body .inline-code{font-family:var(--font-mono);color:var(--color-text-primary)}.agent-message-body .inline-code{border:1px solid var(--color-border-primary);border-radius:4px;padding:1px 5px}.agent-message-body .inline-code,.tab-badge{background:var(--color-bg-tertiary);font-size:12px}.tab-badge{padding:0 6px;border-radius:10px;line-height:18px;min-width:20px;text-align:center}.agent-no-messages{padding:48px 24px;text-align:center;color:var(--color-text-tertiary);font-size:14px}.commits-view{padding:24px}.commits-list{border:1px solid var(--color-border-primary);border-radius:6px;overflow:hidden}.commits-date-group{background:var(--color-bg-secondary);padding:8px 16px;font-size:13px;font-weight:600;color:var(--color-text-primary);border-bottom:1px solid var(--color-border-primary);display:flex;align-items:center;gap:6px}.commits-date-group svg{fill:var(--color-text-secondary);width:16px;height:16px}.commit-row{display:flex;align-items:center;padding:12px 16px;border-bottom:1px solid var(--color-border-primary);gap:12px;transition:background .1s}.commit-row:last-child{border-bottom:none}.commit-row:hover{background:var(--color-bg-secondary)}.commit-row-avatar{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#ffffff;flex-shrink:0}.commit-row-avatar.opus{background:#da3633}.commit-row-avatar.sonnet{background:#1f6feb}.commit-row-avatar.haiku{background:#238636}.commit-row-avatar.grok{background:#8957e5}.commit-row-avatar.system{background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.commit-row-info{flex:1 1;min-width:0}.commit-row-message{font-size:14px;color:var(--color-text-primary);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.commit-row-desc{font-size:12px;color:var(--color-text-secondary);margin-top:2px}.commit-row-meta{display:flex;align-items:center;gap:12px;flex-shrink:0}.commit-row-sha{font-family:var(--font-mono);font-size:12px;color:var(--color-text-link);background:var(--color-bg-secondary);padding:2px 8px;border-radius:6px;border:1px solid var(--color-border-primary);cursor:default}.commit-row-time{font-size:12px;color:var(--color-text-tertiary);min-width:80px;text-align:right}.versions-view{padding:24px}.version-card{border:1px solid var(--color-border-primary);border-radius:6px;margin-bottom:16px;overflow:hidden}.version-card-header{display:flex;align-items:center;justify-content:space-between;padding:16px;background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border-primary)}.version-tag{display:flex;align-items:center;gap:8px}.version-tag-name{font-size:18px;font-weight:600;color:var(--color-text-link)}.version-tag-badge{font-size:12px;font-weight:500;padding:2px 8px;border-radius:12px}.version-tag-badge.stable{background:rgba(63,185,80,.15);color:var(--color-success-fg);border:1px solid rgba(63,185,80,.4)}.version-tag-badge.building{background:rgba(210,153,34,.15);color:var(--color-attention-fg);border:1px solid rgba(210,153,34,.4)}.version-card-body{padding:16px}.version-card-meta{display:flex;gap:24px;margin-bottom:12px;font-size:13px;color:var(--color-text-secondary)}.version-card-meta span{display:flex;align-items:center;gap:4px}.version-notes{font-size:14px;color:var(--color-text-primary);line-height:1.6;white-space:pre-wrap}.version-notes-empty{color:var(--color-text-tertiary);font-style:italic}.version-download{margin-top:16px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:64px 24px;text-align:center}.empty-state svg{width:48px;height:48px;fill:var(--color-text-tertiary);margin-bottom:16px}.empty-state-title{font-size:20px;font-weight:600;color:var(--color-text-primary);margin-bottom:4px}.empty-state-desc{font-size:14px;color:var(--color-text-secondary)}.build-badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:2px 10px;border-radius:12px;font-weight:500}.build-badge.stable{background:rgba(63,185,80,.15);color:var(--color-success-fg)}.build-badge.building{background:rgba(210,153,34,.15);color:var(--color-attention-fg)}.build-badge-dot{width:6px;height:6px;border-radius:50%}.build-badge.stable .build-badge-dot{background:var(--color-success-fg)}.build-badge.building .build-badge-dot{background:var(--color-attention-fg)}.live-indicator{width:8px;height:8px;border-radius:50%;background:var(--color-danger-fg);flex-shrink:0;animation:live-pulse 2s ease-in-out infinite;box-shadow:0 0 6px rgba(248,81,73,.5)}@keyframes live-pulse{0%,to{opacity:1;box-shadow:0 0 6px rgba(248,81,73,.5)}50%{opacity:.6;box-shadow:0 0 12px rgba(248,81,73,.8)}}.live-avatar{background:var(--color-bg-tertiary)!important;display:flex;align-items:center;justify-content:center}.agent-message-author{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:13px;color:var(--color-text-primary);margin-right:4px}.agent-message-author.opus{color:#f97583}.agent-message-author.sonnet{color:#79c0ff}.agent-message-author.haiku{color:#56d364}.agent-message-author.grok{color:#d2a8ff}.download-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:9999;animation:modal-fade-in .2s ease-out}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-slide-in{0%{opacity:0;transform:scale(.95) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.download-modal{background:var(--color-bg-primary);border:1px solid var(--color-border-primary);border-radius:12px;padding:32px;max-width:480px;width:90%;position:relative;animation:modal-slide-in .25s ease-out;box-shadow:0 16px 48px rgba(0,0,0,.4)}.download-modal-close{position:absolute;top:16px;right:16px;background:none;border:none;color:var(--color-text-secondary);cursor:pointer;padding:4px;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:color .15s,background .15s}.download-modal-close:hover{color:var(--color-text-primary);background:var(--color-bg-tertiary)}.download-modal-title{font-size:20px;font-weight:600;color:var(--color-text-primary);text-align:center;margin-bottom:16px}.download-modal-text{font-size:14px;line-height:1.6;color:var(--color-text-secondary);text-align:center;margin-bottom:12px}.download-modal-code,.download-modal-text strong{color:var(--color-text-primary)}.download-modal-code{background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:6px;padding:12px 16px;font-family:var(--font-mono);font-size:13px;overflow-x:auto;white-space:pre;margin:12px 0 0;word-break:break-all;white-space:pre-wrap}.download-modal-actions{margin-top:24px;display:flex;align-items:center;justify-content:center;gap:12px}.download-modal-btn{flex:1 1;justify-content:center;font-weight:600;padding:8px 12px!important;font-size:14px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-bg-tertiary);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-border-primary)}@media (max-width:1024px){.file-row-message,.repo-meta,.sidebar{display:none}}@media (max-width:768px){.header-nav{display:none}.file-browser-header{flex-wrap:wrap}.file-list{margin:0 12px 12px}.agents-view,.commits-view,.versions-view{padding:12px}.file-viewer-content{margin:0 12px 12px}}