/* Shared styles for the rep FAQ, the rep kit index, and the kit pages. Tokens match reps.html. */
:root {
  --bg: #f4f1ec;
  --bg-1: #ffffff;
  --line: rgba(15,10,6,0.10);
  --line-strong: rgba(15,10,6,0.18);
  --fg: #0f0a06;
  --fg-dim: #5b5249;
  --fg-muted: #8a8278;
  --brand: #4f46e5;
  --brand-2: #6d63ff;
  --ok: #15803d;
  --maxw: 920px;
  --mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  --sans: 'Inter', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
}
*,*::before,*::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { font-family: var(--sans); background: var(--bg); color: var(--fg); line-height: 1.55; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; border: 0; background: none; color: inherit; }
::selection { background: var(--brand); color: #fff; }
:focus-visible { outline: 2px solid var(--brand-2); outline-offset: 3px; border-radius: 6px; }
.wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 clamp(20px, 5vw, 40px); }

.nav { border-bottom: 1px solid var(--line); }
.nav-inner { display:flex; align-items:center; justify-content:space-between; height:60px; gap: 16px; }
.brand { display:inline-flex; align-items:center; gap:10px; }
.brand img { width: 28px; height: 28px; display:block; }
.wordmark { font-weight:700; font-size:15px; letter-spacing:-0.01em; white-space: nowrap; }
.wordmark .accent { color: var(--brand-2); }
.nav-right { font-size:14px; color: var(--fg-dim); }
.nav-right:hover { color: var(--fg); }

.hero { position:relative; padding: clamp(44px, 7vw, 72px) 0 clamp(28px, 4vw, 40px); overflow:hidden; isolation:isolate; }
.hero::before { content:""; position:absolute; inset:-10% -10% auto -10%; height:80%;
  background: radial-gradient(60% 60% at 30% 0%, rgba(79,70,229,0.28), transparent 70%), radial-gradient(50% 50% at 80% 10%, rgba(109,99,255,0.16), transparent 65%); z-index:-1; }
.eyebrow { font-family: var(--mono); font-size:12px; font-weight:500; letter-spacing:0.14em; color: var(--brand-2); text-transform:uppercase; margin: 0 0 18px; display:inline-flex; align-items:center; gap:10px; padding:7px 12px; border-radius:999px; border:1px solid var(--line); background: rgba(79,70,229,0.08); }
.eyebrow .dot { width:6px; height:6px; border-radius:50%; background: var(--brand-2); box-shadow: 0 0 0 4px rgba(109,99,255,0.18); }
h1 { font-size: clamp(30px, 5vw, 48px); line-height: 1.08; letter-spacing: -0.025em; font-weight: 800; margin: 0 0 18px; text-wrap: balance; max-width: 24ch; overflow-wrap: anywhere; }
.sub { color: var(--fg-dim); font-size: clamp(16px, 1.4vw, 19px); line-height:1.6; margin: 0 0 8px; max-width: 64ch; }
.sub .strong { color: var(--fg); font-weight: 600; }
.sub a { color: var(--brand); font-weight: 600; }

section { padding: clamp(36px, 5vw, 56px) 0; }
section + section { border-top: 1px solid var(--line); }
.label { font-family: var(--mono); font-size: 11.5px; color: var(--brand-2); letter-spacing: 0.16em; text-transform: uppercase; margin: 0 0 14px; }
h2 { font-size: clamp(22px, 2.8vw, 30px); line-height: 1.15; margin: 0 0 18px; letter-spacing: -0.015em; text-wrap: balance; }
h3 { font-size: 17px; margin: 0 0 8px; }
.prose { color: var(--fg-dim); font-size: 16.5px; line-height: 1.65; max-width: 68ch; }
.prose p { margin: 0 0 14px; }
.prose strong { color: var(--fg); }
.prose a { color: var(--brand); font-weight: 600; }
code { font-family: var(--mono); font-size: 0.92em; background: rgba(79,70,229,0.08); color: var(--brand); padding: 2px 7px; border-radius: 6px; }
.fine { margin-top: 16px; font-family: var(--mono); font-size: 12.5px; color: var(--fg-muted); letter-spacing: 0.02em; line-height: 1.7; max-width: 80ch; }
.fine a { text-decoration: underline; }

