
.gs-player{--gs-bg:var(--color-surface,#0f1622);--gs-panel:var(--color-surface-raised,#152031);--gs-line:var(--color-border,#253247);--gs-text:var(--color-text,#e6edf6);--gs-muted:var(--color-text-muted,#8a9bb2);--gs-accent:var(--color-accent,#4cc2ff);--gs-ok:#3fb950;--gs-warn:#e3b341;--gs-bad:#f85149;--gs-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  color:var(--gs-text);background:var(--gs-bg);border:1px solid var(--gs-line);border-radius:14px;padding:14px;display:grid;gap:12px;grid-template-columns:minmax(0,1fr) 300px;font:14px/1.45 system-ui,-apple-system,Segoe UI,sans-serif}
@media (prefers-color-scheme:light){.gs-player:not([data-theme=dark]){--gs-bg:var(--color-surface,#fff);--gs-panel:var(--color-surface-raised,#f5f7fa);--gs-line:var(--color-border,#d8dee8);--gs-text:var(--color-text,#16202c);--gs-muted:var(--color-text-muted,#5b6b80);--gs-accent:var(--color-accent,#0a7cc2);--gs-ok:#1a7f37;--gs-warn:#9a6700;--gs-bad:#cf222e}}
.gs-player[data-theme=light]{--gs-bg:#fff;--gs-panel:#f5f7fa;--gs-line:#d8dee8;--gs-text:#16202c;--gs-muted:#5b6b80;--gs-accent:#0a7cc2;--gs-ok:#1a7f37;--gs-warn:#9a6700;--gs-bad:#cf222e}
.gs-player.gs-colorblind{--gs-ok:#1f77b4;--gs-bad:#ff7f0e;--gs-warn:#ff7f0e}
.gs-main{display:grid;gap:12px;min-width:0}
.gs-box{background:var(--gs-panel);border:1px solid var(--gs-line);border-radius:10px;padding:10px 12px;min-width:0}
.gs-box h3{margin:0 0 6px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--gs-muted);font-weight:600}
.gs-graph{overflow-x:auto}
.gs-graph svg{display:block}
.gs-node{transition:transform .45s ease,opacity .45s ease}
.gs-node circle{fill:var(--gs-panel);stroke:var(--gs-accent);stroke-width:2.5}
.gs-node.gs-head circle{fill:var(--gs-accent)}
.gs-node.gs-ghost{opacity:.45}
.gs-node.gs-ghost circle{stroke-dasharray:4 3;stroke:var(--gs-muted)}
.gs-node.gs-enter{opacity:0}
.gs-node text{fill:var(--gs-text);font:11px var(--gs-mono);text-anchor:middle}
.gs-node text.gs-msg{fill:var(--gs-muted);font:11px system-ui,sans-serif}
.gs-edge{fill:none;stroke:var(--gs-line);stroke-width:2.5;transition:opacity .45s}
.gs-label rect{rx:6;ry:6}
.gs-label text{font:600 11px system-ui,sans-serif;text-anchor:middle;dominant-baseline:central}
.gs-label.gs-branch rect{fill:color-mix(in srgb,var(--gs-ok) 22%,transparent);stroke:var(--gs-ok)}
.gs-label.gs-branch text{fill:var(--gs-ok)}
.gs-label.gs-current rect{fill:var(--gs-ok)}
.gs-label.gs-current text{fill:#fff}
.gs-label.gs-remote rect{fill:transparent;stroke:var(--gs-muted);stroke-dasharray:3 2}
.gs-label.gs-remote text{fill:var(--gs-muted)}
.gs-label.gs-tag rect{fill:color-mix(in srgb,var(--gs-warn) 20%,transparent);stroke:var(--gs-warn)}
.gs-label.gs-tag text{fill:var(--gs-warn)}
.gs-label.gs-headlabel rect{fill:var(--gs-accent)}
.gs-label.gs-headlabel text{fill:#fff}
.gs-label{transition:transform .45s ease}
.gs-places{overflow-x:auto}
.gs-places table{width:100%;border-collapse:collapse;font-size:13px}
.gs-places th{font-weight:600;text-align:left;padding:4px 6px;color:var(--gs-muted);font-size:12px}
.gs-places th small{display:block;font-weight:400}
.gs-places td{padding:4px 6px;border-top:1px solid var(--gs-line);font-family:var(--gs-mono);font-size:12px}
.gs-cell{display:inline-block;min-width:34px;text-align:center;border-radius:6px;padding:1px 6px;border:1px solid var(--gs-line)}
.gs-cell.gs-changed{border-color:var(--gs-warn);color:var(--gs-warn)}
.gs-cell.gs-conf{border-color:var(--gs-bad);color:var(--gs-bad)}
.gs-cell.gs-none{opacity:.4;border-style:dashed}
.gs-state{font-family:system-ui,sans-serif;color:var(--gs-muted)}
.gs-file button{all:unset;cursor:pointer;color:var(--gs-accent);font-family:var(--gs-mono)}
.gs-term{font-family:var(--gs-mono);font-size:12.5px}
.gs-out{max-height:220px;overflow:auto;white-space:pre-wrap;margin:0;padding:0 0 6px}
.gs-out .gs-cmd{color:var(--gs-accent)}
.gs-out .gs-err{color:var(--gs-bad)}
.gs-out .gs-note{color:var(--gs-muted);font-style:italic}
.gs-chips-label{font-size:12px;color:var(--gs-muted);align-self:center}
.gs-prompt{display:flex;gap:8px;align-items:center;border-top:1px solid var(--gs-line);padding-top:8px}
.gs-prompt input{flex:1;background:transparent;border:0;color:var(--gs-text);font:inherit;outline:none}
.gs-prompt:focus-within{outline:2px solid var(--gs-accent);outline-offset:4px;border-radius:4px}
.gs-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.gs-chip{font:12px var(--gs-mono);border:1px solid var(--gs-line);background:transparent;color:var(--gs-text);border-radius:999px;padding:2px 10px;cursor:pointer}
.gs-chip:hover,.gs-chip:focus-visible{border-color:var(--gs-accent);color:var(--gs-accent)}
.gs-side{display:grid;gap:12px;align-content:start}
.gs-side h2{margin:0;font-size:17px}
.gs-side p{margin:4px 0}
.gs-muted{color:var(--gs-muted)}
.gs-steps{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.gs-steps li{display:grid;grid-template-columns:22px 1fr;gap:6px;padding:6px;border-radius:8px}
.gs-steps li.gs-now{background:color-mix(in srgb,var(--gs-accent) 12%,transparent)}
.gs-steps li.gs-ok .gs-tick{color:var(--gs-ok)}
.gs-steps li.gs-ok span:last-child{color:var(--gs-muted);text-decoration:line-through}
.gs-tick{font-weight:700}
.gs-btn{font:inherit;border:1px solid var(--gs-line);background:transparent;color:var(--gs-text);border-radius:8px;padding:5px 10px;cursor:pointer}
.gs-btn:hover,.gs-btn:focus-visible{border-color:var(--gs-accent)}
.gs-btn.gs-primary{background:var(--gs-accent);border-color:var(--gs-accent);color:#fff;text-decoration:none;display:inline-block}
.gs-actions{display:flex;flex-wrap:wrap;gap:8px}
.gs-hint{border-left:3px solid var(--gs-warn);padding:4px 8px;margin-top:6px}
.gs-finish{border:1px solid var(--gs-ok);border-radius:10px;padding:10px}
.gs-finish ul{margin:6px 0;padding-inline-start:18px}
.gs-edit textarea{width:100%;min-height:90px;font:12px var(--gs-mono);background:var(--gs-bg);color:var(--gs-text);border:1px solid var(--gs-line);border-radius:6px}
@media (max-width:860px){.gs-player{grid-template-columns:1fr}.gs-side{order:-1}}
@media (max-width:520px){.gs-player{padding:10px}.gs-places th:last-child,.gs-state{display:none}.gs-places td,.gs-places th{padding:4px 3px}}
@media (prefers-reduced-motion:reduce){.gs-node,.gs-label,.gs-edge{transition:none}}

/* Inherits the real website theme, font, cards, buttons and layout. */
.gs-site-school{max-width:1240px}.gs-site-hero{padding-block:24px 36px;max-width:900px}.gs-site-hero .lede{max-width:760px}.gs-site-curriculum{margin-block:28px}.gs-site-lesson-card{display:flex;flex-direction:column;gap:12px}.gs-site-lesson-card h2{font-size:1.3rem;margin:0}.gs-site-lesson-card p{margin:0}.gs-site-thumbnail{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:12px}.gs-site-card-actions{display:flex;align-items:center;flex-wrap:wrap;gap:16px;margin-block-start:12px}.gs-site-note{color:var(--color-text-muted);font-size:.93rem;max-width:88ch}.gs-site-lab,.gs-site-exercise{margin-block:28px;scroll-margin-top:110px}.gs-site-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-block:20px}.gs-site-toolbar select{color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;padding:10px 14px;font:inherit;max-width:100%}.gs-site-reference{margin-block:20px}.gs-site-reference summary{cursor:pointer;font-weight:600;color:var(--color-accent)}.gs-site-fluxgit{border-block-start:1px solid var(--color-border);padding-block-start:16px;margin-block-start:20px}.gs-site-exercise h3{font-size:1.2rem}.gs-site-section-heading h2{margin-block-start:8px}.gs-site-lab button:disabled,.gs-site-exercise button:disabled{opacity:.65}.gs-site-lab button[hidden],.gs-site-exercise button[hidden]{display:none}
/* Higher specificity than the package's OS-colour fallback: the website selector wins. */
html body .gs-player.gs-player{--gs-bg:var(--color-surface);--gs-panel:var(--color-surface-muted);--gs-line:var(--color-border);--gs-text:var(--color-text);--gs-muted:var(--color-text-muted);--gs-accent:var(--color-accent);--gs-ok:var(--color-success);--gs-warn:var(--color-warning);--gs-bad:var(--color-danger);font:inherit;border-radius:16px;padding:18px;gap:16px;margin-block:20px;grid-template-columns:minmax(0,1fr) minmax(250px,300px)}
html .gs-player .gs-node text.gs-msg,html .gs-player .gs-label text,html .gs-player .gs-state{font-family:inherit}html .gs-player .gs-box{border-radius:12px;padding:12px 14px}html .gs-player .gs-btn{border-radius:10px;padding:8px 12px}html .gs-player .gs-btn.gs-primary{color:var(--color-bg-deep);font-weight:700}.gs-player .gs-graph svg,.gs-player .gs-out,.gs-player .gs-prompt,.gs-player .gs-places table,.gs-player .gs-edit textarea{direction:ltr;unicode-bidi:isolate;text-align:start}.gs-player .gs-chips{direction:ltr}.gs-player .gs-prompt input{min-width:0}.gs-player .gs-hint{border-left:0;border-inline-start:3px solid var(--gs-warn)}.gs-player .gs-places th{text-align:start}.gs-player .gs-finish ul{padding-inline-start:20px}.gs-site-school :focus-visible,.gs-site-exercise :focus-visible{outline:2px solid var(--color-accent);outline-offset:4px}
@media(max-width:1000px){html body .gs-player.gs-player{grid-template-columns:1fr}.gs-player .gs-side{order:-1}}@media(max-width:520px){html body .gs-player.gs-player{padding:12px;font-size:14px}.gs-site-toolbar{align-items:stretch;flex-direction:column}.gs-site-card-actions{align-items:flex-start;flex-direction:column;gap:12px}}
@media(prefers-reduced-motion:reduce){.gs-site-school *{scroll-behavior:auto!important}}

html body .gs-player.gs-player.gs-colorblind{--gs-ok:#1f77b4;--gs-bad:#ff7f0e;--gs-warn:#ff7f0e}
