
/* App layout */
.logged-in { background: var(--gh-canvas-default); }
.page-responsive { min-height: calc(100vh - 120px); }
.py-4 { padding-top: 24px; padding-bottom: 24px; }
.py-6 { padding-top: 40px; padding-bottom: 40px; }
.p-4 { padding: 24px; }
.mt-3 { margin-top: 16px; }
.mt-4 { margin-top: 24px; }
.d-inline { display: inline; }
.link-small { font-size: 12px; color: var(--gh-accent-fg); }
.avatar { border-radius: 50%; background: var(--gh-canvas-subtle); }
.Label { display: inline-flex; align-items: center; gap: 4px; padding: 0 7px; font-size: 12px; font-weight: 500; line-height: 18px; border: 1px solid var(--gh-border-default); border-radius: 999px; color: var(--gh-fg-muted); }
.Label--secondary { color: var(--gh-fg-muted); background: var(--gh-canvas-subtle); }
.Counter { display: inline-block; min-width: 20px; padding: 0 6px; font-size: 12px; font-weight: 500; line-height: 18px; text-align: center; color: var(--gh-fg-default); background: var(--gh-canvas-subtle); border: 1px solid var(--gh-border-default); border-radius: 999px; }
.Box { background: var(--gh-canvas-default); border: 1px solid var(--gh-border-default); border-radius: var(--gh-radius); }
.Box-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; background: var(--gh-canvas-subtle); border-bottom: 1px solid var(--gh-border-default); border-radius: var(--gh-radius) var(--gh-radius) 0 0; }
.Box-title { margin: 0; font-size: 14px; font-weight: 600; }
.Box-body { padding: 16px; }
.empty-state { padding: 32px 24px; text-align: center; color: var(--gh-fg-muted); }
.empty-state-icon { color: var(--gh-fg-subtle); opacity: 0.7; margin-bottom: 8px; }
.empty-state h3 { margin: 8px 0 4px; font-size: 16px; color: var(--gh-fg-default); }
.empty-state p { margin: 0 0 12px; font-size: 14px; }