.faq details { border-bottom: 1px solid var(--line); padding: 18px 0; }
.faq details:first-of-type { border-top: 1px solid var(--line); }
.faq summary { list-style: none; cursor: pointer; display:flex; align-items:flex-start; justify-content:space-between; gap: 24px; font-size: 16.5px; font-weight: 600; line-height: 1.4; }
.faq summary::-webkit-details-marker { display:none; }
.faq summary .toggle { width: 26px; height: 26px; border:1px solid var(--line); border-radius: 8px; display:inline-flex; align-items:center; justify-content:center; color: var(--fg-dim); font-family: var(--mono); flex-shrink: 0; transition: transform .2s ease; }
.faq details[open] summary .toggle { transform: rotate(45deg); color: var(--brand-2); border-color: var(--brand-2); }
.faq details > div { margin-top: 12px; color: var(--fg-dim); font-size: 15px; line-height: 1.65; max-width: 70ch; }
.faq details > div a { color: var(--brand); font-weight: 600; }

.callout { border:1px solid rgba(217,119,6,0.4); background: rgba(217,119,6,0.08); color:#92400e; border-radius:12px; padding: 16px 18px; font-size: 15px; line-height: 1.55; margin: 0 0 22px; }
.callout strong { color:#78350f; }
.callout a { color:#78350f; text-decoration: underline; }

.kit-list { display:grid; gap: 14px; grid-template-columns: 1fr; }
@media (min-width: 720px) { .kit-list { grid-template-columns: 1fr 1fr; } }
.kit-list .item { border:1px solid var(--line); border-radius: 14px; background: var(--bg-1); padding: 20px; display:flex; flex-direction: column; gap: 8px; }
.kit-list .item .ic { width: 34px; height: 34px; border-radius: 9px; background: rgba(79,70,229,0.10); color: var(--brand); display:grid; place-items:center; font-family: var(--mono); font-size: 13px; }
.kit-list .item h3 { margin: 0; font-size: 16px; }
.kit-list .item p { margin: 0; font-size: 14.5px; color: var(--fg-dim); line-height: 1.55; flex: 1; }
.kit-list .item .go { color: var(--brand); font-weight: 600; font-size: 14.5px; }
.kit-list .item .go:hover { text-decoration: underline; }
.kit-list .item .note { font-family: var(--mono); font-size: 12px; color: var(--fg-muted); letter-spacing: 0.02em; }

figure.sample { margin: 0; border:1px solid var(--line); border-radius: 14px; background: var(--bg-1); padding: 14px; max-width: 560px; }
figure.sample img { display:block; width: 100%; height: auto; border-radius: 8px; }
figure.sample figcaption { margin-top: 10px; font-size: 13.5px; color: var(--fg-dim); line-height: 1.5; }

.rules { border:1px solid var(--line-strong); border-radius: 14px; background: var(--bg-1); padding: 22px 24px; }
.rules ul { margin: 0; padding-left: 0; list-style: none; color: var(--fg-dim); font-size: 15px; line-height: 1.6; }
.rules li { padding-left: 24px; position: relative; margin-bottom: 8px; }
.rules li::before { content:""; position:absolute; left:0; top: 9px; width: 10px; height: 10px; border-radius: 3px; background: var(--brand-2); }
.rules li strong { color: var(--fg); }

/* Kit document pages */
.doc { max-width: 760px; }
.doc .block { border:1px solid var(--line); border-radius: 14px; background: var(--bg-1); padding: 22px 24px; margin: 0 0 16px; }
.doc .block h3 { font-family: var(--mono); font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--brand-2); margin: 0 0 10px; font-weight: 500; }
.doc .block p { margin: 0 0 10px; color: var(--fg); font-size: 16px; line-height: 1.65; }
.doc .block p:last-child { margin-bottom: 0; }
.doc .block .role { font-weight: 700; color: var(--brand); margin-right: 6px; }
.doc .block .who { display:block; font-family: var(--mono); font-size: 12px; color: var(--fg-muted); margin: 8px 0 2px; }
.doc .block .subject { font-weight: 600; color: var(--fg); }
.doc .block.stop { border-color: rgba(220,38,38,0.35); background: rgba(239,68,68,0.04); }
.doc .block.stop h3 { color: #b91c1c; }
.doc .attrib { font-family: var(--mono); font-size: 14px; line-height: 1.8; background: rgba(79,70,229,0.06); border-radius: 10px; padding: 14px 16px; color: var(--fg); }
.doc .lead { font-size: 18px; color: var(--fg); font-weight: 600; margin: 0 0 14px; line-height: 1.45; }
.doc .intro { color: var(--fg-dim); font-size: 15.5px; line-height: 1.6; margin: 0 0 22px; }
.doc .intro a { color: var(--brand); font-weight: 600; }
.doc table { width: 100%; border-collapse: collapse; font-size: 14px; line-height: 1.5; }
.doc table th, .doc table td { text-align: left; vertical-align: top; padding: 10px 10px; border-bottom: 1px solid var(--line); }
.doc table th { font-family: var(--mono); font-size: 11.5px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--brand-2); font-weight: 500; }
.doc table td:first-child { font-family: var(--mono); white-space: nowrap; color: var(--fg-dim); }
.table-wrap { overflow-x: auto; border:1px solid var(--line); border-radius: 14px; background: var(--bg-1); padding: 6px 8px; }
.doc .ts { font-family: var(--mono); font-size: 12px; color: var(--fg-muted); letter-spacing: 0.04em; display:block; margin: 22px 0 6px; }
.doc .ts:first-child { margin-top: 0; }
.doc .narr p { margin: 0 0 12px; color: var(--fg); font-size: 16px; line-height: 1.7; }
.doc .narr .role { font-weight: 700; color: var(--brand); }
/* Training course pages */
.doc .job { color: var(--fg); font-weight: 600; }
.doc .steps { margin: 0; padding-left: 22px; color: var(--fg); font-size: 16px; line-height: 1.6; }
.doc .steps li { margin-bottom: 8px; }
.doc .steps a { color: var(--brand); font-weight: 600; }
.doc .drill .prompt { font-weight: 700; font-size: 17px; }
.doc .drill .wrong { color: #7f1d1d; background: rgba(239,68,68,0.06); border-radius: 8px; padding: 8px 10px; }
.doc .drill .wrong .role { color: #b91c1c; }
.doc .drill .right { background: rgba(21,128,61,0.07); border-radius: 8px; padding: 8px 10px; }
.doc .drill .right .role { color: var(--ok); }
.doc .drill .why { color: var(--fg-dim); font-size: 15px; }
.doc .drill .why .role { color: var(--fg-muted); }
.kitnav { display:flex; flex-wrap: wrap; gap: 8px 14px; font-size: 14px; margin: 0 0 24px; }
.kitnav a { color: var(--fg-dim); border:1px solid var(--line); border-radius: 999px; padding: 6px 12px; }
.kitnav a:hover, .kitnav a[aria-current] { color: var(--fg); border-color: var(--fg); }

footer { border-top: 1px solid var(--line); padding: 36px 0 48px; color: var(--fg-muted); font-size: 13px; }
.foot-grid { display: flex; flex-wrap: wrap; gap: 16px 28px; align-items: baseline; }
.foot-grid a { color: var(--fg-dim); }
.foot-grid a:hover { color: var(--fg); }
.legal { margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--line); color: var(--fg-muted); font-size: 12px; line-height: 1.65; }
@media print {
  .nav, footer, .kitnav, .hero::before { display:none !important; }
  body { background:#fff; }
  .doc .block { break-inside: avoid; }
}
@media (prefers-reduced-motion: reduce) { *,*::before,*::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; } }
