/* Verbatim <style> block from design/repo.html. Do not edit by hand; re-extract instead. */
main:focus { outline: none; }
.page { padding-top: var(--sp-6); }

.crumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 4px; font-size: var(--fs-13); color: var(--muted); }
.crumbs li { display: inline-flex; align-items: center; gap: 4px; min-width: 0; }
.crumbs li + li::before { content: "/"; color: var(--faint); margin-right: 2px; }
.crumbs a { color: var(--muted); text-decoration: none; }
.crumbs [aria-current="page"] { color: var(--text); font-family: var(--font-mono); overflow-wrap: anywhere; }

/* Header */
.repo-head { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: var(--sp-4) var(--sp-6); align-items: start; margin-top: var(--sp-6); }
.repo-head__main { min-width: 0; }
.repo-title { font-family: var(--font-mono); font-size: var(--fs-32); font-weight: var(--fw-regular); letter-spacing: -0.03em; line-height: var(--lh-tight); overflow-wrap: anywhere; }
.repo-title .repo-owner { color: var(--muted); }
.repo-title .repo-name { font-weight: var(--fw-semibold); }
.repo-desc { margin-top: var(--sp-3); font-size: var(--fs-16); max-width: 68ch; }
.repo-meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2) var(--sp-4); margin-top: var(--sp-3); font-size: var(--fs-13); color: var(--muted); }
.repo-meta .lang { font-size: var(--fs-13); }
.repo-meta .meta-item a { color: var(--muted); }
.repo-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: var(--sp-2); }
.repo-actions .bookmark-toggle .when-on, .repo-actions .bookmark-toggle .when-off { align-items: center; gap: var(--sp-2); }
.hide-btn[aria-pressed="true"] { color: var(--text); background: var(--raised); box-shadow: inset 0 0 0 1px var(--border-strong); }
.hidden-note {
  display: flex; align-items: center; gap: var(--sp-2); margin-top: var(--sp-4); padding: var(--sp-2) var(--sp-3);
  border: 1px solid var(--border-strong); border-radius: var(--r-control); background: var(--surface);
  font-size: var(--fs-13); color: var(--muted); width: fit-content; max-width: 100%;
}

/* Growth stats */
.growth { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); margin-top: var(--sp-6); background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-card); overflow: hidden; }
.growth > div { padding: var(--sp-4); border-left: 1px solid var(--border); display: grid; gap: 2px; align-content: start; min-width: 0; }
.growth > div:first-child { border-left: 0; }
.growth dt { font-size: var(--fs-12); color: var(--muted); }
.growth dd { font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-size: var(--fs-24); font-weight: var(--fw-semibold); letter-spacing: -0.02em; }
.growth dd.is-gain { color: var(--rise-text); }
.growth dd.growth__sub { font-family: var(--font-sans); font-size: var(--fs-12); font-weight: var(--fw-regular); color: var(--muted); letter-spacing: 0; }

/* Layout */
.repo-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: var(--sp-8); align-items: start; margin-top: var(--sp-6); }
.repo-col { display: grid; gap: var(--sp-4); min-width: 0; }
.panel { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-card); padding: var(--sp-4) var(--sp-6) var(--sp-6); min-width: 0; }
.panel__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sp-2) var(--sp-4); margin-bottom: var(--sp-4); }
.panel__title { font-size: var(--fs-16); font-weight: var(--fw-semibold); }
.panel__meta { font-size: var(--fs-12); color: var(--muted); }

.chart-slot { min-height: 200px; }
.chart-caption { margin-top: var(--sp-2); font-size: var(--fs-12); color: var(--muted); }
.why { display: flex; align-items: flex-start; gap: var(--sp-2); margin-top: var(--sp-4); padding-top: var(--sp-4); border-top: 1px solid var(--border); font-size: var(--fs-14); }
.why .icon { color: var(--rise); margin-top: 3px; }
.why strong { font-weight: var(--fw-semibold); }