/* Repo page */
.repo-container { padding-top: 24px; }
.repo-head { border-bottom: 0; }
.repo-head-inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 0; flex-wrap: wrap; }
.repo-title-row { display: flex; align-items: center; gap: 6px; min-width: 0; font-size: 20px; }
.repo-title-icon { display: inline-flex; color: var(--gh-fg-muted); }
.repo-owner { color: var(--gh-accent-fg); }
.repo-name { color: var(--gh-accent-fg); font-weight: 600; }
.repo-slash { color: var(--gh-fg-muted); }
.repo-visibility { margin-left: 8px; }
.repo-actions { display: flex; align-items: center; gap: 8px; }
.repo-actions form { margin: 0; }
.UnderlineNav { display: flex; align-items: center; gap: 8px; overflow-x: auto; border-bottom: 1px solid var(--gh-border-default); padding: 0; margin: 0 0 24px; }
.UnderlineNav-item { display: inline-flex; align-items: center; gap: 6px; padding: 10px 12px; font-size: 14px; color: var(--gh-fg-default); border-bottom: 2px solid transparent; margin-bottom: -1px; white-space: nowrap; text-decoration: none; }
.UnderlineNav-item:hover { border-bottom-color: var(--gh-border-default); text-decoration: none; }
.UnderlineNav-item.selected { font-weight: 600; border-bottom-color: #fd8c73; }
.UnderlineNav-item svg { color: var(--gh-fg-muted); }
.repo-layout { display: grid; grid-template-columns: minmax(0, 1fr) 296px; gap: 24px; align-items: start; }
.repo-main { min-width: 0; }
.repo-sidebar { font-size: 14px; }
.repo-sidebar h2 { margin: 0 0 8px; font-size: 14px; font-weight: 600; color: var(--gh-fg-default); }
.repo-about { padding-bottom: 16px; border-bottom: 1px solid var(--gh-border-default); }
.repo-description { margin: 0 0 12px; color: var(--gh-fg-default); }
.repo-homepage { display: flex; align-items: center; gap: 6px; margin: 0 0 12px; font-size: 13px; color: var(--gh-fg-muted); }
.repo-topics { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.topic-tag { display: inline-block; padding: 0 10px; font-size: 12px; line-height: 22px; color: var(--gh-accent-fg); background: var(--gh-accent-subtle); border-radius: 999px; }
.repo-stats { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 10px; font-size: 13px; color: var(--gh-fg-muted); }
.repo-stats a { display: inline-flex; align-items: center; gap: 4px; color: var(--gh-fg-muted); }
.repo-stats svg { color: var(--gh-fg-muted); }
.repo-license { display: flex; align-items: center; gap: 6px; margin: 0 0 12px; font-size: 13px; color: var(--gh-fg-muted); }
.repo-links { display: flex; flex-direction: column; gap: 8px; }
.repo-links a { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: var(--gh-fg-default); }
.repo-sidebar-section { padding: 16px 0; border-bottom: 1px solid var(--gh-border-default); }
.repo-sidebar-section:last-child { border-bottom: 0; }
.release-item { display: flex; flex-direction: column; gap: 2px; margin-bottom: 10px; font-size: 13px; }
.language-bar { display: flex; height: 8px; overflow: hidden; margin-bottom: 8px; border-radius: 999px; background: var(--gh-border-subtle); }
.language-bar span { display: block; height: 100%; }
.language-list { margin: 0; padding: 0; list-style: none; }
.language-list li { display: flex; align-items: center; gap: 6px; margin-bottom: 4px; font-size: 12px; }
.language-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; }
.contributor-avatars { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 8px; }

/* File tree */
.file-tree-box { overflow: hidden; }
.file-navigation { display: flex; align-items: center; gap: 8px; padding: 12px 16px; background: var(--gh-canvas-subtle); border-bottom: 1px solid var(--gh-border-default); flex-wrap: wrap; }
.file-navigation .dropdown { margin: 0; }
.branch-select summary { max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.branch-menu { max-height: 320px; overflow: auto; min-width: 260px; }
.code-btn-dropdown { margin-left: auto; }
.code-menu { min-width: 360px; padding: 12px; }
.clone-row { display: flex; align-items: center; gap: 8px; margin: 8px 0; font-size: 12px; }
.clone-row > span { width: 48px; color: var(--gh-fg-muted); }
.clone-row code { flex: 1; padding: 4px 8px; font-size: 11px; background: var(--gh-canvas-subtle); border: 1px solid var(--gh-border-default); border-radius: 4px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.latest-commit { display: flex; align-items: center; gap: 10px; padding: 10px 16px; font-size: 13px; border-bottom: 1px solid var(--gh-border-default); }
.latest-commit-main { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.latest-commit-title { font-weight: 600; color: var(--gh-fg-default); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.latest-commit-meta { color: var(--gh-fg-muted); font-size: 12px; }
.latest-commit-sha { display: flex; align-items: center; gap: 4px; color: var(--gh-fg-muted); }
.latest-commit-sha a { color: var(--gh-fg-muted); font-family: var(--gh-font-mono); font-size: 12px; }
.latest-commit-history { display: inline-flex; align-items: center; gap: 4px; color: var(--gh-fg-muted); font-size: 12px; }
.file-tree { width: 100%; border-collapse: collapse; }
.file-tree-row { border-top: 1px solid var(--gh-border-muted); }
.file-tree-row:hover { background: var(--gh-canvas-subtle); }
.file-tree-row td { padding: 8px 16px; font-size: 14px; }
.file-tree-name { display: flex; align-items: center; gap: 8px; }
.file-tree-name svg { color: var(--gh-fg-muted); }
.file-tree-name a { color: var(--gh-fg-default); }
.file-tree-name a:hover { color: var(--gh-accent-fg); }
.file-tree-message { width: 45%; color: var(--gh-fg-muted); font-size: 12px; }
.file-tree-age { width: 120px; text-align: right; color: var(--gh-fg-muted); font-size: 12px; }
.file-tree-empty { padding: 24px; text-align: center; color: var(--gh-fg-muted); }
.readme-box { margin-top: 24px; }
.readme-header { display: flex; align-items: center; justify-content: space-between; }
.readme-header > span { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; }
.readme-actions { display: flex; gap: 4px; }
.empty-readme { margin-top: 24px; }

/* Markdown body */
.markdown-body { font-size: 16px; line-height: 1.6; color: var(--gh-fg-default); word-wrap: break-word; }
.markdown-body > *:first-child { margin-top: 0 !important; }
.markdown-body > *:last-child { margin-bottom: 0 !important; }
.markdown-body h1, .markdown-body h2, .markdown-body h3, .markdown-body h4, .markdown-body h5, .markdown-body h6 { margin: 24px 0 16px; font-weight: 600; line-height: 1.25; }
.markdown-body h1 { font-size: 2em; padding-bottom: 0.3em; border-bottom: 1px solid var(--gh-border-muted); }
.markdown-body h2 { font-size: 1.5em; padding-bottom: 0.3em; border-bottom: 1px solid var(--gh-border-muted); }
.markdown-body h3 { font-size: 1.25em; }
.markdown-body h4 { font-size: 1em; }
.markdown-body p, .markdown-body blockquote, .markdown-body ul, .markdown-body ol, .markdown-body dl, .markdown-body table, .markdown-body pre, .markdown-body details { margin-top: 0; margin-bottom: 16px; }
.markdown-body ul, .markdown-body ol { padding-left: 2em; }
.markdown-body li + li { margin-top: 0.25em; }
.markdown-body blockquote { margin: 0 0 16px; padding: 0 1em; color: var(--gh-fg-muted); border-left: 0.25em solid var(--gh-border-default); }
.markdown-body code { padding: 0.2em 0.4em; font-size: 85%; font-family: var(--gh-font-mono); background: var(--gh-canvas-subtle); border-radius: 6px; }
.markdown-body pre { padding: 16px; overflow: auto; font-size: 85%; line-height: 1.45; background: var(--gh-canvas-subtle); border-radius: 6px; }
.markdown-body pre code { padding: 0; font-size: 100%; background: transparent; border-radius: 0; }
.markdown-body table { display: block; width: max-content; max-width: 100%; overflow: auto; border-spacing: 0; border-collapse: collapse; }
.markdown-body table th, .markdown-body table td { padding: 6px 13px; border: 1px solid var(--gh-border-default); }
.markdown-body table tr:nth-child(2n) { background: var(--gh-canvas-subtle); }
.markdown-body img { max-width: 100%; box-sizing: content-box; background: var(--gh-canvas-default); }
.markdown-body hr { height: 0.25em; padding: 0; margin: 24px 0; background: var(--gh-border-default); border: 0; }
.markdown-body a { color: var(--gh-accent-fg); }
.markdown-body .task-list-item { list-style: none; }
.markdown-body .task-list-item-checkbox { margin: 0 0.2em 0.25em -1.4em; vertical-align: middle; }
.markdown-body .highlight { margin-bottom: 16px; }
.markdown-body .highlight pre { margin: 0; }

/* Dashboard / explore */
.dashboard-layout { display: grid; grid-template-columns: 296px minmax(0, 1fr) 296px; gap: 24px; align-items: start; }
.dashboard-sidebar, .dashboard-right { font-size: 14px; }
.sidebar-title { margin: 0 0 8px; font-size: 14px; font-weight: 600; }
.sidebar-filter { margin-bottom: 8px; }
.sidebar-repo-list { margin: 0 0 8px; padding: 0; list-style: none; }
.sidebar-repo-list li { display: flex; align-items: center; padding: 4px 0; font-size: 13px; }
.sidebar-repo-list a { display: inline-flex; align-items: center; gap: 6px; color: var(--gh-fg-default); min-width: 0; }
.sidebar-repo-list a svg { color: var(--gh-fg-muted); flex-shrink: 0; }
.sidebar-repo-list span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sidebar-more { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; }
.sidebar-empty { margin: 0; font-size: 12px; color: var(--gh-fg-muted); }
.sidebar-divider { height: 1px; margin: 16px 0; background: var(--gh-border-muted); }
.dashboard-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.dashboard-heading h1 { margin: 0; font-size: 24px; font-weight: 400; }
.repo-starter { display: flex; gap: 16px; align-items: flex-start; }
.repo-starter-icon { color: var(--gh-fg-muted); }
.repo-starter h3 { margin: 0 0 4px; font-size: 16px; }
.repo-starter p { margin: 0 0 12px; color: var(--gh-fg-muted); }
.repo-feed { margin: 0; padding: 0; list-style: none; }
.repo-feed-item { display: flex; gap: 12px; padding: 16px; border-top: 1px solid var(--gh-border-muted); }
.repo-feed-item:first-child { border-top: 0; }
.repo-feed-avatar { flex-shrink: 0; }
.repo-feed-body { min-width: 0; flex: 1; }
.repo-feed-name { font-size: 14px; color: var(--gh-accent-fg); }
.repo-feed-desc { margin: 4px 0 8px; font-size: 13px; color: var(--gh-fg-muted); }
.repo-feed-meta { display: flex; flex-wrap: wrap; gap: 14px; font-size: 12px; color: var(--gh-fg-muted); }
.repo-feed-meta span { display: inline-flex; align-items: center; gap: 4px; }
.explore-side-list { margin: 0; padding: 0; list-style: none; }
.explore-side-list li { padding: 12px 16px; border-top: 1px solid var(--gh-border-muted); }
.explore-side-list li:first-child { border-top: 0; }
.explore-side-list a { display: block; font-size: 13px; }
.explore-side-list p { margin: 4px 0; font-size: 12px; color: var(--gh-fg-muted); }
.explore-side-list span { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; color: var(--gh-fg-muted); }
.changelog-list { margin: 0; padding: 12px 16px; list-style: none; font-size: 13px; color: var(--gh-fg-muted); }
.changelog-list li { margin-bottom: 8px; }
.changelog-tag { display: inline-block; margin-right: 6px; padding: 0 6px; font-size: 11px; color: var(--gh-accent-fg); background: var(--gh-accent-subtle); border-radius: 999px; }
.explore-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.explore-head h1 { margin: 0 0 4px; font-size: 24px; font-weight: 400; }
.explore-head p { margin: 0; }
.topic-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.topic-chip { display: inline-block; padding: 4px 12px; font-size: 13px; color: var(--gh-accent-fg); background: var(--gh-accent-subtle); border-radius: 999px; }
.explore-repo-list { margin: 0; padding: 0; list-style: none; }
.explore-repo-item { display: flex; align-items: flex-start; gap: 16px; padding: 16px; border-top: 1px solid var(--gh-border-muted); }
.explore-repo-item:first-child { border-top: 0; }
.explore-repo-rank { width: 24px; color: var(--gh-fg-muted); font-size: 13px; text-align: center; }
.explore-repo-main { flex: 1; min-width: 0; }
.explore-repo-name { display: inline-flex; align-items: center; gap: 6px; font-size: 15px; }
.explore-repo-main p { margin: 4px 0 8px; font-size: 13px; color: var(--gh-fg-muted); }

@media (max-width: 1080px) {
  .repo-layout { grid-template-columns: 1fr; }
  .repo-sidebar { display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; }
  .dashboard-layout { grid-template-columns: 240px minmax(0, 1fr); }
  .dashboard-right { display: none; }
}
@media (max-width: 768px) {
  .repo-head-inner { flex-direction: column; align-items: flex-start; }
  .repo-actions { width: 100%; }
  .repo-actions .btn { flex: 1; }
  .repo-sidebar { grid-template-columns: 1fr; }
  .dashboard-layout { grid-template-columns: 1fr; }
  .dashboard-sidebar { display: none; }
  .explore-repo-item { flex-wrap: wrap; }
  .file-tree-message, .file-tree-age { display: none; }
  .latest-commit-history { display: none; }
}
