/* retoor <retoor@molodetz.nl> */
.repo-card { border-top: var(--border); padding: var(--space-lg) 0; min-width: 0; }
.repo-card:last-of-type { border-bottom: var(--border); }
.repo-card h2 { font-size: var(--text-xl); font-weight: 500; margin: 0 0 var(--space-xs); letter-spacing: -0.01em; }
.repo-card h2 a { text-decoration: none; }
.repo-meta { display: flex; gap: var(--space-sm); align-items: center; flex-wrap: wrap; margin: 0; }
.badge { font-family: var(--font-sans); font-size: var(--text-xs); letter-spacing: 0.08em; text-transform: uppercase; border: var(--border-strong); padding: var(--space-xs) var(--space-sm); color: var(--ink-soft); }
.badge-visibility-public { color: var(--success); border-color: var(--success); }
.badge-visibility-hidden { color: var(--warning); border-color: var(--warning); }
.badge-visibility-secret { color: var(--muted); }
.role-label { font-family: var(--font-sans); font-size: var(--text-xs); color: var(--accent); letter-spacing: 0.08em; text-transform: uppercase; }
.table-wrap { overflow-x: auto; }
.file-table { border-collapse: collapse; width: 100%; font-size: var(--text-base); }
.file-table th, .file-table td { border-bottom: var(--border); padding: var(--space-sm); text-align: left; }
.file-table th { font-family: var(--font-sans); font-size: var(--text-xs); letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); }
.file-table td:first-child { font-family: var(--font-mono); font-size: var(--text-sm); overflow-wrap: anywhere; }
.clone-box { border: var(--border-strong); background: var(--bg-raised); padding: var(--space-md) var(--space-lg); margin: var(--space-lg) 0; min-width: 0; }
.clone-box h2 { font-size: var(--text-lg); margin: 0 0 var(--space-sm); }
.clone-box h3 { font-family: var(--font-sans); font-size: var(--text-xs); letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); margin: var(--space-md) 0 var(--space-xs); }
.clone-box code { display: block; font-family: var(--font-mono); font-size: var(--text-sm); background: var(--code-bg); border: var(--border); padding: var(--space-sm); overflow-x: auto; white-space: nowrap; cursor: copy; }
.danger-zone { border: 1px solid var(--danger); padding: var(--space-md) var(--space-lg); margin-top: var(--space-xl); }
.danger-zone h2 { color: var(--danger); font-size: var(--text-lg); margin: 0 0 var(--space-sm); }
.repo-search-form { display: flex; gap: var(--space-sm); margin-bottom: var(--space-md); }
.repo-search-form input[type="search"] { flex: 1; min-width: 0; }
.repo-search-results { list-style: none; margin: var(--space-lg) 0; padding: 0; display: grid; gap: var(--space-lg); }
.repo-search-hit { border-top: var(--border); padding-top: var(--space-md); min-width: 0; }
.repo-search-head { display: flex; gap: var(--space-sm); align-items: baseline; flex-wrap: wrap; margin: 0 0 var(--space-sm); }
.repo-search-head a { font-family: var(--font-mono); font-size: var(--text-sm); overflow-wrap: anywhere; }
dp-repo-file { display: block; position: relative; background: var(--code-bg); border: var(--border); min-width: 0; }
dp-repo-file pre { margin: 0; padding: var(--space-md); overflow-x: auto; font-size: var(--text-sm); }
dp-repo-file pre code { font-family: var(--font-mono); }
.repo-file-head { display: flex; gap: var(--space-sm); align-items: center; justify-content: space-between; border-bottom: var(--border); padding: var(--space-xs) var(--space-md); }
.repo-file-path { font-family: var(--font-mono); font-size: var(--text-xs); color: var(--ink-soft); overflow-wrap: anywhere; }
.repo-file-language { font-family: var(--font-sans); font-size: var(--text-xs); letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); }
dp-repo-file .hljs-keyword, dp-repo-file .hljs-selector-tag, dp-repo-file .hljs-built_in { color: var(--code-keyword); }
dp-repo-file .hljs-string, dp-repo-file .hljs-attr, dp-repo-file .hljs-template-variable { color: var(--code-string); }
dp-repo-file .hljs-comment, dp-repo-file .hljs-quote { color: var(--code-comment); font-style: italic; }
dp-repo-file .hljs-number, dp-repo-file .hljs-literal { color: var(--code-number); }
dp-repo-file .hljs-title, dp-repo-file .hljs-section, dp-repo-file .hljs-name { color: var(--code-title); }
@media (max-width: 1024px) {
  .file-table { font-size: var(--text-sm); }
}
@media (max-width: 768px) {
  .repo-search-form { flex-direction: column; }
  .repo-search-form .button { align-self: flex-start; }
}
@media (max-width: 480px) {
  .repo-card h2 { font-size: var(--text-lg); }
  .clone-box { padding: var(--space-sm) var(--space-md); }
  .clone-box code { font-size: var(--text-xs); }
}
@media (max-width: 360px) {
  .repo-meta { gap: var(--space-xs); }
  .file-table th:nth-child(3), .file-table td:nth-child(3) { display: none; }
}
