*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root,[data-theme=dark]{--bg: #0f1117;--surface: #1a1d27;--border: #2e3148;--accent: #6c8ef5;--accent-dim: #3a4a8a;--text: #e2e4f0;--text-muted: #7b80a0;--error: #f87171;--success: #4ade80;--radius: 8px;--font: "Inter", system-ui, sans-serif}[data-theme=light]{--bg: #f4f5f9;--surface: #ffffff;--border: #dde1ee;--accent: #4a6ef5;--accent-dim: #dde4ff;--text: #1a1d27;--text-muted: #6b7080;--error: #ef4444;--success: #16a34a}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;line-height:1.6}.app{display:flex;flex-direction:column;min-height:100vh}header{padding:12px 24px;border-bottom:1px solid var(--border);background:var(--surface);display:flex;align-items:center;justify-content:space-between}header h1{font-size:18px;font-weight:700;color:var(--accent);letter-spacing:.04em}.theme-toggle{background:none;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted);cursor:pointer;font-size:16px;padding:4px 10px;transition:border-color .15s,color .15s;line-height:1}.theme-toggle:hover{border-color:var(--accent);color:var(--text)}.layout{display:flex;flex:1;overflow:hidden;height:calc(100vh - 53px)}.sidebar{width:320px;flex-shrink:0;border-right:1px solid var(--border);overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:24px}.releases-panel{width:280px;flex-shrink:0;border-right:1px solid var(--border);overflow-y:auto;padding:16px}.main{flex:1;overflow-y:auto;padding:32px}h2{font-size:20px;font-weight:600}.column-subtitle{font-size:12px;color:var(--text-muted);margin:-8px 0 12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}h3{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:10px}.repo-selector-header{display:flex;align-items:center;gap:8px;margin-bottom:10px}.repo-selector-header h2{margin-bottom:0;flex:1}.repo-count{font-size:11px;padding:1px 7px;border-radius:10px;background:var(--border);color:var(--text-muted)}.add-repo-btn{font-size:11px;padding:2px 8px;border-radius:var(--radius);background:var(--accent-dim);color:var(--text);border:none;cursor:pointer;transition:background .15s;white-space:nowrap}.add-repo-btn:hover{background:var(--accent);color:#fff}.add-repo-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:10px;margin-bottom:10px}.search-results{list-style:none;display:flex;flex-direction:column;gap:4px;margin-top:4px}.search-results li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px;border-radius:var(--radius);background:var(--bg);border:1px solid var(--border)}.search-result-name{font-size:12px;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-result-watching{font-size:11px;color:var(--success)}.unwatch-btn{font-size:11px;padding:2px 8px;border-radius:var(--radius);background:none;border:1px solid var(--border);color:var(--text-muted);cursor:pointer;transition:border-color .15s,color .15s;white-space:nowrap;margin-left:auto}.unwatch-btn:hover{border-color:var(--error);color:var(--error)}.repo-auto-badge{font-size:10px;font-weight:600;padding:1px 6px;border-radius:10px;background:var(--accent-dim);color:var(--accent);letter-spacing:.04em;text-transform:uppercase;flex-shrink:0}.repo-search{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:6px 10px;color:var(--text);font-size:13px;margin-bottom:8px}.repo-search:focus{outline:none;border-color:var(--accent)}.repo-search::placeholder{color:var(--text-muted)}.sync-badge{display:flex;align-items:center;gap:7px;background:var(--surface2, rgba(255,255,255,.05));border:1px solid var(--border);border-radius:20px;padding:4px 10px 4px 5px;margin-bottom:10px;width:fit-content}.sync-ring{flex-shrink:0;transform:rotate(-90deg)}.sync-ring-bg{fill:none;stroke:var(--border);stroke-width:2.5}.sync-ring-fill{fill:none;stroke:var(--accent);stroke-width:2.5;stroke-linecap:round;stroke-dasharray:50.27;transition:stroke-dashoffset 1s linear}.sync-badge-label{font-size:11px;color:var(--text-muted)}.sync-badge-label strong{color:var(--text);font-variant-numeric:tabular-nums;font-weight:600}.sync-last{font-size:11px;color:var(--text-muted);margin-bottom:8px}.repo-selector ul{list-style:none;display:flex;flex-direction:column;gap:6px}.repo-selector li{border-radius:var(--radius);border:1px solid var(--border);overflow:hidden;transition:border-color .15s}.repo-selector li:hover{border-color:var(--accent-dim)}.repo-selector li.selected{border-color:var(--accent);background:var(--accent-dim)}.repo-selector li.empty{color:var(--text-muted);font-size:13px;padding:10px;text-align:center;border:none}.repo-card{display:flex;flex-direction:column;gap:3px;width:100%;text-align:left;background:none;border:none;color:var(--text);cursor:pointer;padding:10px 12px}.repo-card:hover .repo-name{color:var(--accent)}.repo-card-top{display:flex;align-items:center;justify-content:space-between;min-width:0;gap:4px}.repo-name{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.repo-chevron{font-size:16px;color:var(--text-muted);transition:color .15s}.repo-card:hover .repo-chevron{color:var(--accent)}.repo-description{font-size:12px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.repo-updated{font-size:11px;color:var(--text-muted);margin-top:2px}.repo-last-sync{font-size:11px;color:var(--text-muted);margin-top:1px}.repo-name-block{display:flex;flex-direction:column;gap:1px;min-width:0}.repo-slug{font-size:10px;color:var(--text-muted);opacity:.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.repo-display-name-row{padding:0 12px 6px}.repo-display-name-btn{background:none;border:none;cursor:pointer;font-size:11px;color:var(--accent);padding:0}.repo-display-name-btn:hover{text-decoration:underline}.repo-display-name-input{flex:1;font-size:12px;padding:3px 7px;border:1px solid var(--border);border-radius:4px;background:var(--surface);color:var(--text)}.repo-card-actions{display:flex;align-items:center;gap:8px;padding:6px 12px 8px;border-top:1px solid var(--border);background:#00000026}.import-btn{font-size:11px;padding:2px 10px;border-radius:4px;background:var(--accent-dim);color:var(--text);border:none;cursor:pointer;transition:background .15s}.import-btn:hover:not(:disabled){background:var(--accent)}.import-btn:disabled{opacity:.4;cursor:not-allowed}.import-status{font-size:11px;color:var(--success)}.import-status.error{color:var(--error)}.release-list{display:flex;flex-direction:column;gap:10px}.create-release-form{display:flex;flex-direction:column;gap:6px}.create-release-form input{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:6px 10px;color:var(--text);font-size:13px;width:100%}.create-release-form input:focus{outline:none;border-color:var(--accent)}.date-range{display:flex;align-items:center;gap:4px}.date-range input{flex:1;min-width:0}.date-range-sep{font-size:12px;color:var(--text-muted);flex-shrink:0}.adjust-range-btn{font-size:11px;padding:2px 8px;border-radius:var(--radius);background:none;border:1px solid var(--border);color:var(--text-muted);cursor:pointer;transition:border-color .15s,color .15s;white-space:nowrap}.adjust-range-btn:hover{border-color:var(--accent);color:var(--text)}.create-release-form button{padding:6px 14px;border-radius:var(--radius);background:var(--accent);color:#fff;border:none;font-size:13px;font-weight:600;cursor:pointer;transition:opacity .15s}.create-release-form button:disabled{opacity:.4;cursor:not-allowed}.generate-btn{width:100%;padding:10px 14px;font-size:14px}.latest-release-item{border-color:var(--accent)!important;background:var(--accent-dim)}.latest-release-item strong{color:var(--accent)}.latest-badge{font-size:10px;font-weight:700;padding:1px 6px;border-radius:10px;background:var(--accent);color:#fff;letter-spacing:.04em;text-transform:uppercase;flex-shrink:0}.release-section-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin:10px 0 4px}.release-list ul{list-style:none;display:flex;flex-direction:column;gap:4px}.release-list li{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-radius:var(--radius);border:1px solid var(--border);cursor:pointer;transition:border-color .15s,background .15s}.release-list li:hover{border-color:var(--accent)}.release-list li.selected{border-color:var(--accent);background:var(--accent-dim)}.release-list li.empty{color:var(--text-muted);cursor:default;justify-content:center}.release-date{font-size:12px;color:var(--text-muted)}.pr-count{font-size:11px;color:var(--text-muted);background:var(--border);padding:1px 6px;border-radius:10px}.timeline{display:flex;flex-direction:column;gap:32px}.timeline-entry{display:flex;gap:20px}.timeline-marker{width:12px;height:12px;border-radius:50%;background:var(--accent);flex-shrink:0;margin-top:6px;box-shadow:0 0 0 3px var(--accent-dim)}.timeline-content{flex:1}.timeline-header{display:flex;align-items:baseline;gap:12px;margin-bottom:16px;flex-wrap:wrap}.timeline-header .release-date{color:var(--text-muted);font-size:13px}.release-created-at{font-size:11px;color:var(--text-muted);opacity:.7}.timeline-actions{display:flex;align-items:center;gap:6px;margin-left:auto}.notes-toggle{display:flex;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-right:4px}.notes-toggle-btn{font-size:11px;padding:3px 10px;border:none;background:none;color:var(--text-muted);cursor:pointer;transition:background .15s,color .15s}.notes-toggle-btn.active{background:var(--accent-dim);color:var(--text)}.notes-toggle-btn:hover:not(.active){color:var(--text)}.action-btn{font-size:12px;padding:3px 10px;border-radius:var(--radius);background:none;border:1px solid var(--border);color:var(--text-muted);cursor:pointer;transition:border-color .15s,color .15s}.action-btn:hover:not(:disabled){border-color:var(--accent);color:var(--text)}.action-btn:disabled{opacity:.5;cursor:not-allowed}.notes-editor{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.notes-editor textarea{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px;color:var(--text);font-family:JetBrains Mono,Fira Code,monospace;font-size:13px;line-height:1.6;resize:vertical}.notes-editor textarea:focus{outline:none;border-color:var(--accent)}.editor-actions{display:flex;align-items:center;gap:8px}.save-btn{padding:5px 16px;border-radius:var(--radius);background:var(--accent);color:#fff;border:none;font-size:13px;font-weight:600;cursor:pointer;transition:opacity .15s}.save-btn:disabled{opacity:.5;cursor:not-allowed}.cancel-btn{padding:5px 12px;border-radius:var(--radius);background:none;border:1px solid var(--border);color:var(--text-muted);font-size:13px;cursor:pointer;transition:border-color .15s}.cancel-btn:hover{border-color:var(--accent);color:var(--text)}.release-notes{margin-bottom:16px}.release-notes h3{font-size:14px;color:var(--text);text-transform:none;letter-spacing:0;margin:16px 0 6px}.release-notes ul{padding-left:20px}.release-notes li{margin-bottom:4px}.toggle-prs{background:none;border:1px solid var(--border);color:var(--text-muted);padding:4px 12px;border-radius:var(--radius);font-size:12px;cursor:pointer;margin-bottom:12px;transition:border-color .15s}.toggle-prs:hover{border-color:var(--accent);color:var(--text)}.pr-list{list-style:none;display:flex;flex-direction:column;gap:6px}.pr-list li{display:flex;flex-direction:column;gap:2px;padding:8px 12px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border)}.pr-title{font-size:13px}.pr-meta{font-size:11px;color:var(--text-muted)}.error{color:var(--error);font-size:13px;padding:6px 0}.placeholder{color:var(--text-muted);padding-top:120px;text-align:center;display:flex;flex-direction:column;gap:8px;align-items:center}.placeholder-title{font-size:16px;font-weight:600;color:var(--text)}.placeholder-hint{font-size:13px;color:var(--text-muted);max-width:300px}@keyframes spin{to{transform:rotate(360deg)}}.spinner{width:24px;height:24px;border-radius:50%;border:2px solid var(--border);border-top-color:var(--accent);animation:spin .7s linear infinite;margin:16px auto}
