:root { --bg:#fafafa; --fg:#18181b; --muted:#71717a; --card:#fff; --line:#e4e4e7; --brand:#4f46e5; color-scheme: light dark; }
@media (prefers-color-scheme: dark) { :root { --bg:#09090b; --fg:#f4f4f5; --muted:#a1a1aa; --card:#18181b; --line:#27272a; --brand:#818cf8; } }
* { box-sizing: border-box; }
body { margin:0; font:16px/1.55 system-ui, sans-serif; background:var(--bg); color:var(--fg); }
header { display:flex; gap:1rem; align-items:center; padding:.8rem 1.5rem; border-bottom:1px solid var(--line); position:sticky; top:0; background:var(--bg); }
.logo { font-weight:700; color:var(--fg); text-decoration:none; white-space:nowrap; }
#search-form { flex:1; } #q { width:100%; padding:.55rem .8rem; border:1px solid var(--line); border-radius:.5rem; background:var(--card); color:var(--fg); font-size:1rem; }
.layout { display:grid; grid-template-columns:200px 1fr; gap:1.5rem; max-width:1100px; margin:0 auto; padding:1.5rem; }
@media (max-width:700px) { .layout { grid-template-columns:1fr; } }
nav a { display:flex; justify-content:space-between; padding:.35rem .6rem; border-radius:.4rem; color:var(--fg); text-decoration:none; }
nav a:hover, nav a.active { background:var(--card); color:var(--brand); }
.card { display:block; background:var(--card); border:1px solid var(--line); border-radius:.75rem; padding:1rem 1.1rem; margin-bottom:.75rem; color:var(--fg); text-decoration:none; }
.card:hover { border-color:var(--brand); }
.card h3 { margin:0 0 .25rem; font-size:1.05rem; } .card p { margin:0; color:var(--muted); font-size:.93rem; }
.pill { display:inline-block; font-size:.75rem; padding:.05rem .5rem; border:1px solid var(--line); border-radius:999px; margin:.4rem .25rem 0 0; color:var(--muted); }
.toolbar { display:flex; gap:.5rem; margin:.5rem 0 1rem; flex-wrap:wrap; }
button, .btn { background:var(--brand); color:#fff; border:0; border-radius:.45rem; padding:.45rem .8rem; cursor:pointer; font-size:.9rem; text-decoration:none; }
.btn.secondary { background:transparent; color:var(--brand); border:1px solid var(--brand); }
pre { background:var(--card); border:1px solid var(--line); padding:.8rem; border-radius:.5rem; overflow:auto; font-size:.85rem; }
code { font-family: ui-monospace, monospace; font-size:.9em; }
.muted { color:var(--muted); }
footer { text-align:center; color:var(--muted); font-size:.85rem; padding:2rem; }
.chips { display:flex; flex-wrap:wrap; gap:.4rem; margin:.25rem 0 .75rem; }
.chip { background:var(--card); color:var(--fg); border:1px solid var(--line); border-radius:999px; padding:.3rem .75rem; font-size:.85rem; }
.chip:hover { border-color:var(--brand); }
.chip[aria-pressed="true"] { background:var(--brand); border-color:var(--brand); color:#fff; }
.chip .count { opacity:.75; font-variant-numeric:tabular-nums; margin-left:.2rem; }
.chip:focus-visible, nav a:focus-visible, .card:focus-visible { outline:2px solid var(--brand); outline-offset:2px; }
.pill.model { border-color:var(--brand); color:var(--brand); }
.pill.model.any { border-style:dashed; }
.empty { border:1px dashed var(--line); border-radius:.75rem; padding:1rem 1.1rem; }
.empty p { margin:.3rem 0; }
.result-count { margin:.25rem 0 .5rem; font-size:.85rem; }
nav a.empty-cat span:first-child { color:var(--muted); }
.pill.proven { border-color:#15803d; color:#15803d; font-weight:600; }
.pill.tested { color:var(--muted); }
.chip.proven-toggle[aria-pressed="true"] { background:#15803d; border-color:#15803d; }
nav a.proven-link span { color:#15803d; }
table.tested-on { border-collapse:collapse; width:100%; font-size:.9rem; margin:.5rem 0 1rem; }
table.tested-on th, table.tested-on td { border-bottom:1px solid var(--line); padding:.35rem .5rem; text-align:left; }
table.tested-on tr.counts th { color:#15803d; }
.outcome.pass { color:#15803d; font-weight:600; } .outcome.partial { color:#b45309; } .outcome.fail { color:#b91c1c; }
ul.progress { list-style:none; padding:0; } ul.progress li { margin:.25rem 0; } ul.progress progress { vertical-align:middle; width:6rem; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
/* Home hero (plain-words intro + the two ways in) */
.hero { background:var(--card); border:1px solid var(--line); border-radius:1rem; padding:1.4rem 1.5rem; margin:0 0 1.5rem; }
.hero h1 { margin:0 0 .5rem; font-size:1.7rem; line-height:1.25; }
.lede { font-size:1.05rem; margin:.25rem 0 1rem; }
.hero-actions { display:flex; flex-wrap:wrap; gap:.6rem; }
.btn.big { padding:.7rem 1.1rem; font-size:1rem; font-weight:600; display:inline-block; }
.list-title { margin:.5rem 0 .25rem; }
nav a.start-link span { font-weight:600; color:var(--brand); }
/* "Copy for my AI" button + its visible status line */
.copy-ai-wrap { display:inline-flex; align-items:center; gap:.5rem; flex-wrap:wrap; }
button.copy-ai.secondary { background:transparent; color:var(--brand); border:1px solid var(--brand); }
button.copy-ai.copied { background:#15803d; }
.copy-status { font-size:.88rem; color:var(--muted); } .copy-status:empty { display:none; }
/* Getting-started page */
.start h2 { margin-top:1.8rem; } ol.how li { margin:.45rem 0; } ul.cat-list { padding-left:1.1rem; } ul.cat-list li { margin:.45rem 0; }
/* Bundles: stepper page, member-skill banner */
.bundle-banner a:focus-visible { outline:2px solid var(--brand); outline-offset:2px; }
.bundle-progress { display:flex; align-items:center; gap:.75rem; flex-wrap:wrap; margin:1rem 0 .25rem; }
.bundle-progress progress { width:14rem; height:.8rem; accent-color:var(--brand); }
#bundle-count { font-weight:600; font-variant-numeric:tabular-nums; }
.small { font-size:.85rem; } .why { font-size:.9rem; }
ol.stepper { list-style:none; padding:0; margin:1rem 0; counter-reset:none; }
.step { position:relative; background:var(--card); border:1px solid var(--line); border-radius:.75rem; padding:1rem 1.1rem 1rem 3.6rem; margin-bottom:.75rem; }
.step:not(:last-child)::after { content:""; position:absolute; left:1.65rem; top:3.2rem; bottom:-.8rem; border-left:2px solid var(--line); }
.step h2 { margin:0 0 .25rem; font-size:1.1rem; }
.step-n { position:absolute; left:.9rem; top:.9rem; width:1.9rem; height:1.9rem; border-radius:50%; display:grid; place-items:center; background:var(--brand); color:#fff; font-size:.9rem; font-weight:700; }
.step.is-done { border-color:#15803d; } .step.is-done .step-n { background:#15803d; }
.step.is-done .step-n::before { content:"✓"; } .step.is-done .step-n { font-size:0; } .step.is-done .step-n::before { font-size:.95rem; }
.step > p { margin:.1rem 0 .5rem; font-size:.92rem; }
dl.handoff { display:grid; grid-template-columns:max-content 1fr; gap:.15rem .75rem; margin:.25rem 0 .5rem; font-size:.92rem; }
dl.handoff dt { font-weight:600; } dl.handoff dd { margin:0; }
label.done { display:inline-flex; align-items:center; gap:.35rem; padding:.35rem .5rem; cursor:pointer; font-size:.9rem; }
label.done input { width:1.1rem; height:1.1rem; accent-color:#15803d; }
button:focus-visible, .btn:focus-visible, label.done input:focus-visible { outline:2px solid var(--brand); outline-offset:2px; }
.bundle-banner { background:var(--card); border:1px solid var(--brand); border-radius:.6rem; padding:.5rem .8rem; margin:0 0 .75rem; font-size:.92rem; }
.bundle-banner a { display:inline; padding:0; color:var(--brand); text-decoration:underline; } .bundle-banner a:hover { background:none; }
@media (max-width:700px) { .step { padding-left:3.2rem; } .bundle-progress progress { width:100%; } }
@media (prefers-reduced-motion: reduce) { * { transition:none !important; } }
/* Idea 7: optional install panel on skill pages */
details.install { border:1px solid var(--line); border-radius:.5rem; padding:.5rem .9rem; margin:0 0 1.2rem; }
details.install summary { cursor:pointer; font-weight:600; }
details.install h3 { font-size:.95rem; margin:1rem 0 .3rem; }
details.install pre { white-space:pre-wrap; word-break:break-all; margin:.3rem 0; }