.rank-table { font-size: var(--fs-13); }
.rank-table th, .rank-table td { padding-inline: var(--sp-2); }
.rank-table th:first-child, .rank-table td:first-child { padding-left: 0; }
.rank-table th:last-child, .rank-table td:last-child { padding-right: 0; }
.rank-table tbody tr:last-child td { border-bottom: 0; }
.rank-table th.is-current { color: var(--text); }
.rank-cell { text-align: right; white-space: nowrap; }
.rank-cell .r { font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-weight: var(--fw-semibold); color: var(--text); }
.rank-cell .r.top { color: var(--rise-text); }
.rank-cell .of { color: var(--muted); font-size: var(--fs-12); margin-left: 4px; }
.rank-table th.num { text-align: right; }

.readme__body { position: relative; }
.readme__body.is-collapsed { max-height: 320px; overflow: hidden; }
.readme__body.is-collapsed::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: var(--border); }
.readme__toggle { margin-top: var(--sp-4); }

/* Sidebar */
.side { display: grid; gap: var(--sp-4); min-width: 0; }
.side .panel { padding: var(--sp-4); }
.side .panel__head { margin-bottom: var(--sp-3); }
.side .panel__title { font-size: var(--fs-14); }
.people { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--sp-1); }
.people a { display: flex; align-items: center; gap: var(--sp-3); min-height: 40px; padding: 0 var(--sp-2); margin: 0 calc(-1 * var(--sp-2)); border-radius: var(--r-control); color: var(--text); text-decoration: none; font-family: var(--font-mono); font-size: var(--fs-13); }
.people__more { margin-top: var(--sp-2); font-size: var(--fs-13); }
.people__more a { color: var(--muted); }
.facts { display: grid; gap: 0; }
.facts > div { display: flex; justify-content: space-between; gap: var(--sp-3); padding: var(--sp-2) 0; border-top: 1px solid var(--border); font-size: var(--fs-13); }
.facts > div:first-child { border-top: 0; padding-top: 0; }
.facts dt { color: var(--muted); }
.facts dd { text-align: right; min-width: 0; overflow-wrap: anywhere; }
.facts dd a { color: var(--text); }
.side .repo-list { gap: var(--sp-2); }

/* Loading skeleton */
.sk-head { display: flex; gap: var(--sp-4); margin-top: var(--sp-6); }
.sk-head .skeleton-avatar { width: 56px; height: 56px; }
.sk-lines { flex: 1 1 0; display: grid; gap: var(--sp-3); }
.sk-stats { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--sp-2); margin-top: var(--sp-6); }
.sk-stats .skeleton-block { height: 76px; }

@media (max-width: 1023.98px) {
  .repo-layout { grid-template-columns: minmax(0, 1fr); }
  .repo-head { grid-template-columns: auto minmax(0, 1fr); }
  .repo-actions { grid-column: 1 / -1; justify-content: flex-start; }
  .side { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .side .panel--similar { grid-column: 1 / -1; }
}
@media (max-width: 767.98px) {
  .page { padding-top: var(--sp-4); }
  .repo-head { gap: var(--sp-3); margin-top: var(--sp-4); }
  .repo-head .avatar { --av-size: 40px !important; }
  .repo-title { font-size: var(--fs-24); }
  .repo-desc { font-size: var(--fs-14); }
  .repo-actions .btn { flex: 1 1 auto; }
  .repo-actions .hide-btn { flex: 0 0 auto; }
  .growth { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .growth > div { border-left: 0; border-top: 1px solid var(--border); padding: var(--sp-3) var(--sp-4); }
  .growth > div:nth-child(even) { border-left: 1px solid var(--border); }
  .growth > div:nth-child(-n+2) { border-top: 0; }
  .growth > div:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .growth dd { font-size: var(--fs-20); }
  .panel { padding: var(--sp-4); }
  .side { grid-template-columns: minmax(0, 1fr); }
  .sk-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .segmented__item { height: 44px; }
  .people a { min-height: 44px; }
  .crumbs a { display: inline-flex; align-items: center; min-height: 32px; }
}
@media (hover: hover) {
  .crumbs a:hover, .people__more a:hover, .facts dd a:hover, .repo-meta .meta-item a:hover { color: var(--text); text-decoration: underline; text-underline-offset: 3px; }
  .people a:hover { background: var(--hover); }
}
