/* DOCUMENTS — a repository interface: category rail + file rows */
.repo-head { background: var(--indigo); }
.repo-head .wrap { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 3rem; align-items: end; }
.repo-head h1 { color: var(--white); font-size: clamp(2.8rem, 1.5rem + 4.6vw, 5.8rem); }
.repo-head h1 em { color: var(--wheat); }
.repo-head .crumbs { color: var(--sand); }

.repo { display: grid; grid-template-columns: 15rem minmax(0, 1fr); gap: 2.5rem 4rem; align-items: start; }
.repo__rail { position: sticky; top: calc(var(--header-h) + 1.5rem); }
.repo__rail h2 { font-family: var(--sans); font-size: .7rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--slate); margin-bottom: .8rem; }
.repo__rail .filter-chips { flex-direction: column; align-items: stretch; gap: 0; border-top: 1px solid var(--line-strong); margin: 0 0 1.5rem; }
.repo__rail .chip { border: 0; border-bottom: 1px solid var(--line); border-radius: 0; text-align: left; padding: .75rem .2rem; display: flex; justify-content: space-between; }
.repo__rail .chip[aria-pressed="true"] { background: transparent; color: var(--soil-ink); box-shadow: inset 3px 0 0 var(--soil); padding-left: .8rem; }
.repo__rail input[type="search"] { width: 100%; min-height: 46px; padding: .6rem .8rem; border: 1px solid var(--line-strong); background: var(--white); font: 500 .95rem var(--sans); border-radius: var(--radius); }
.repo__rail label { display: block; font-size: .7rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--slate); margin-bottom: .4rem; }

.files { list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--indigo); }
.file { margin: 0; display: grid; grid-template-columns: 3.4rem minmax(0, 1fr) auto; gap: 1rem 1.6rem; padding: 1.4rem 0; border-bottom: 1px solid var(--line); align-items: start; }
.file__ico { position: relative; width: 3.2rem; height: 4rem; border: 1px solid var(--line-strong); background: var(--white); display: flex; align-items: flex-end; padding: .35rem; font-size: .6rem; font-weight: 800; letter-spacing: .08em; color: var(--soil-ink); }
.file__ico::before { content: ""; position: absolute; right: -1px; top: -1px; border-width: 0 13px 13px 0; border-style: solid; border-color: var(--parchment) var(--parchment) var(--line-strong) var(--line-strong); }
.file__ico--web { color: var(--green); }
.file h3 { font-size: 1.35rem; margin-bottom: .35rem; }
.file p { margin: 0 0 .5rem; font-size: .94rem; max-width: 72ch; }
.file .meta { display: flex; flex-wrap: wrap; gap: .3rem 1rem; }
.file__act { display: flex; flex-direction: column; gap: .5rem; align-items: stretch; min-width: 9rem; }
.file__act .btn { min-height: 42px; padding: .55rem .9rem; font-size: .72rem; justify-content: center; }

@media (max-width: 1000px) {
  .repo-head .wrap { grid-template-columns: minmax(0, 1fr); }
  .repo { grid-template-columns: minmax(0, 1fr); }
  .repo__rail { position: static; }
  .repo__rail .filter-chips { flex-direction: row; flex-wrap: wrap; gap: .5rem; border: 0; }
  .repo__rail .chip { border: 1px solid var(--line-strong); border-radius: 30px; padding: .5rem 1rem; }
  .repo__rail .chip[aria-pressed="true"] { background: var(--indigo); color: var(--white); box-shadow: none; padding-left: 1rem; }
}
@media (max-width: 640px) {
  .file { grid-template-columns: 3rem minmax(0, 1fr); }
  .file__act { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; }
  .file__act .btn { flex: 1 1 10rem; }
}
