*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0d1117;--surface: #161b22;--border: #30363d;--text: #e6edf3;--muted: #8b949e;--accent: #238636;--accent-hover: #2ea043;--open: #3fb950;--closed: #f85149;--merged: #a371f7;--draft: #8b949e;--radius: 8px;--header-height: 49px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5}.loading-screen{display:flex;align-items:center;justify-content:center;height:100vh}.spinner{width:28px;height:28px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:24px}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:40px 48px;max-width:400px;width:100%;text-align:center;display:flex;flex-direction:column;align-items:center;gap:16px}.login-logo{color:var(--text)}.login-card h1{font-size:24px;font-weight:600}.login-card p{color:var(--muted);font-size:14px}.btn-github{display:inline-flex;align-items:center;gap:8px;background:var(--accent);color:#fff;padding:10px 20px;border-radius:var(--radius);text-decoration:none;font-weight:600;font-size:14px;transition:background .15s}.btn-github:hover{background:var(--accent-hover)}.app{display:flex;flex-direction:column;min-height:100vh}.app-header{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20}.logo{font-size:16px;font-weight:700;color:var(--text)}.header-right{display:flex;align-items:center;gap:10px}.avatar{width:32px;height:32px;border-radius:50%;border:2px solid var(--border)}.avatar-sm{width:20px;height:20px;border-radius:50%}.username{color:var(--muted);font-size:13px}.btn-logout{background:transparent;border:1px solid var(--border);color:var(--muted);padding:5px 12px;border-radius:var(--radius);cursor:pointer;font-size:13px;transition:color .15s,border-color .15s}.btn-logout:hover{color:var(--text);border-color:var(--muted)}.app-main{padding:24px;max-width:1280px;margin:0 auto;width:100%;display:flex;flex-direction:column;gap:20px}.repo-selector{display:flex;align-items:center;gap:12px}.repo-label{font-weight:600;color:var(--muted);white-space:nowrap}.repo-combobox{flex:1;max-width:480px;position:relative}.repo-input{width:100%;background:var(--surface);border:1px solid var(--border);color:var(--text);padding:8px 12px;border-radius:var(--radius);font-size:14px}.repo-input:focus{outline:none;border-color:var(--accent)}.repo-input::placeholder{color:var(--muted)}.repo-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);list-style:none;max-height:280px;overflow-y:auto;z-index:100;box-shadow:0 8px 24px #0006}.repo-dropdown-empty{padding:10px 14px;font-size:13px}.repo-dropdown-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 14px;cursor:pointer;font-size:13px;transition:background .1s}.repo-dropdown-item:hover{background:#ffffff0d}.repo-dropdown-item-active{background:#23863626}.repo-dropdown-name{color:var(--text);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.repo-private-badge{font-size:11px;color:var(--muted);border:1px solid var(--border);padding:1px 6px;border-radius:10px;white-space:nowrap}.repo-or{color:var(--muted);font-size:16px;white-space:nowrap;padding:0 4px;-webkit-user-select:none;user-select:none}.pr-url-wrap{flex:1;max-width:480px;position:relative}.pr-url-input{width:100%;background:var(--surface);border:1px solid var(--border);color:var(--text);padding:8px 12px;border-radius:var(--radius);font-size:14px}.pr-url-input:focus{outline:none;border-color:var(--accent)}.pr-url-input::placeholder{color:var(--muted)}.pr-url-input-error{border-color:var(--closed)!important}.pr-url-error{position:absolute;top:calc(100% + 4px);left:0;font-size:12px;color:var(--closed);white-space:nowrap}.pr-list-container{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.pr-tabs{display:flex;border-bottom:1px solid var(--border);padding:0 16px;gap:4px}.tab{background:transparent;border:none;color:var(--muted);padding:12px 16px;cursor:pointer;font-size:14px;font-weight:500;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s}.tab:hover{color:var(--text)}.tab-active{color:var(--text);border-bottom-color:var(--accent)}.pr-status{display:flex;align-items:center;justify-content:center;padding:40px}.pr-items{list-style:none}.pr-card{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:8px;transition:background .1s}.pr-card:last-child{border-bottom:none}.pr-card:hover{background:#ffffff05}.pr-card-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.pr-title{color:var(--text);font-weight:600;flex:1;min-width:0}.pr-card-clickable{cursor:pointer}.pr-card-clickable:hover .pr-title{color:#58a6ff}.pr-card-right{display:flex;align-items:center;gap:8px;white-space:nowrap}.pr-github-link{color:var(--muted);text-decoration:none;font-size:13px;padding:2px 4px;border-radius:4px;transition:color .15s,background .15s}.pr-github-link:hover{color:var(--text);background:var(--border)}.pr-number{color:var(--muted);font-size:13px;white-space:nowrap}.pr-card-meta{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px;flex-wrap:wrap}.pr-author{font-weight:500}.pr-branch{display:flex;align-items:center;gap:4px}.pr-branch code{background:#6e76811a;padding:1px 6px;border-radius:4px;font-size:12px}.pr-date{margin-left:auto;white-space:nowrap}.pr-comments{display:flex;align-items:center;gap:4px;color:var(--muted)}.pr-labels{display:flex;flex-wrap:wrap;gap:6px}.pr-label{font-size:12px;padding:2px 8px;border-radius:12px;font-weight:500}.pr-load-more{display:flex;justify-content:center;padding:16px 0 8px}.btn-load-more{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--border);color:var(--text);padding:8px 20px;border-radius:var(--radius);font-size:14px;cursor:pointer;transition:border-color .15s}.btn-load-more:hover:not(:disabled){border-color:var(--muted)}.btn-load-more:disabled{opacity:.6;cursor:default}.spinner-sm{width:14px;height:14px;border-width:2px}.badge{font-size:12px;padding:2px 8px;border-radius:12px;font-weight:600;white-space:nowrap}.badge-open{background:#3fb95026;color:var(--open)}.badge-closed{background:#f8514926;color:var(--closed)}.badge-merged{background:#a371f726;color:var(--merged)}.badge-draft{background:#8b949e26;color:var(--draft)}.muted{color:var(--muted)}.error-text{color:var(--closed)}.error-banner{background:#f851491a;border:1px solid rgba(248,81,73,.3);color:var(--closed);padding:10px 16px;border-radius:var(--radius);font-size:13px}.pr-detail{display:flex;flex-direction:column;gap:20px;width:100%}.pr-detail-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:80px 0}.spinner-label{color:var(--muted);font-size:14px}.pr-detail-error{display:flex;flex-direction:column;gap:16px}.pr-detail-header{display:flex;flex-direction:column;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 20px;flex:1;min-width:0}.btn-back{background:transparent;border:none;color:var(--muted);cursor:pointer;font-size:13px;padding:0;text-align:left;width:fit-content;transition:color .15s}.btn-back:hover{color:var(--text)}.pr-detail-title-wrap{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.pr-detail-number{color:var(--muted);font-size:14px;white-space:nowrap}.pr-detail-title{font-size:18px;font-weight:700;flex:1}.view-switcher{display:flex;gap:4px;border-top:1px solid var(--border);padding-top:12px}.pr-summary{font-size:14px;line-height:1.7;color:var(--muted);padding-top:4px;border-top:1px solid var(--border)}.pr-summary p{margin:0 0 8px}.pr-summary p:last-child{margin-bottom:0}.pr-summary ul,.pr-summary ol{padding-left:20px;margin:0 0 8px}.pr-summary li{margin:2px 0}.pr-summary strong{color:#fff;font-weight:600}.pr-summary code{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:12px;background:#6e768126;padding:1px 5px;border-radius:4px;color:var(--text)}.view-tab{background:transparent;border:none;color:var(--muted);padding:6px 14px;cursor:pointer;font-size:13px;font-weight:500;border-radius:var(--radius);transition:color .15s,background .15s}.view-tab:hover{color:var(--text);background:#ffffff0d}.view-tab-active{color:var(--text);background:#ffffff14}.pr-github-open{margin-left:auto;text-decoration:none}.story-view{display:flex;flex-direction:column;gap:16px}.story-progress{display:flex;align-items:center;gap:12px;width:calc(100% - 284px)}.story-progress-text{color:var(--muted);font-size:12px;white-space:nowrap}.story-progress-bar{flex:1;height:4px;background:var(--border);border-radius:2px;overflow:hidden}.story-progress-fill{height:100%;background:var(--accent);border-radius:2px;transition:width .3s ease}.story-sections{display:flex;flex-direction:column;gap:16px}.section-wrapper{display:flex;align-items:flex-start;gap:12px}.story-section{flex:1;min-width:0;position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:clip}.section-sticky-header{position:sticky;top:var(--header-height);z-index:10;background:var(--surface);border-radius:var(--radius) var(--radius) 0 0;border-bottom:1px solid var(--border)}.story-section-done{opacity:.6}.story-section-done:hover{opacity:1}.story-section-header{display:flex;align-items:center;gap:10px;padding:14px 20px}.story-section-index{color:var(--muted);font-size:12px;white-space:nowrap}.story-section-title{font-size:15px;font-weight:600;flex:1}.undo-btn{background:transparent;border:none;cursor:pointer;font-size:12px;color:var(--muted);white-space:nowrap;padding:4px 8px;border-radius:var(--radius);transition:background .15s,color .15s}.undo-btn:hover{background:var(--border);color:var(--text)}.undo-hint{opacity:.5}.story-explanation{padding:16px 20px;color:var(--text);line-height:1.7;font-size:14px}.story-explanation p{margin:0 0 8px}.story-explanation p:last-child{margin-bottom:0}.story-explanation ul,.story-explanation ol{padding-left:20px;margin:0 0 8px}.story-explanation li{margin:2px 0}.story-explanation strong{color:#fff;font-weight:600}.story-explanation code{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:12px;background:#6e768126;padding:1px 5px;border-radius:4px}.diff-column{overflow:hidden}.comments-column{width:272px;min-width:272px;flex-shrink:0}.comment-thread{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);font-size:12px;cursor:pointer;transition:border-color .15s,box-shadow .15s}.comment-thread:hover,.comment-thread-expanded{border-color:var(--muted);box-shadow:0 4px 12px #0000004d;z-index:2}.comment-header{display:flex;align-items:center;gap:6px;padding:6px 10px;border-bottom:1px solid var(--border)}.comment-thread-expanded .comment-header{border-bottom-color:var(--border)}.comment-level{font-size:10px;font-weight:700;padding:1px 6px;border-radius:4px;letter-spacing:.5px}.comment-level-info{background:#6e768133;color:var(--muted)}.comment-level-low{background:#3fb95026;color:var(--open)}.comment-level-med{background:#d2992226;color:#e3b341}.comment-level-high{background:#f8514926;color:var(--closed)}.comment-level-chat{background:#58a6ff26;color:#58a6ff}.comment-chat-empty{font-size:11px;color:var(--muted);padding:2px 0 6px}.chat-trash-btn{display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--muted);cursor:pointer;padding:2px 4px;border-radius:4px;margin-left:auto;transition:color .15s,background .15s}.chat-trash-btn:hover{color:var(--closed);background:#f851491a}.comment-line-ref{color:var(--muted);font-family:SFMono-Regular,Consolas,monospace;font-size:11px;flex:1}.comment-collapse{background:transparent;border:none;color:var(--muted);cursor:pointer;font-size:14px;line-height:1;padding:0 2px}.comment-collapse:hover{color:var(--text)}.comment-body{padding:8px 10px;color:var(--text);line-height:1.5}.comment-body p{margin:0}.comment-body code{font-family:SFMono-Regular,Consolas,monospace;font-size:11px;background:#6e768126;padding:1px 4px;border-radius:3px}.comment-replies{border-top:1px solid var(--border);display:flex;flex-direction:column;gap:6px;padding:8px 10px}.comment-reply{display:flex;flex-direction:column;gap:2px}.comment-reply-label{font-size:10px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.comment-reply-user .comment-reply-label{color:#58a6ff}.comment-reply-assistant .comment-reply-label{color:var(--accent)}.comment-reply-text{font-size:12px;color:var(--text);line-height:1.5;white-space:pre-wrap}.comment-input-row{display:flex;gap:4px;padding-top:6px}.comment-input{flex:1;background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:4px;padding:4px 8px;font-size:12px;font-family:inherit}.comment-input:focus{outline:none;border-color:var(--accent)}.comment-send{background:var(--accent);border:none;color:#fff;border-radius:4px;padding:4px 8px;cursor:pointer;font-size:13px}.comment-send:hover:not(:disabled){background:var(--accent-hover)}.comment-send:disabled{opacity:.4;cursor:not-allowed}.diff-block{border-top:1px solid var(--border);font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:12px}.diff-file-header{display:flex;align-items:center;gap:10px;padding:8px 16px;background:#ffffff05;border-bottom:1px solid var(--border)}.diff-filename{font-weight:600;color:var(--text);flex:1;word-break:break-all}.diff-status-badge{font-size:11px;font-family:inherit}.diff-stats{display:flex;gap:6px;font-size:12px}.diff-add{color:var(--open)}.diff-del{color:var(--closed)}.diff-lines{overflow-x:auto;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:12px;line-height:20px}.diff-line{display:flex;align-items:baseline;min-height:20px;white-space:pre}.diff-line-add{background:#3fb95026}.diff-line-del{background:#f851491f}.diff-line-highlighted{background:#ffc8002e!important;outline:1px solid rgba(255,200,0,.35)}.diff-line-clickable{cursor:pointer}.diff-line-clickable:hover{background:#58a6ff14!important}.diff-line-chat-icon{margin-left:auto;padding:0 8px;color:var(--muted);display:flex;align-items:center;flex-shrink:0;opacity:.7}.diff-line-hunk{display:flex;align-items:baseline;background:#4f8cc91f;color:#79b8ff;white-space:pre;min-height:20px;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:12px;line-height:20px}.diff-gutter{width:28px;min-width:28px;padding:0 8px;color:var(--muted);-webkit-user-select:none;user-select:none;text-align:center}.diff-line-add .diff-gutter{color:#3fb950}.diff-line-del .diff-gutter{color:#f85149}.diff-line-hunk .diff-gutter{color:#79b8ff}.diff-code{flex:1;padding-right:16px}.diff-empty{padding:12px 16px;color:var(--muted);font-family:inherit;font-size:12px}.action-btn{padding:5px 14px;border-radius:var(--radius);font-size:13px;font-weight:500;cursor:pointer;border:1px solid var(--border);background:transparent;color:var(--muted);transition:all .15s}.action-btn:hover{color:var(--text);border-color:var(--muted)}.action-resolve{color:var(--open);border-color:#3fb9504d}.action-resolve:hover{background:#3fb9501a;border-color:var(--open);color:var(--open)}.action-skip:hover{background:#ffffff0d}.action-chat-active{color:var(--text);background:#ffffff0f}.chat-icon-btn{display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;border-radius:var(--radius);color:var(--muted);cursor:pointer;padding:4px 6px;transition:color .15s,border-color .15s,background .15s;flex-shrink:0}.chat-icon-btn:hover{color:var(--text);border-color:var(--border);background:#ffffff0d}.chat-icon-btn-active{color:var(--accent);border-color:var(--accent);background:#58a6ff1a}.chat-panel{border-top:1px solid var(--border);display:flex;flex-direction:column}.chat-header{display:flex;align-items:center;gap:8px;padding:10px 20px;border-bottom:1px solid var(--border);background:#ffffff05}.chat-title{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;flex:1}.chat-close{background:transparent;border:none;color:var(--muted);cursor:pointer;font-size:12px;padding:2px 4px;border-radius:4px;line-height:1;transition:color .15s,background .15s}.chat-close:hover{color:var(--text);background:#ffffff14}.chat-messages{padding:16px 20px;display:flex;flex-direction:column;gap:12px;max-height:320px;overflow-y:auto}.chat-empty{font-size:13px;text-align:center;padding:16px 0}.chat-message{display:flex}.chat-message-user{justify-content:flex-end}.chat-message-assistant{justify-content:flex-start}.chat-bubble{max-width:80%;padding:8px 12px;border-radius:var(--radius);font-size:13px;line-height:1.6;white-space:pre-wrap}.chat-message-user .chat-bubble{background:#23863633;color:var(--text);border:1px solid rgba(63,185,80,.2)}.chat-message-assistant .chat-bubble{background:var(--border);color:var(--text)}.chat-message-assistant .chat-bubble p{margin:0 0 6px}.chat-message-assistant .chat-bubble p:last-child{margin-bottom:0}.chat-message-assistant .chat-bubble code{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:11px;background:#0000004d;padding:1px 4px;border-radius:3px}.chat-message-assistant .chat-bubble pre{background:#0000004d;padding:8px;border-radius:4px;overflow-x:auto;margin:4px 0}.chat-message-assistant .chat-bubble ul,.chat-message-assistant .chat-bubble ol{padding-left:16px;margin:4px 0}.chat-thinking{display:flex;align-items:center;gap:4px;padding:10px 14px}.dot{width:6px;height:6px;border-radius:50%;background:var(--muted);animation:pulse 1.2s ease-in-out infinite}.dot:nth-child(2){animation-delay:.2s}.dot:nth-child(3){animation-delay:.4s}@keyframes pulse{0%,80%,to{opacity:.3}40%{opacity:1}}.chat-input-row{display:flex;gap:8px;padding:12px 20px;border-top:1px solid var(--border)}.chat-input{flex:1;background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:var(--radius);padding:8px 12px;font-size:13px;font-family:inherit;resize:none;line-height:1.5}.chat-input:focus{outline:none;border-color:var(--accent)}.chat-send{padding:8px 16px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius);cursor:pointer;font-size:13px;font-weight:600;transition:background .15s;white-space:nowrap;align-self:flex-end}.chat-send:hover:not(:disabled){background:var(--accent-hover)}.chat-send:disabled{opacity:.5;cursor:not-allowed}
