@@ -282,9 +282,9 @@ export function showError(message) {
282282 const errorDiv = document . createElement ( 'div' ) ;
283283 errorDiv . className = 'error' ;
284284 errorDiv . innerHTML = `
285- <div style="display: flex; justify -content: space-between; align-items: start; ">
286- <div style="flex: 1; ">${ message } </div>
287- <button onclick="this.parentElement.parentElement.remove()" style="background: none; border: none; color: #ffa198; cursor: pointer; font-size: 20px; padding: 0; margin-left: 10px; line-height: 1; ">×</button>
285+ <div class="error -content">
286+ <div class="error-message ">${ message } </div>
287+ <button onclick="this.parentElement.parentElement.remove()" class="error-close-btn ">×</button>
288288 </div>
289289 ` ;
290290 errorContainer . innerHTML = '' ;
@@ -580,13 +580,12 @@ export function updateCacheStatus() {
580580 // Populate details panel
581581 if ( cacheDetails ) {
582582 cacheDetails . innerHTML = `
583- <div style="font-size: 11px; color: #8b949e; margin-bottom: 8px; padding: 6px; background: #161b22; border-radius: 4px; border-left: 2px solid #58a6ff; ">
583+ <div class="cache-tip ">
584584 💡 <strong>Tip:</strong> Left-click to toggle repo in list • Right-click to delete from cache
585585 </div>
586586 ` + cacheInfo . map ( info => `
587587 <div class="cache-detail-item">
588- <span style="font-family: monospace; color: #58a6ff; cursor: pointer; text-decoration: underline;"
589- class="cache-repo-name"
588+ <span class="cache-repo-name"
590589 data-repo="${ escapeHtml ( info . repo ) } "
591590 title="Left-click to toggle in list • Right-click to delete from cache">
592591 ${ escapeHtml ( info . repo ) }
@@ -846,22 +845,22 @@ export function setupHelpPanel() {
846845
847846 // Help content
848847 const helpHTML = `
849- <div style="padding: 20px; max-width: 800px; margin: 0 auto; ">
850- <h2 style="color: #58a6ff; margin-bottom: 20px;" >📖 Quick Start Guide</h2>
848+ <div class="help-content-wrapper ">
849+ <h2>📖 Quick Start Guide</h2>
851850
852- <section style="margin-bottom: 30px;" >
853- <h3 style="color: #8b949e; margin-bottom: 10px;" >🚀 Getting Started</h3>
854- <ol style="line-height: 1.8;" >
851+ <section>
852+ <h3>🚀 Getting Started</h3>
853+ <ol>
855854 <li><strong>Enter repositories</strong> in the format <code>owner/repo</code> (one per line)</li>
856855 <li><strong>Optional (but required for private repos):</strong> Add a GitHub token for higher rate limits (5000/hour vs 60/hour) and to access private repositories</li>
857856 <li>Click <strong>"Load Issues & PRs"</strong> to fetch data</li>
858857 <li>Switch between <strong>"By Repository"</strong> and <strong>"By Type"</strong> views</li>
859858 </ol>
860859 </section>
861860
862- <section style="margin-bottom: 30px;" >
863- <h3 style="color: #8b949e; margin-bottom: 10px;" >🎯 Key Features</h3>
864- <ul style="line-height: 1.8;" >
861+ <section>
862+ <h3>🎯 Key Features</h3>
863+ <ul>
865864 <li><strong>Click on any issue/PR card</strong> to view details inline</li>
866865 <li><strong>PRs open directly on GitHub</strong> for code review</li>
867866 <li><strong>Color coding:</strong> Bugs (🐛 red/green), PRs (🔀 purple when present)</li>
@@ -870,9 +869,9 @@ export function setupHelpPanel() {
870869 </ul>
871870 </section>
872871
873- <section style="margin-bottom: 30px;" >
874- <h3 style="color: #8b949e; margin-bottom: 10px;" >💾 Cache Management</h3>
875- <ul style="line-height: 1.8;" >
872+ <section>
873+ <h3>💾 Cache Management</h3>
874+ <ul>
876875 <li><strong>Click "📦 cached"</strong> to expand/collapse cache details</li>
877876 <li><strong>Left-click</strong> a cached repo name to toggle it in your list</li>
878877 <li><strong>Right-click</strong> a cached repo name to delete it from cache</li>
@@ -881,19 +880,19 @@ export function setupHelpPanel() {
881880 </ul>
882881 </section>
883882
884- <section style="margin-bottom: 30px;" >
885- <h3 style="color: #8b949e; margin-bottom: 10px;" >🔗 Sharing & URLs</h3>
886- <ul style="line-height: 1.8;" >
883+ <section>
884+ <h3>🔗 Sharing & URLs</h3>
885+ <ul>
887886 <li><strong>URL auto-updates</strong> when you load repositories</li>
888887 <li><strong>Share button (🔗)</strong> copies the current URL to clipboard</li>
889888 <li><strong>Bookmark URLs</strong> to save your repository configurations</li>
890889 <li><strong>URL format:</strong> <code>?repos=owner/repo1,owner/repo2</code></li>
891890 </ul>
892891 </section>
893892
894- <section style="margin-bottom: 30px;" >
895- <h3 style="color: #8b949e; margin-bottom: 10px;" >⚠️ Important Notes</h3>
896- <ul style="line-height: 1.8;" >
893+ <section>
894+ <h3>⚠️ Important Notes</h3>
895+ <ul>
897896 <li><strong>Red pulsing Load button</strong> means config changed - click to reload</li>
898897 <li><strong>100% client-side</strong> - no data sent to servers, all stays local</li>
899898 <li><strong>Token stored locally</strong> in your browser only</li>
@@ -902,16 +901,16 @@ export function setupHelpPanel() {
902901 </ul>
903902 </section>
904903
905- <section style="margin-bottom: 20px;" >
906- <h3 style="color: #8b949e; margin-bottom: 10px;" >🎨 View Modes</h3>
907- <ul style="line-height: 1.8;" >
904+ <section>
905+ <h3>🎨 View Modes</h3>
906+ <ul>
908907 <li><strong>By Repository:</strong> Each repo gets its own section showing all issues/PRs</li>
909908 <li><strong>By Type:</strong> Issues grouped across all repos (PRs, Bugs, Features, Tasks)</li>
910909 </ul>
911910 </section>
912911
913- <div style="padding: 15px; background: #161b22; border-radius: 6px; border-left: 3px solid #238636; ">
914- <strong style="color: #3fb950;" >💡 Pro Tip:</strong> Use the cache panel to quickly add/remove repos you've previously viewed!
912+ <div class="help-pro-tip ">
913+ <strong>💡 Pro Tip:</strong> Use the cache panel to quickly add/remove repos you've previously viewed!
915914 </div>
916915 </div>
917916 ` ;
@@ -962,9 +961,9 @@ export function formatMarkdown(text) {
962961 html = html . replace ( / ` ( [ ^ ` ] + ) ` / g, '<code>$1</code>' ) ;
963962
964963 // Headers
965- html = html . replace ( / ^ # # # ( .+ ) $ / gm, '<h3 style="color: #c9d1d9; font-size: 16px; margin: 15px 0 10px 0; ">$1</h3>' ) ;
966- html = html . replace ( / ^ # # ( .+ ) $ / gm, '<h2 style="color: #c9d1d9; font-size: 18px; margin: 15px 0 10px 0; ">$1</h2>' ) ;
967- html = html . replace ( / ^ # ( .+ ) $ / gm, '<h1 style="color: #c9d1d9; font-size: 20px; margin: 15px 0 10px 0; ">$1</h1>' ) ;
964+ html = html . replace ( / ^ # # # ( .+ ) $ / gm, '<h3 class="md-h3 ">$1</h3>' ) ;
965+ html = html . replace ( / ^ # # ( .+ ) $ / gm, '<h2 class="md-h2 ">$1</h2>' ) ;
966+ html = html . replace ( / ^ # ( .+ ) $ / gm, '<h1 class="md-h1 ">$1</h1>' ) ;
968967
969968 // Bold
970969 html = html . replace ( / \* \* ( .+ ?) \* \* / g, '<strong>$1</strong>' ) ;
@@ -978,36 +977,36 @@ export function formatMarkdown(text) {
978977 html = html . replace ( / ~ ~ ( .+ ?) ~ ~ / g, '<del>$1</del>' ) ;
979978
980979 // Links
981- html = html . replace ( / \[ ( [ ^ \] ] + ) \] \( ( [ ^ ) ] + ) \) / g, '<a href="proxy.php?url=https%3A%2F%2Fgithub.com%2F%242" target="_blank" rel="noopener noreferrer" style="color: #58a6ff; text-decoration: none; ">$1 ↗️</a>' ) ;
980+ html = html . replace ( / \[ ( [ ^ \] ] + ) \] \( ( [ ^ ) ] + ) \) / g, '<a href="proxy.php?url=https%3A%2F%2Fgithub.com%2F%242" target="_blank" rel="noopener noreferrer" class="md-link ">$1 ↗️</a>' ) ;
982981
983982 // Unordered lists
984- html = html . replace ( / ^ \* ( .+ ) $ / gm, '<li style="margin-left: 20px; ">$1</li>' ) ;
985- html = html . replace ( / ^ - ( .+ ) $ / gm, '<li style="margin-left: 20px; ">$1</li>' ) ;
983+ html = html . replace ( / ^ \* ( .+ ) $ / gm, '<li class="md-list-item ">$1</li>' ) ;
984+ html = html . replace ( / ^ - ( .+ ) $ / gm, '<li class="md-list-item ">$1</li>' ) ;
986985
987986 // Ordered lists
988- html = html . replace ( / ^ \d + \. ( .+ ) $ / gm, '<li style="margin-left: 20px; ">$1</li>' ) ;
987+ html = html . replace ( / ^ \d + \. ( .+ ) $ / gm, '<li class="md-list-item ">$1</li>' ) ;
989988
990989 // Wrap consecutive list items and remove extra newlines within lists
991990 html = html . replace ( / ( < l i [ \s \S ] * ?< \/ l i > \s * ) + / g, ( match ) => {
992991 // Remove newlines between list items
993992 const cleanedList = match . replace ( / \n / g, '' ) ;
994- return '<ul style="margin: 10px 0; ">' + cleanedList + '</ul>' ;
993+ return '<ul class="md-list ">' + cleanedList + '</ul>' ;
995994 } ) ;
996995
997996 // Blockquotes
998- html = html . replace ( / ^ & g t ; ( .+ ) $ / gm, '<blockquote style="border-left: 3px solid #30363d; padding-left: 15px; margin: 10px 0; color: #8b949e; ">$1</blockquote>' ) ;
997+ html = html . replace ( / ^ & g t ; ( .+ ) $ / gm, '<blockquote class="md-blockquote ">$1</blockquote>' ) ;
999998
1000999 // Horizontal rules
1001- html = html . replace ( / ^ - - - $ / gm, '<hr style="border: none; border-top: 1px solid #30363d; margin: 20px 0; ">' ) ;
1000+ html = html . replace ( / ^ - - - $ / gm, '<hr class="md-hr ">' ) ;
10021001
10031002 // Restore HTML tags (must be before converting < back)
10041003 html = html . replace ( / \| \| \| H T M L T A G ( \d + ) \| \| \| / g, ( match , index ) => htmlTags [ parseInt ( index ) ] ) ;
10051004
10061005 // Paragraphs - preserve double line breaks
1007- html = html . replace ( / \n \n / g, '</p><p style="margin-bottom: 12px; ">' ) ;
1006+ html = html . replace ( / \n \n / g, '</p><p class="md-paragraph ">' ) ;
10081007 html = html . replace ( / \n / g, '<br>' ) ;
10091008
1010- return '<p style="margin-bottom: 12px; ">' + html + '</p>' ;
1009+ return '<p class="md-paragraph ">' + html + '</p>' ;
10111010}
10121011
10131012/**
@@ -1024,7 +1023,7 @@ export function renderIssueDetails(issue, htmlUrl, iframeTitle, detailsContent)
10241023 <div class="issue-detail-header">
10251024 <div class="issue-detail-title">
10261025 ${ escapeHtml ( issue . title ) }
1027- <a href="proxy.php?url=https%3A%2F%2Fgithub.com%2F%3Cspan+class%3D"pl-s1">${ htmlUrl } " target="_blank" rel="noopener noreferrer" style="color: #58a6ff; font-size: 14px; margin-left: 10px; text-decoration: none; " title="Open on GitHub">↗️</a>
1026+ <a href="proxy.php?url=https%3A%2F%2Fgithub.com%2F%3Cspan+class%3D"pl-s1">${ htmlUrl } " target="_blank" rel="noopener noreferrer" class="issue-detail-link " title="Open on GitHub">↗️</a>
10281027 </div>
10291028 <div class="issue-detail-meta">
10301029 <span>${ issue . state === 'open' ? '🟢' : '🔴' } ${ issue . state } </span>
@@ -1033,14 +1032,14 @@ export function renderIssueDetails(issue, htmlUrl, iframeTitle, detailsContent)
10331032 <span>🔄 Updated: ${ updatedDate } </span>
10341033 ${ issue . milestone ? `<span>🎯 ${ escapeHtml ( issue . milestone . title ) } </span>` : '' }
10351034 </div>
1036- ${ formatReactions ( issue . reactions ) ? `<div class="issue-detail-reactions" style="margin-top: 12px; padding: 10px; background: #161b22; border-radius: 6px;" >${ formatReactions ( issue . reactions ) } </div>` : '' }
1035+ ${ formatReactions ( issue . reactions ) ? `<div class="issue-detail-reactions">${ formatReactions ( issue . reactions ) } </div>` : '' }
10371036 </div>
10381037
10391038 ${ issue . body ? `
10401039 <div class="issue-detail-body">
10411040 ${ formatMarkdown ( issue . body ) }
10421041 </div>
1043- ` : '<div class="issue-detail-body" style="color: #8b949e; "><em>No description provided.</em></div>' }
1042+ ` : '<div class="issue-detail-body issue-detail-empty "><em>No description provided.</em></div>' }
10441043 ` ;
10451044
10461045 html += `<a href="${ htmlUrl } " target="_blank" rel="noopener noreferrer" class="view-on-github">View on GitHub ↗️</a>` ;
0 commit comments