.agens-graph-map,.agens-progress-tree{display:block;color:var(--agens-text)}.agens-graph-toolbar{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin-bottom:.5rem}.agens-graph-search{flex:1 1 12rem;min-width:8rem;padding:.4rem .6rem;border:1px solid var(--agens-border-strong);border-radius:.5rem;background:var(--agens-bg);color:var(--agens-text);font:inherit}.agens-graph-btn{min-width:2.25rem;min-height:2.25rem;padding:0 .6rem;border:1px solid var(--agens-border-strong);border-radius:.5rem;background:var(--agens-surface);color:var(--agens-text);font:inherit;cursor:pointer;line-height:1}.agens-graph-btn:hover{background:var(--agens-elevated)}.agens-graph-btn.is-active{border-color:var(--agens-accent);color:var(--agens-accent)}.agens-graph-viewport{position:relative;overflow:auto;border:1px solid var(--agens-border);border-radius:.75rem;background:radial-gradient(circle at 1px 1px,var(--agens-border) 1px,transparent 0) 0 0 / 22px 22px,var(--agens-surface);-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y}.agens-graph-canvas{position:relative;transform-origin:0 0;margin:1.25rem}.agens-graph-edges,.agens-graph-areas{position:absolute;inset:0;overflow:visible;pointer-events:none}.agens-graph-area-rect{fill-opacity:.07;stroke-opacity:.28;stroke-width:1}.agens-graph-area-rect--outer{fill-opacity:.04;stroke-opacity:.42;stroke-width:1.5}.agens-graph-area-label{font-size:.78rem;font-weight:600;opacity:.8;letter-spacing:.02em}.agens-graph-area-label--family{font-size:.88rem;font-weight:700;opacity:.9;letter-spacing:.04em;text-transform:uppercase}.agens-graph-domain-label{font-size:.6rem;font-weight:600;opacity:.65;letter-spacing:.01em}@media(prefers-color-scheme:dark){.agens-graph-area-rect{fill-opacity:.13;stroke-opacity:.32}}.agens-graph-node{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:.4rem;box-sizing:border-box;padding:.55rem .5rem .5rem;border:2px solid color-mix(in srgb,var(--graph-colour, var(--agens-accent)) 30%,var(--agens-border));border-radius:.7rem;background:var(--agens-bg);color:var(--agens-text);font:inherit;font-size:.72rem;text-align:center;text-decoration:none;cursor:pointer;box-shadow:0 1px 2px #0f172a14;transition:opacity .15s ease,transform .15s ease,box-shadow .15s ease}.agens-graph-node:hover{box-shadow:0 2px 8px #0f172a29}.agens-graph-node.is-dim{opacity:.28}.agens-graph-node.is-focus{box-shadow:0 0 0 3px color-mix(in srgb,var(--graph-colour, var(--agens-accent)) 45%,transparent);transform:translateY(-1px)}.agens-graph-node.is-wip{border-style:dashed}.agens-graph-node.is-loading{opacity:.6;cursor:progress}.agens-graph-status{padding:1.5rem 1rem;text-align:center;color:var(--agens-text-muted);font-size:.95rem}.agens-graph-node.is-selected{background:color-mix(in srgb,var(--graph-colour, var(--agens-accent)) 22%,var(--agens-surface, transparent));box-shadow:0 0 0 3px var(--graph-colour, var(--agens-accent))}.agens-graph-node.is-selected:after{content:"✓";position:absolute;top:4px;right:6px;font-size:.85rem;font-weight:700;color:var(--graph-colour, var(--agens-accent))}.agens-graph-btn.agens-graph-assess-confirm{margin-left:auto;font-weight:600;background:var(--agens-accent);color:var(--agens-on-accent, #fff)}.agens-graph-label{overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.2;width:100%}.agens-graph-icon{flex:0 0 auto;width:2.9rem;height:2.9rem;display:flex;align-items:center;justify-content:center}.agens-graph-icon-img{width:100%;height:100%;object-fit:contain;border-radius:.4rem;display:block}.agens-graph-icon-ph{width:100%;height:100%;display:flex;align-items:center;justify-content:center;border-radius:.5rem;font-size:1.35rem;font-weight:700;line-height:1;color:#fff;background:var(--graph-colour, var(--agens-accent));box-shadow:inset 0 -2px 4px #0f172a38,inset 0 1px 2px #ffffff47}.agens-graph-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.agens-graph-map--compact .agens-graph-canvas{margin:.375rem}.agens-graph-map--compact .agens-graph-node{gap:.3rem;padding:.4rem .3rem .35rem;font-size:.64rem}.agens-graph-map--compact .agens-graph-icon{width:2.4rem;height:2.4rem}.agens-graph-map--compact .agens-graph-icon-ph{font-size:1.1rem}.agens-graph-node.state-mastered{border-color:#16a34a;border-style:solid;background:color-mix(in srgb,#16a34a 10%,var(--agens-bg))}.agens-graph-node.state-available{border-color:var(--agens-accent);border-style:solid;border-width:3px;box-shadow:0 0 0 3px color-mix(in srgb,var(--agens-accent) 32%,transparent);animation:agens-graph-ring-pulse 1.8s ease-in-out infinite}.agens-graph-node.state-locked{border-color:var(--agens-border-strong);border-style:dashed;color:var(--agens-text-muted);opacity:.7}@keyframes agens-graph-ring-pulse{0%,to{box-shadow:0 0 0 3px color-mix(in srgb,var(--agens-accent) 36%,transparent)}50%{box-shadow:0 0 0 3px color-mix(in srgb,var(--agens-accent) 10%,transparent)}}@media(prefers-reduced-motion:reduce){.agens-graph-node.state-available{animation:none}}.agens-route{--agens-route-gutter: 2.5em;--agens-route-rail-w: .34em;--agens-route-dot: 1.55em;padding:.25em .9em 1.2em 0;font-size:1rem;line-height:1.35;color:var(--agens-text);max-width:64em}.agens-route-viewport{overflow-x:hidden;background:var(--agens-surface)}.agens-route-row{position:relative;padding-left:var(--agens-route-gutter)}.agens-route-rail{position:absolute;top:0;bottom:0;left:calc(var(--agens-route-gutter) / 2 - var(--agens-route-rail-w) / 2);width:var(--agens-route-rail-w);background:var(--graph-colour, var(--agens-accent));opacity:.3}.agens-route-station.is-travelled>.agens-route-rail,.agens-route-zone.is-travelled>.agens-route-rail{opacity:.95}.agens-route-terminus>.agens-route-rail{bottom:auto;height:1.1em;opacity:.3}.agens-route-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5em;padding:.5em 0 .7em var(--agens-route-gutter)}.agens-route-line-name{font-size:1.05em;font-weight:700;letter-spacing:.01em;color:var(--graph-colour, var(--agens-accent))}.agens-route-line-meta{font-size:.8em;color:var(--agens-text-muted)}.agens-route-zone{padding-top:1.1em;padding-bottom:.35em}.agens-route-zone-label{display:inline-block;font-size:.9em;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--agens-text);padding:.1em .5em .1em 0}.agens-route-section{padding-top:.55em;padding-bottom:.2em}.agens-route-section-label{font-size:.72em;font-weight:600;letter-spacing:.02em;color:var(--agens-text-muted)}.agens-route-station{padding-top:.3em;padding-bottom:.55em}.agens-route-dot{position:absolute;top:.42em;left:calc(var(--agens-route-gutter) / 2 - var(--agens-route-dot) / 2);width:var(--agens-route-dot);height:var(--agens-route-dot);display:flex;align-items:center;justify-content:center;box-sizing:border-box;border-radius:50%;border:.15em solid var(--graph-colour, var(--agens-accent));background:var(--agens-bg);color:var(--agens-text-muted)}.agens-route-dot-n{font-size:.7em;font-weight:700;font-variant-numeric:tabular-nums;line-height:1}.agens-route-station.is-travelled .agens-route-dot{background:var(--graph-colour, var(--agens-accent));color:var(--agens-on-accent, #fff)}.agens-route-station.state-mastered .agens-route-dot{border-color:#16a34a;background:#16a34a;color:#fff}.agens-route-station.is-here .agens-route-dot{border-color:var(--agens-accent);border-width:.2em;background:var(--agens-bg);color:var(--agens-accent);box-shadow:0 0 0 .22em color-mix(in srgb,var(--agens-accent) 30%,transparent);animation:agens-graph-ring-pulse 1.8s ease-in-out infinite}.agens-route-here{margin-left:.5em;padding:.05em .45em;border-radius:.7em;background:var(--agens-accent);color:var(--agens-on-accent, #fff);font-size:.62em;font-weight:700;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;vertical-align:middle}.agens-route .agens-graph-node{position:relative;left:auto;top:auto;width:auto;min-height:0;display:block;text-align:left;box-shadow:none}.agens-route .agens-graph-label{display:block;-webkit-line-clamp:none;overflow:visible;width:auto;white-space:normal;overflow-wrap:break-word}.agens-route-thema{padding:.3em .55em;border:none;border-radius:.45em;background:transparent;font-size:.95em;font-weight:600;line-height:1.25}.agens-route-thema:hover{background:color-mix(in srgb,var(--graph-colour, var(--agens-accent)) 10%,transparent)}.agens-route .agens-graph-node.state-locked{color:var(--agens-text);opacity:1}.agens-route-thema.state-locked{border-style:none}.agens-route-thema.state-mastered{background:transparent;color:var(--agens-text-muted)}.agens-route-thema.state-available{border:none;box-shadow:none;animation:none;color:var(--agens-text)}.agens-route .agens-graph-node.is-focus{box-shadow:0 0 0 2px color-mix(in srgb,var(--graph-colour, var(--agens-accent)) 55%,transparent);transform:none}.agens-route-stops{display:flex;flex-wrap:wrap;gap:.3em;margin:.35em 0 0 .55em}.agens-route-stop{flex:0 1 auto;max-width:100%;padding:.22em .6em;border:1px solid var(--agens-border);border-radius:.9em;background:var(--agens-surface, var(--agens-bg));font-size:.76em;line-height:1.25}.agens-route-stop:hover{border-color:var(--graph-colour, var(--agens-accent))}.agens-route-stop.state-locked{border-style:solid;border-color:var(--agens-border-strong, var(--agens-border))}.agens-route-stop.state-mastered{border-color:#16a34a;background:color-mix(in srgb,#16a34a 12%,var(--agens-bg));color:var(--agens-text-muted)}.agens-route-stop.state-mastered .agens-graph-label:before{content:"✓ ";color:#16a34a;font-weight:700}.agens-route-stop.state-available{border-color:var(--agens-accent);border-width:2px;padding:calc(.22em - 1px) calc(.6em - 1px);font-weight:600;box-shadow:none;animation:none}.agens-route-stop.is-wip{border-style:dashed}.agens-route-gates{display:flex;flex-wrap:wrap;align-items:baseline;gap:.3em;margin:.25em 0 0 .55em;font-size:.72em}.agens-route-gate-lead{color:var(--agens-text-muted)}.agens-route-gate{padding:.15em .5em;border:1px solid color-mix(in srgb,var(--graph-colour, var(--agens-accent)) 45%,var(--agens-border));border-radius:.8em;background:transparent;color:var(--agens-text);font:inherit;cursor:pointer}.agens-route-gate:hover{background:color-mix(in srgb,var(--graph-colour, var(--agens-accent)) 12%,transparent)}.agens-route-gate.is-ahead{border-color:var(--agens-color-amber, #f59e0b);border-style:dashed}.agens-route-terminus{padding-top:.5em}.agens-route-cap{position:absolute;top:1em;left:calc(var(--agens-route-gutter) / 2 - .55em);width:1.1em;height:var(--agens-route-rail-w);border-radius:var(--agens-route-rail-w);background:var(--graph-colour, var(--agens-accent));opacity:.75}.agens-route-terminus-label{display:inline-block;padding-top:.7em;font-size:.8em;font-weight:600;color:var(--agens-text-muted)}@media(prefers-reduced-motion:reduce){.agens-route-station.is-here .agens-route-dot{animation:none}}@media(prefers-color-scheme:dark){.agens-route-rail{opacity:.34}.agens-route-station.is-travelled>.agens-route-rail{opacity:.9}}.agens-progress-tree{--agens-strip-line-w: 4px;--agens-strip-track-x: calc(.4rem + .55rem)}.agens-strip{display:flex;flex-direction:column;max-width:32rem;padding:.25rem 0}.agens-progress-tree .agens-strip .agens-graph-node{position:relative;flex-direction:row;align-items:center;justify-content:flex-start;gap:.6rem;padding:.45rem .5rem .45rem .4rem;border:2px solid transparent;background:none;box-shadow:none;text-align:left;font-size:.8rem}.agens-progress-tree .agens-strip .agens-graph-node:hover{box-shadow:none;background:color-mix(in srgb,var(--agens-accent) 6%,transparent);border-radius:.6rem}.agens-progress-tree .agens-strip .agens-graph-node.state-mastered{border-color:transparent;background:none}.agens-progress-tree .agens-strip .agens-graph-node.state-mastered .agens-graph-label{color:var(--agens-text-muted)}.agens-progress-tree .agens-strip .agens-graph-node.state-available{border-radius:.7rem;background:color-mix(in srgb,var(--agens-accent) 8%,transparent)}.agens-progress-tree .agens-strip .agens-graph-node.state-locked{border-color:transparent;background:none}.agens-strip-station:before,.agens-strip-station:after{content:"";position:absolute;left:calc(var(--agens-strip-track-x) - var(--agens-strip-line-w) / 2);width:var(--agens-strip-line-w);background:color-mix(in srgb,var(--agens-accent) 22%,var(--agens-bg))}.agens-strip-station:before{top:0;height:calc(50% - .6rem)}.agens-strip-station:after{bottom:0;height:calc(50% - .6rem)}.agens-strip-station.is-in:before,.agens-strip-station.is-out:after{background:var(--agens-accent)}.agens-strip-station.is-first:before,.agens-strip-station.is-last:after{display:none}.agens-strip-marker{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:1.1rem;height:1.1rem;box-sizing:border-box;border-radius:999px;border:3px solid color-mix(in srgb,var(--agens-accent) 45%,var(--agens-border));background:var(--agens-bg);color:#fff;font-size:.62rem;font-weight:700;line-height:1;z-index:1}.agens-strip-station.state-mastered .agens-strip-marker{border-color:#16a34a;background:#16a34a}.agens-strip-station.state-available .agens-strip-marker{border-color:var(--agens-accent);background:var(--agens-bg)}.agens-strip-station.state-locked .agens-strip-marker{border-color:var(--agens-border);border-style:dashed;background:var(--agens-bg)}.agens-strip-body{display:inline-flex;align-items:center;gap:.5rem;min-width:0}.agens-strip-here{flex:0 0 auto;padding:.12rem .55rem;border-radius:999px;background:var(--agens-accent);color:#fff;font-size:.62rem;font-weight:700;white-space:nowrap}.agens-strip-zone{position:relative;padding:.55rem 0 .25rem calc(var(--agens-strip-track-x) + .85rem);font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--agens-text-muted)}.agens-strip-zone:before{content:"";position:absolute;left:calc(var(--agens-strip-track-x) - var(--agens-strip-line-w) / 2);top:0;bottom:0;width:var(--agens-strip-line-w);background:color-mix(in srgb,var(--agens-accent) 22%,var(--agens-bg))}.agens-strip-zone.is-filled:before{background:var(--agens-accent)}.agens-strip-terminus{width:1.5rem;height:var(--agens-strip-line-w);margin-left:calc(var(--agens-strip-track-x) - .75rem);border-radius:999px;background:var(--agens-accent)}.agens-graph-legend{display:flex;flex-wrap:wrap;gap:.35rem 1rem;margin:.35rem 0 .5rem;font-size:.78rem;color:var(--agens-text-muted)}.agens-graph-legend-item{display:inline-flex;align-items:center;gap:.4rem}.agens-graph-legend-swatch{width:.85rem;height:.85rem;border-radius:.25rem;border:2px solid var(--agens-border-strong);background:var(--agens-surface)}.agens-graph-legend-swatch.state-mastered{border-color:#16a34a;background:color-mix(in srgb,#16a34a 14%,var(--agens-bg))}.agens-graph-legend-swatch.state-available{border-color:var(--agens-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--agens-accent) 32%,transparent)}.agens-graph-legend-swatch.state-locked{border-style:dashed;opacity:.7}.agens-graph-detail{display:flex;flex-direction:column;gap:.35rem;margin:.5rem 0 .75rem;padding:.6rem .75rem;border:1px solid var(--agens-border);border-radius:.6rem;background:var(--agens-surface)}.agens-graph-detail-head{display:flex;gap:.75rem;align-items:baseline;justify-content:space-between}.agens-graph-detail-title{font-size:.95rem}.agens-graph-detail-close{flex:none;border:none;background:transparent;color:var(--agens-text-muted);font-size:1.1rem;line-height:1;padding:.1rem .3rem;margin:-.1rem -.2rem -.1rem 0;border-radius:.3rem;cursor:pointer}.agens-graph-detail-close:hover{background:var(--agens-elevated);color:var(--agens-text)}.agens-graph-detail-desc{margin:0;font-size:.85rem;line-height:1.4;color:var(--agens-text)}.agens-graph-detail-meta{font-size:.78rem;color:var(--agens-text-muted)}.agens-graph-detail-collapse{align-self:flex-start;border:1px solid var(--agens-border);background:transparent;color:var(--agens-text-muted);font:inherit;font-size:.8rem;padding:.2rem .5rem;border-radius:.4rem;cursor:pointer}.agens-graph-detail-collapse:hover{background:var(--agens-elevated);color:var(--agens-text)}.agens-graph-detail-link{color:var(--agens-accent);text-decoration:none;white-space:nowrap;align-self:flex-start}.agens-graph-detail-link:hover{text-decoration:underline}.agens-graph-portal{position:absolute;top:-7px;right:-7px;min-width:1.05rem;height:1.05rem;box-sizing:border-box;padding:0 .2rem;display:flex;align-items:center;justify-content:center;border-radius:999px;background:var(--agens-accent);color:#fff;font-size:.68rem;line-height:1;box-shadow:0 1px 2px #0f172a4d;pointer-events:none}.agens-graph-crosslinks{display:flex;flex-direction:column;gap:.2rem;margin-top:.35rem}.agens-graph-crosslink{font-size:.8rem;color:var(--graph-colour, var(--agens-accent));text-decoration:none;align-self:flex-start}.agens-graph-crosslink:hover{text-decoration:underline}.agens-graph-summary{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.6rem}.agens-graph-summary-title{font-size:.95rem}.agens-graph-bar{height:.5rem;border-radius:.25rem;background:var(--agens-elevated);overflow:hidden}.agens-graph-bar-fill{height:100%;background:#16a34a;border-radius:.25rem;transition:width .3s ease}.agens-graph-summary-label{font-size:.78rem;color:var(--agens-text-muted)}:root[data-theme=dark] .agens-graph-map{--agens-text-muted: #b4c0d4}:root[data-theme=dark] .agens-graph-area-label{opacity:.95}:root[data-theme=dark] .agens-graph-domain-label{opacity:.85}:root[data-theme=dark] .agens-graph-area-label--family{opacity:1}:root[data-theme=dark] .agens-graph-node.state-locked{opacity:.85}@media(prefers-color-scheme:dark){:root:not([data-theme]) .agens-graph-map{--agens-text-muted: #b4c0d4}:root:not([data-theme]) .agens-graph-area-label{opacity:.95}:root:not([data-theme]) .agens-graph-domain-label{opacity:.85}:root:not([data-theme]) .agens-graph-area-label--family{opacity:1}:root:not([data-theme]) .agens-graph-node.state-locked{opacity:.85}}
