*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f6f8fa;--surface: #ffffff;--border: #d0d7de;--border-muted: #e8ecf0;--text: #1f2328;--text-muted: #636c76;--text-link: #0969da;--sidebar-w: 220px;--radius: 6px;--status-backlog-bg: #eaeef2;--status-backlog-text: #57606a;--status-open-bg: #ddf4ff;--status-open-text: #0550ae;--status-inprogress-bg: #fff8c5;--status-inprogress-text: #9a6700;--status-done-bg: #dafbe1;--status-done-text: #116329}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;color:var(--text);background:var(--bg)}#app{display:flex;height:100vh;overflow:hidden}#sidebar{width:var(--sidebar-w);flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow-y:auto}.sidebar-header{padding:16px;font-weight:600;font-size:15px;border-bottom:1px solid var(--border-muted);display:flex;align-items:center;gap:8px}.sidebar-header svg{color:var(--text-muted)}.project-list{padding:8px 0;flex:1}.project-item{display:flex;align-items:center;gap:8px;padding:6px 16px;cursor:pointer;border-radius:0;color:var(--text);font-size:13px;transition:background .1s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-item:hover{background:var(--bg)}.project-item.active{background:var(--bg);font-weight:600}.project-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.sidebar-new-btn{margin:8px 12px 16px;padding:7px 12px;background:#2da44e;color:#fff;border:none;border-radius:var(--radius);font-size:13px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:background .1s}.sidebar-new-btn:hover{background:#2c974b}#main{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--bg)}.toolbar{background:var(--surface);border-bottom:1px solid var(--border);padding:0 16px;display:flex;align-items:center;gap:0;flex-shrink:0}.filter-tab{padding:12px 14px;font-size:13px;color:var(--text-muted);cursor:pointer;border-bottom:2px solid transparent;transition:all .1s;white-space:nowrap}.filter-tab:hover{color:var(--text)}.filter-tab.active{color:var(--text);border-bottom-color:#fd8c73;font-weight:500}.toolbar-spacer{flex:1}.assignee-filter{font-size:13px;padding:5px 8px;border:1px solid var(--border);border-radius:var(--radius);color:var(--text);background:var(--surface);cursor:pointer}.issue-list{flex:1;overflow-y:auto}.issue-list-inner{max-width:900px;margin:16px auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.issue-row{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid var(--border-muted);cursor:pointer;transition:background .1s}.issue-row:last-child{border-bottom:none}.issue-row:hover{background:var(--bg)}.issue-row.selected{background:#f0f6ff}.issue-row-title{flex:1;font-size:14px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.issue-row-meta{font-size:12px;color:var(--text-muted);white-space:nowrap}.issue-row-assignee{font-size:12px;color:var(--text-muted);min-width:50px;text-align:right;white-space:nowrap}.badge{font-size:11px;font-weight:500;padding:2px 8px;border-radius:20px;white-space:nowrap;flex-shrink:0}.badge-backlog{background:var(--status-backlog-bg);color:var(--status-backlog-text)}.badge-open{background:var(--status-open-bg);color:var(--status-open-text)}.badge-in-progress{background:var(--status-inprogress-bg);color:var(--status-inprogress-text)}.badge-done{background:var(--status-done-bg);color:var(--status-done-text)}.empty-state{text-align:center;padding:48px 24px;color:var(--text-muted)}.empty-state p{margin-top:8px;font-size:13px}.detail-wrap{display:flex;flex:1;overflow:hidden}.detail-wrap .issue-list{flex:1;min-width:0}.detail-panel{width:400px;flex-shrink:0;border-left:1px solid var(--border);background:var(--surface);overflow-y:auto;display:flex;flex-direction:column}.detail-header{padding:16px;border-bottom:1px solid var(--border-muted);display:flex;align-items:flex-start;gap:8px}.detail-close{background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:18px;line-height:1;padding:0 2px;flex-shrink:0;margin-left:auto}.detail-close:hover{color:var(--text)}.detail-title{font-size:15px;font-weight:600;line-height:1.4;flex:1}.detail-meta{padding:12px 16px;border-bottom:1px solid var(--border-muted);display:flex;flex-direction:column;gap:8px}.detail-meta-row{display:flex;align-items:center;gap:10px;font-size:13px}.detail-meta-label{color:var(--text-muted);min-width:70px}.detail-meta-value select{font-size:13px;border:1px solid var(--border);border-radius:var(--radius);padding:3px 6px;background:var(--surface);color:var(--text);cursor:pointer}.detail-notes{padding:16px;border-bottom:1px solid var(--border-muted);font-size:13px;color:var(--text);white-space:pre-wrap;line-height:1.6}.detail-notes-empty{color:var(--text-muted);font-style:italic}.detail-comments{padding:16px;flex:1}.detail-comments h4{font-size:13px;font-weight:600;margin-bottom:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.comment{margin-bottom:12px;padding:10px 12px;background:var(--bg);border-radius:var(--radius);border:1px solid var(--border-muted)}.comment-header{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:12px}.comment-author{font-weight:600}.comment-date{color:var(--text-muted)}.comment-body{font-size:13px;line-height:1.5;white-space:pre-wrap}.add-comment{margin-top:12px;display:flex;flex-direction:column;gap:8px}.add-comment textarea{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius);font-size:13px;font-family:inherit;resize:vertical;min-height:72px}.add-comment textarea:focus{outline:none;border-color:#0969da;box-shadow:0 0 0 3px #0969da1a}.add-comment-row{display:flex;align-items:center;gap:8px}.add-comment-row input{width:100px;padding:5px 8px;border:1px solid var(--border);border-radius:var(--radius);font-size:13px;font-family:inherit}.btn-primary{padding:5px 14px;background:#2da44e;color:#fff;border:none;border-radius:var(--radius);font-size:13px;font-weight:500;cursor:pointer}.btn-primary:hover{background:#2c974b}#modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:100}#modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:101;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 24px #00000026;width:480px;max-width:95vw;padding:24px}.hidden{display:none!important}.modal-title{font-size:16px;font-weight:600;margin-bottom:20px}.form-group{margin-bottom:14px}.form-group label{display:block;font-size:13px;font-weight:500;margin-bottom:5px}.form-group input,.form-group select,.form-group textarea{width:100%;padding:7px 10px;border:1px solid var(--border);border-radius:var(--radius);font-size:14px;font-family:inherit;color:var(--text);background:var(--surface)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#0969da;box-shadow:0 0 0 3px #0969da1a}.form-group textarea{min-height:80px;resize:vertical}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.btn-cancel{padding:6px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);font-size:13px;cursor:pointer;color:var(--text)}.btn-cancel:hover{background:var(--bg)}.issue-count{font-size:12px;color:var(--text-muted);padding:8px 16px 0;max-width:900px;margin:0 auto;width:100%}.loading{padding:48px;text-align:center;color:var(--text-muted);font-size:13px}
