/* 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; }
.repo-tabs .tabs { display: flex; gap: var(--space-lg); border-bottom: var(--border); margin-bottom: var(--space-lg); font-family: var(--font-sans); font-size: var(--text-sm); }
.repo-tabs .tabs button { background: none; border: 0; color: var(--muted); font: inherit; padding: var(--space-sm) 0; cursor: pointer; border-bottom: 1px solid transparent; }
.repo-tabs .tabs button.active { color: var(--ink); border-bottom-color: var(--accent); }
.repo-tabs .tabs button:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.readme { max-width: var(--measure); }
.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-head .copy-button { position: static; margin-left: var(--space-sm); }
.repo-file-language { margin-left: auto; 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); }
.repo-path-header h1 a { text-decoration: none; color: inherit; }
.repo-path { display: flex; flex-wrap: wrap; gap: var(--space-xs); align-items: baseline; margin-top: var(--space-sm); font-family: var(--font-mono); font-size: var(--text-sm); overflow-wrap: anywhere; min-width: 0; }
.repo-path-sep { color: var(--faint); }
.repo-path [aria-current="page"] { color: var(--ink); }
.repo-file-meta { margin-bottom: var(--space-md); }
.file-table td.file-name { font-family: var(--font-mono); font-size: var(--text-sm); overflow-wrap: anywhere; }
.file-table td.file-name a { text-decoration: none; }
.file-table td.file-name a:hover, .file-table td.file-name a:focus-visible { text-decoration: underline; }
.file-directory td.file-name a { font-weight: 600; }
.file-table td.file-type { color: var(--ink-soft); font-family: var(--font-sans); font-size: var(--text-sm); }
.file-table td.file-size { color: var(--muted); font-family: var(--font-sans); font-size: var(--text-sm); white-space: nowrap; }
.file-table td.file-support { white-space: nowrap; }
.file-parent a { font-family: var(--font-mono); text-decoration: none; }
.support { font-family: var(--font-sans); font-size: var(--text-xs); letter-spacing: 0.08em; text-transform: uppercase; }
.support-full { color: var(--success); }
.support-partial { color: var(--warning); }
.support-none { color: var(--muted); }
.support-directory { color: var(--faint); }
a.support-none { text-decoration: underline; }
.badge-lfs { margin-left: var(--space-xs); color: var(--info); border-color: var(--info); }
.repo-file-body { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); }
.repo-file-gutter { padding: var(--space-md) var(--space-sm); border-right: var(--border); text-align: right; user-select: none; font-family: var(--font-mono); font-size: var(--text-sm); line-height: 1.6; color: var(--faint); }
.repo-file-gutter a { display: block; color: inherit; text-decoration: none; }
.repo-file-gutter a:hover { color: var(--ink-soft); }
.repo-file-gutter a:target { color: var(--accent); }
dp-repo-file pre.repo-file-code { padding: var(--space-md); line-height: 1.6; tab-size: 4; }
dp-repo-file pre.repo-file-code code { display: block; width: max-content; min-width: 100%; }
.repo-file-mark { position: absolute; left: 0; right: 0; background: rgba(var(--accent-rgb), 0.12); pointer-events: none; }
dp-repo-file .hljs-type, dp-repo-file .hljs-class, dp-repo-file .hljs-variable, dp-repo-file .hljs-symbol { color: var(--code-title); }
dp-repo-file .hljs-meta, dp-repo-file .hljs-regexp, dp-repo-file .hljs-link { color: var(--code-number); }
dp-repo-file .hljs-addition { color: var(--success); }
dp-repo-file .hljs-deletion { color: var(--danger); }
dp-repo-file .hljs-emphasis { font-style: italic; }
dp-repo-file .hljs-strong { font-weight: 600; }
dp-repo-media { display: block; margin: var(--space-lg) 0; min-width: 0; }
.repo-media-image figure { margin: 0; display: flex; flex-direction: column; align-items: center; gap: var(--space-sm); padding: var(--space-md); border: var(--border); background-color: var(--bg-sunken); background-image: linear-gradient(45deg, var(--rule) 25%, transparent 25%, transparent 75%, var(--rule) 75%), linear-gradient(45deg, var(--rule) 25%, transparent 25%, transparent 75%, var(--rule) 75%); background-size: 16px 16px; background-position: 0 0, 8px 8px; }
.repo-media-image figure a { display: block; max-width: 100%; cursor: zoom-in; }
.repo-media-image img { display: block; max-width: 100%; max-height: 75vh; width: auto; height: auto; object-fit: contain; }
.repo-media-caption { font-family: var(--font-sans); font-size: var(--text-xs); }
.repo-media-video video { display: block; width: 100%; max-height: 80vh; background: var(--bg-sunken); border: var(--border); }
.repo-media-audio audio { display: block; width: 100%; }
.repo-pdf { display: block; width: 100%; height: 80vh; border: var(--border); background: var(--bg-sunken); }
dp-repo-media.fail figure, dp-repo-media.fail video, dp-repo-media.fail audio { display: none; }
@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); }
  .file-table th:nth-child(2), .file-table td:nth-child(2) { display: none; }
  .repo-file-gutter { padding: var(--space-md) var(--space-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; }
}
