/* ===== Pagina "Codice sorgente" (code_english.html / codice_ita.html) ===== */

/* --- Hero, come la pagina filosofia --- */
.src-hero {
  position: relative;
  padding: 160px 24px 72px;
  text-align: center;
  overflow: hidden;
  background: var(--black);
}
.src-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255,60,0,0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,60,0,0.04) 1px, transparent 1px);
  background-size: 48px 48px;
  mask-image: radial-gradient(ellipse 80% 80% at 50% 50%, black 30%, transparent 100%);
  pointer-events: none;
}
.src-blob {
  position: absolute;
  width: 460px; height: 460px;
  border-radius: 50%;
  filter: blur(90px);
  background: rgba(255,60,0,0.12);
  top: -120px; right: -140px;
  pointer-events: none;
}
.src-hero .section-label { justify-content: center; display: inline-flex; }
.src-hero .section-label::before { display: none; }
.src-hero .section-label::after {
  content: ''; display: block; width: 24px; height: 1px;
  background: var(--orange); margin-left: 10px;
}
.src-title {
  font-family: var(--head);
  font-weight: 800;
  font-size: clamp(2.4rem, 6vw, 4.3rem);
  line-height: 1.05;
  letter-spacing: -0.04em;
  color: var(--white);
  margin-bottom: 22px;
}
.src-title .accent { color: var(--orange); }
.src-intro {
  max-width: 720px;
  margin: 0 auto;
  font-size: 1.08rem;
  line-height: 1.8;
  color: var(--text);
}
.src-intro strong { color: var(--white); }

/* indice rapido dei repo */
.src-index {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin-top: 36px;
}
.src-index a {
  font-family: var(--mono);
  font-size: 0.78rem;
  color: var(--orange2);
  border: 1px solid rgba(255,60,0,0.35);
  background: rgba(255,60,0,0.08);
  padding: 6px 14px;
  border-radius: 100px;
  transition: background 0.2s, color 0.2s;
}
.src-index a:hover { background: rgba(255,60,0,0.2); color: var(--white); }

/* --- Elenco repo --- */
.src-list {
  max-width: 1000px;
  margin: 0 auto;
  padding: 24px 24px 96px;
  display: flex;
  flex-direction: column;
  gap: 88px;
}
.src-repo { scroll-margin-top: 96px; }
.src-repo-head {
  display: grid;
  grid-template-columns: 64px 1fr;
  gap: 24px;
  margin-bottom: 24px;
}
.src-num {
  font-family: var(--head);
  font-weight: 800;
  font-size: 2.4rem;
  line-height: 1;
  color: var(--border);
  letter-spacing: -0.04em;
  transition: color 0.3s;
}
.src-repo:hover .src-num { color: var(--orange); }
.src-repo h2 {
  font-family: var(--head);
  font-weight: 700;
  font-size: clamp(1.3rem, 2.4vw, 1.6rem);
  color: var(--white);
  letter-spacing: -0.02em;
  margin-bottom: 10px;
}
.src-repo h2 code {
  font-family: var(--mono);
  font-size: 0.7em;
  color: var(--orange2);
  font-weight: 400;
  margin-left: 6px;
}
.src-repo p { font-size: 0.95rem; line-height: 1.75; color: var(--text); }
.src-repo p + p { margin-top: 10px; }
.src-repo p strong { color: var(--white); }
.src-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }

/* --- Scheda in stile GitHub (palette scura di GitHub) --- */
.gh {
  --gh-bg: #0d1117;
  --gh-bg2: #161b22;
  --gh-border: #30363d;
  --gh-text: #e6edf3;
  --gh-muted: #8d96a0;
  --gh-link: #4493f8;
  --gh-dir: #54aeff;
  --gh-green: #238636;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif;
  font-size: 14px;
  line-height: 1.5;
  color: var(--gh-text);
  background: var(--gh-bg);
  border: 1px solid var(--gh-border);
  border-radius: 10px;
  padding: 20px;
  box-shadow: 0 24px 60px rgba(0,0,0,0.45);
}
.gh a { color: inherit; }
.gh svg { flex-shrink: 0; }
.gh-loading { color: var(--gh-muted); font-family: var(--mono); font-size: 0.8rem; }

.gh-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}
.gh-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 20px;
  min-width: 0;
  flex-wrap: wrap;
}
.gh-title svg { color: var(--gh-muted); }
.gh-title > a { color: var(--gh-link); }
.gh-title > a:hover { text-decoration: underline; }
.gh-title .gh-name { font-weight: 600; word-break: break-all; }
.gh-sep { color: var(--gh-muted); }
.gh-badge {
  font-size: 12px;
  font-weight: 500;
  color: var(--gh-muted);
  border: 1px solid var(--gh-border);
  border-radius: 2em;
  padding: 0 7px;
  line-height: 18px;
}
.gh-actions { display: flex; gap: 8px; }
.gh-btn {
  font-size: 12px;
  font-weight: 500;
  padding: 3px 12px;
  border: 1px solid var(--gh-border);
  border-radius: 6px;
  background: #21262d;
  color: var(--gh-text) !important;
  white-space: nowrap;
  transition: background 0.15s, border-color 0.15s;
}
.gh-btn:hover { background: #30363d; border-color: #8b949e; }
.gh-btn-main { background: var(--gh-green); border-color: rgba(240,246,252,0.1); color: #fff !important; }
.gh-btn-main:hover { background: #2ea043; border-color: rgba(240,246,252,0.1); }

.gh-desc { color: var(--gh-muted); margin: 10px 0 16px; font-size: 14px; }

.gh-bar { display: flex; align-items: center; gap: 8px; margin-bottom: 14px; flex-wrap: wrap; }
.gh-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
  padding: 4px 12px;
  border: 1px solid var(--gh-border);
  border-radius: 6px;
  background: #21262d;
}
.gh-pill svg { color: var(--gh-muted); }
.gh-pill:hover { background: #30363d; }
.gh-pill-ghost { background: transparent; font-weight: 400; color: var(--gh-muted); }
.gh-src { margin-left: auto; font-size: 12px; color: #3fb950; }

.gh-box {
  border: 1px solid var(--gh-border);
  border-radius: 6px;
  overflow: hidden;
}
.gh-box + .gh-box { margin-top: 16px; }

.gh-commit {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 16px;
  background: var(--gh-bg2);
  border-bottom: 1px solid var(--gh-border);
  min-width: 0;
}
.gh-avatar {
  width: 22px; height: 22px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--orange), var(--orange3));
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.gh-author { font-weight: 600; white-space: nowrap; }
.gh-author:hover { text-decoration: underline; }
.gh-cmsg {
  color: var(--gh-muted) !important;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
  flex: 1;
}
.gh-cmsg:hover { color: var(--gh-link) !important; text-decoration: underline; }
.gh-cmeta {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--gh-muted);
  font-size: 12px;
  white-space: nowrap;
}
.gh-sha { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.gh-sha:hover { color: var(--gh-link) !important; }
.gh-hist {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-left: 8px;
  color: var(--gh-text) !important;
}
.gh-hist svg { color: var(--gh-muted); }
.gh-hist:hover { color: var(--gh-link) !important; }

.gh-row {
  display: grid;
  grid-template-columns: 16px minmax(0, 1fr) minmax(0, 1.6fr) 110px;
  align-items: center;
  gap: 14px;
  padding: 8px 16px;
  border-top: 1px solid #21262d;
  transition: background 0.1s;
}
.gh-commit + .gh-row, .gh-boxhead + .gh-row { border-top: none; }
.gh-row:hover { background: var(--gh-bg2); }
.gh-row:hover .gh-fname { color: var(--gh-link); text-decoration: underline; }
.gh-ic { display: inline-flex; color: var(--gh-muted); }
.gh-ic-dir { color: var(--gh-dir); }
.gh-fname { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gh-fmsg {
  color: var(--gh-muted);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.gh-fdate { color: var(--gh-muted); font-size: 13px; text-align: right; white-space: nowrap; }

.gh-boxhead {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  background: var(--gh-bg2);
  border-bottom: 1px solid var(--gh-border);
  font-weight: 600;
}
.gh-boxhead svg { color: var(--gh-muted); }
.gh-boxhead a:hover { color: var(--gh-link); text-decoration: underline; }
.gh-tag {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px;
  font-weight: 400;
  color: var(--gh-muted);
}
.gh-latest {
  font-size: 12px;
  font-weight: 500;
  color: #3fb950;
  border: 1px solid #238636;
  border-radius: 2em;
  padding: 0 7px;
  line-height: 18px;
}
.gh-asset .gh-fmsg { font-size: 13px; }

.gh-md { padding: 16px 28px 20px; overflow-wrap: anywhere; }
.gh-md h1, .gh-md h2 {
  font-weight: 600;
  border-bottom: 1px solid #21262d;
  padding-bottom: 0.3em;
  margin: 16px 0 12px;
  color: var(--gh-text);
}
.gh-md h1 { font-size: 1.8em; margin-top: 0; }
.gh-md h2 { font-size: 1.4em; }
.gh-md p { margin: 0 0 12px; }
.gh-md hr { border: 0; height: 3px; background: #21262d; margin: 18px 0; }
.gh-md a { color: var(--gh-link) !important; }
.gh-md a:hover { text-decoration: underline; }
.gh-md code { background: rgba(110,118,129,0.4); padding: 0.15em 0.4em; border-radius: 6px; font-size: 85%; }
.gh-md strong { color: var(--gh-text); }

/* --- Responsive --- */
@media (max-width: 700px) {
  .src-repo-head { grid-template-columns: 1fr; gap: 10px; }
  .src-num { font-size: 1.8rem; }
  .gh { padding: 14px; font-size: 13px; }
  .gh-title { font-size: 17px; }
  .gh-actions { width: 100%; }
  .gh-actions .gh-btn { flex: 1; text-align: center; }
  .gh-row { grid-template-columns: 16px minmax(0, 1fr) 96px; }
  .gh-fmsg { display: none; }
  .gh-commit { flex-wrap: wrap; }
  .gh-cmsg { flex-basis: calc(100% - 120px); }
  .gh-cmeta { width: 100%; }
  .gh-hist { margin-left: auto; }
  .gh-md { padding: 14px 16px; }
}

/* --- Linguette GitHub / GitLab --- */
.repo-card { position: relative; }
.rc-tabs { display: flex; gap: 4px; padding-left: 12px; }
.rc-tab {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--mono);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: var(--muted);
  background: var(--surface);
  border: 1px solid var(--border);
  border-bottom: none;
  border-radius: 8px 8px 0 0;
  padding: 9px 16px 8px;
  cursor: pointer;
  position: relative;
  top: 1px;
  transition: color 0.15s, background 0.15s;
}
.rc-tab:hover { color: var(--white); }
.rc-tab[aria-selected="true"] { color: #e6edf3; z-index: 1; }
.rc-tab-gh[aria-selected="true"] { background: #0d1117; border-color: #30363d; }
.rc-tab-gl[aria-selected="true"] { background: #1f1e24; border-color: #434248; color: #ececef; }
.rc-tab-gl[aria-selected="true"] svg { color: #fc6d26; }
.rc-pane[hidden] { display: none; }
.rc-pane.gh { border-radius: 10px; }
.gl-avatar-img { object-fit: cover; padding: 0; background: #0d1117; }

/* --- Vista in stile GitLab (palette scura di GitLab) --- */
.gl {
  --gl-bg: #1f1e24;
  --gl-bg2: #28272d;
  --gl-border: #434248;
  --gl-line: #333238;
  --gl-text: #ececef;
  --gl-muted: #a4a3a8;
  --gl-link: #7ab8f5;
  --gl-blue: #1f75cb;
  --gl-orange: #fc6d26;
  font-family: "GitLab Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Ubuntu, Roboto, sans-serif;
  font-size: 14px;
  line-height: 1.5;
  color: var(--gl-text);
  background: var(--gl-bg);
  border: 1px solid var(--gl-border);
  border-radius: 0 10px 10px 10px;
  padding: 20px;
  box-shadow: 0 24px 60px rgba(0,0,0,0.45);
}
.gl a { color: inherit; }
.gl svg { flex-shrink: 0; display: block; }

.gl-head { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.gl-avatar {
  width: 48px; height: 48px;
  border-radius: 8px;
  background: #3d3a5c;
  color: #e1d8f9;
  font-size: 22px;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.gl-titles { flex: 1; min-width: 0; }
.gl-crumb { font-size: 12px; color: var(--gl-muted); }
.gl-crumb a:hover { color: var(--gl-link); text-decoration: underline; }
.gl-name { display: flex; align-items: center; gap: 8px; font-size: 20px; font-weight: 600; word-break: break-all; }
.gl-name a:hover { color: var(--gl-link); }
.gl-vis { color: var(--gl-muted); display: inline-flex; }
.gl-id { font-size: 12px; color: var(--gl-muted); }

.gl-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
  padding: 5px 12px;
  border-radius: 4px;
  border: 1px solid var(--gl-border);
  background: var(--gl-bg2);
  color: var(--gl-text) !important;
  white-space: nowrap;
  transition: background 0.15s, border-color 0.15s;
}
.gl-btn:hover { background: #333238; border-color: #737278; }
.gl-btn-main { background: var(--gl-blue); border-color: var(--gl-blue); color: #fff !important; }
.gl-btn-main:hover { background: #1068bf; border-color: #1068bf; }

.gl-desc { color: var(--gl-muted); margin: 12px 0 10px; }
.gl-stats {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 18px;
  font-size: 13px;
  color: var(--gl-muted);
  padding-bottom: 14px;
  border-bottom: 1px solid var(--gl-line);
  margin-bottom: 14px;
}
.gl-stats a { display: inline-flex; align-items: center; gap: 6px; }
.gl-stats a strong { color: var(--gl-text); }
.gl-stats a:hover { color: var(--gl-link); }
.gl-live { margin-left: auto; color: #52b87a; font-size: 12px; }

.gl-bar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; }
.gl-drop {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  padding: 5px 10px;
  border: 1px solid var(--gl-border);
  border-radius: 4px;
  background: var(--gl-bg2);
}
.gl-drop:hover { border-color: #737278; }
.gl-path { color: var(--gl-muted); font-size: 14px; }
.gl-path a { color: var(--gl-link); }
.gl-path a:hover { text-decoration: underline; }
.gl-bar-right { margin-left: auto; display: flex; gap: 8px; }

.gl-commit {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  background: var(--gl-bg2);
  border: 1px solid var(--gl-border);
  border-radius: 4px 4px 0 0;
}
.gl-cavatar {
  width: 32px; height: 32px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--orange), var(--orange3));
  color: #fff;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.gl-cbody { flex: 1; min-width: 0; }
.gl-ctitle { font-weight: 600; display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gl-ctitle:hover { color: var(--gl-link); text-decoration: underline; }
.gl-cmeta { font-size: 12px; color: var(--gl-muted); }
.gl-cmeta a { color: var(--gl-text); font-weight: 600; }
.gl-cmeta a:hover { color: var(--gl-link); }
.gl-sha {
  font-family: ui-monospace, "GitLab Mono", Menlo, monospace;
  font-size: 12px;
  padding: 3px 8px;
  border: 1px solid var(--gl-border);
  border-radius: 4px;
  color: var(--gl-muted) !important;
}
.gl-sha:hover { color: var(--gl-link) !important; border-color: #737278; }

.gl-table {
  border: 1px solid var(--gl-border);
  border-top: none;
  border-radius: 0 0 4px 4px;
  overflow: hidden;
}
.gl-tr {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr) 170px;
  gap: 14px;
  align-items: center;
  padding: 9px 16px;
  border-top: 1px solid var(--gl-line);
}
.gl-th {
  border-top: none;
  font-size: 13px;
  font-weight: 600;
  color: var(--gl-muted);
  background: var(--gl-bg);
}
.gl-th span:last-child, .gl-fdate { text-align: right; }
a.gl-tr:hover { background: var(--gl-bg2); }
a.gl-tr:hover .gl-fn { color: var(--gl-link); text-decoration: underline; }
.gl-fname { display: flex; align-items: center; gap: 10px; min-width: 0; }
.gl-fn { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gl-ic { color: var(--gl-muted); display: inline-flex; }
.gl-ic-dir { color: var(--gl-muted); }
.gl-fmsg { color: var(--gl-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gl-fdate { color: var(--gl-muted); font-size: 13px; white-space: nowrap; }

.gl-card { border: 1px solid var(--gl-border); border-radius: 4px; overflow: hidden; margin-top: 16px; }
.gl-card-head {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  background: var(--gl-bg2);
  border-bottom: 1px solid var(--gl-border);
  font-weight: 600;
}
.gl-card-head svg { color: var(--gl-muted); }
.gl-card-head a:hover { color: var(--gl-link); text-decoration: underline; }
.gl-tag { font-family: ui-monospace, Menlo, monospace; font-size: 12px; font-weight: 400; color: var(--gl-muted); }
.gl-badge-ok {
  font-size: 12px;
  font-weight: 500;
  color: #91d4a8;
  background: rgba(36,134,72,0.25);
  border-radius: 100px;
  padding: 0 8px;
}
.gl-asset {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 16px;
  border-top: 1px solid var(--gl-line);
}
.gl-card-head + .gl-asset { border-top: none; }
.gl-asset svg { color: var(--gl-muted); }
.gl-asset:hover { background: var(--gl-bg2); }
.gl-asset:hover span:first-of-type { color: var(--gl-link); text-decoration: underline; }
.gl-asset-k { margin-left: auto; font-size: 12px; color: var(--gl-muted); }

.gl-md { padding: 16px 28px 20px; overflow-wrap: anywhere; }
.gl-md h1, .gl-md h2 {
  font-weight: 600;
  border-bottom: 1px solid var(--gl-line);
  padding-bottom: 0.3em;
  margin: 16px 0 12px;
}
.gl-md h1 { font-size: 1.75em; margin-top: 0; }
.gl-md h2 { font-size: 1.4em; }
.gl-md p { margin: 0 0 12px; }
.gl-md hr { border: 0; height: 1px; background: var(--gl-border); margin: 18px 0; }
.gl-md a { color: var(--gl-link) !important; }
.gl-md a:hover { text-decoration: underline; }
.gl-md code { background: rgba(255,255,255,0.08); padding: 0.15em 0.4em; border-radius: 4px; font-size: 90%; }

@media (max-width: 700px) {
  .rc-tabs { padding-left: 6px; }
  .rc-tab { padding: 8px 12px 7px; font-size: 0.72rem; }
  .gl { padding: 14px; font-size: 13px; }
  .gl-head .gl-btn-main { width: 100%; justify-content: center; }
  .gl-bar-right { margin-left: 0; width: 100%; }
  .gl-bar-right .gl-btn { flex: 1; justify-content: center; }
  .gl-tr { grid-template-columns: minmax(0, 1fr) 96px; }
  .gl-fmsg, .gl-th { display: none; }
  .gl-tr:nth-child(2) { border-top: none; }
  .gl-live { margin-left: 0; width: 100%; }
  .gl-md { padding: 14px 16px; }
}

/* --- README accorciati: sfumatura e tre puntini --- */
.rm-wrap { position: relative; }
.rm-wrap.is-tall:not(.is-open) .rm-body {
  max-height: 300px;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(to bottom, #000 55%, transparent);
  mask-image: linear-gradient(to bottom, #000 55%, transparent);
}
.rm-more { display: none; }
.rm-wrap.is-tall .rm-more {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: -6px auto 14px;
  min-width: 56px;
  height: 28px;
  padding: 0 14px;
  border-radius: 100px;
  font: inherit;
  font-size: 13px;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s, color 0.15s;
}
.rm-dots { font-size: 22px; line-height: 1; letter-spacing: 2px; transform: translateY(-4px); font-weight: 700; }
.rm-less { display: none; }
.rm-wrap.is-open .rm-dots { display: none; }
.rm-wrap.is-open .rm-less { display: inline; }
.gh .rm-more { background: #21262d; border: 1px solid #30363d; color: #e6edf3; }
.gh .rm-more:hover { background: #30363d; border-color: #8b949e; }
.gl .rm-more { background: #28272d; border: 1px solid #434248; color: #ececef; }
.gl .rm-more:hover { background: #333238; border-color: #737278; }
.rm-more:focus-visible { outline: 2px solid var(--orange); outline-offset: 2px; }

/* --- Caricamento ed errore --- */
.rc-state { padding: 4px 0 2px; }
.sk {
  display: block;
  border-radius: 4px;
  background: linear-gradient(90deg, rgba(255,255,255,0.05) 25%, rgba(255,255,255,0.11) 50%, rgba(255,255,255,0.05) 75%);
  background-size: 200% 100%;
  animation: skShimmer 1.4s ease-in-out infinite;
}
@keyframes skShimmer { from { background-position: 200% 0; } to { background-position: -200% 0; } }
@media (prefers-reduced-motion: reduce) { .sk { animation: none; } .rc-spin { animation: none !important; } }
.sk-head { display: flex; align-items: center; gap: 14px; margin-bottom: 16px; }
.sk-av { width: 40px; height: 40px; border-radius: 8px; flex-shrink: 0; }
.sk-lines { display: flex; flex-direction: column; gap: 8px; flex: 1; }
.sk-title { height: 16px; width: 38%; }
.sk-sub { height: 10px; width: 22%; }
.sk-desc { height: 12px; width: 60%; margin-bottom: 18px; }
.sk-box { border: 1px solid rgba(255,255,255,0.08); border-radius: 6px; overflow: hidden; }
.sk-row {
  display: grid;
  grid-template-columns: 16px minmax(0,1fr) minmax(0,1.6fr) 80px;
  gap: 14px;
  align-items: center;
  padding: 12px 16px;
  border-top: 1px solid rgba(255,255,255,0.06);
}
.sk-row:first-child { border-top: none; }
.sk-commit { grid-template-columns: 22px 1fr; background: rgba(255,255,255,0.03); }
.sk-ic { width: 16px; height: 16px; }
.sk-commit .sk-ic { width: 22px; height: 22px; border-radius: 50%; }
.sk-name { height: 12px; width: 70%; }
.sk-msg { height: 12px; width: 60%; }
.sk-date { height: 12px; width: 100%; }
.rc-note {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-top: 16px;
  font-size: 13px;
  opacity: 0.75;
}
.rc-spin {
  width: 14px; height: 14px;
  border-radius: 50%;
  border: 2px solid currentColor;
  border-right-color: transparent;
  animation: rcSpin 0.8s linear infinite;
}
@keyframes rcSpin { to { transform: rotate(360deg); } }

.rc-error { text-align: center; padding: 28px 12px; }
.rc-error p { margin-bottom: 16px; opacity: 0.85; }
.rc-error-btns { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
.rc-retry, .rc-open {
  font: inherit;
  font-size: 13px;
  font-weight: 600;
  padding: 6px 14px;
  border-radius: 6px;
  cursor: pointer;
}
.rc-retry { background: var(--orange); color: #000; border: 1px solid var(--orange); }
.rc-retry:hover { background: var(--orange2); }
.rc-open { border: 1px solid rgba(255,255,255,0.2); }
.rc-open:hover { border-color: rgba(255,255,255,0.5); }
@media (max-width: 700px) {
  .sk-row { grid-template-columns: 16px minmax(0,1fr) 64px; }
  .sk-row .sk-msg:not(.sk-commit .sk-msg) { display: none; }
}

/* avatar dell'autore dei commit: immagine profilo */
img.gh-avatar, img.gl-cavatar { object-fit: cover; background: #222; padding: 0; }
