:root{--edge-hier:color-mix(in srgb,var(--color-accent) 42%,var(--color-bg));--edge-link:color-mix(in srgb,var(--color-text) 46%,var(--color-bg));--edge-rel:var(--color-border-strong);--edge-hl:var(--color-accent);--node-ring:var(--color-bg);--grid:color-mix(in srgb,var(--color-text) 10%,var(--color-bg))}.minitree{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 0;overflow:hidden;background:var(--color-bg-sunken);border-right:var(--rule-hair) solid var(--color-border)}.minitree .sq{width:34px;height:34px;background:var(--color-text);color:var(--color-bg);place-items:center;font-family:var(--font-display);font-weight:var(--weight-strong);font-size:var(--text-ui);margin-bottom:6px}.minitree .ico,.minitree .sq{border-radius:var(--radius-md);display:grid}.minitree .ico{width:36px;height:36px;place-items:center;color:var(--color-text-muted);position:relative;cursor:pointer}.minitree .ico svg{width:18px;height:18px}.minitree .ico:hover{background:var(--color-surface-hover);color:var(--color-text)}.minitree .ico.active{background:var(--color-accent-wash);color:var(--color-accent)}.minitree .sep{width:24px;height:var(--rule-hair);background:var(--color-border);margin:2px 0}.minitree .dotm{width:9px;height:9px;border-radius:50%;border:2px solid var(--node-ring)}.stage{flex-direction:column;min-width:0;overflow:hidden}.filterbar,.stage{display:flex;background:var(--color-bg)}.filterbar{align-items:center;gap:var(--space-4);flex-wrap:wrap;padding:var(--space-3) var(--space-5);border-bottom:var(--rule-hair) solid var(--color-border)}.fsearch{display:flex;align-items:center;gap:var(--space-2);height:34px;width:min(240px,28vw);padding:0 var(--space-3);background:var(--panel-2);border:var(--rule-hair) solid transparent;border-radius:var(--radius-md);color:var(--color-text-muted)}.fsearch:focus-within{background:var(--color-bg);border-color:var(--color-border-strong)}.fsearch svg{width:15px;height:15px;flex:none}.fsearch input{border:0;background:transparent;color:var(--color-text);font:inherit;font-size:var(--text-sm);width:100%}.fsearch input::placeholder{color:var(--color-text-muted)}.fsel{display:flex;align-items:center;gap:6px;font-size:var(--text-xs);font-weight:var(--weight-strong);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.fsel select{font:inherit;font-size:var(--text-sm);font-weight:var(--weight-display);text-transform:none;letter-spacing:0;color:var(--color-text);background:var(--color-bg);border:var(--rule-hair) solid var(--color-border-strong);border-radius:var(--radius-md);padding:5px var(--space-2);cursor:pointer}.fsel select:focus{border-color:var(--color-accent-line)}.fdiv{width:var(--rule-hair);align-self:stretch;background:var(--color-border);margin:2px 0}.filterbar .grow{flex:1 1}.etoggles{display:flex;align-items:center;gap:6px}.etoggle{cursor:pointer;height:32px;color:var(--link);background:var(--color-accent-wash);border-color:var(--color-accent-line)}.etoggle:hover{border-color:var(--color-accent)}.etoggle svg{width:26px;height:8px;overflow:visible;flex:none}.etoggle[aria-pressed=false]{color:var(--color-text-muted);background:var(--color-bg);border-color:var(--color-border-strong);opacity:.55;text-decoration:line-through;text-decoration-thickness:var(--rule-hair)}.etoggle[aria-pressed=false] svg{opacity:.4}.etoggle .chk{width:13px;height:13px;border-radius:var(--radius-md);border:1.5px solid var(--color-border-strong);display:grid;place-items:center;flex:none}.etoggle[aria-pressed=true] .chk{background:var(--color-accent);border-color:var(--color-accent)}.etoggle[aria-pressed=true] .chk:after{content:"";width:6px;height:3px;border-left:1.6px solid var(--color-accent-contrast);border-bottom:1.6px solid var(--color-accent-contrast);transform:translateY(-1px) rotate(-45deg)}.depth{display:flex;align-items:center;gap:10px;font-size:var(--text-sm);font-weight:var(--weight-text);color:var(--color-text-muted)}.depth input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:120px;height:4px;border-radius:var(--radius-pill);background:linear-gradient(90deg,var(--color-accent) 0 66%,var(--color-border-strong) 66%)}.depth input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:15px;height:15px;border-radius:50%;background:var(--color-bg);border:2px solid var(--color-accent);box-shadow:var(--shadow-sm);cursor:pointer}.depth input[type=range]::-moz-range-thumb{width:15px;height:15px;border-radius:50%;background:var(--color-bg);border:2px solid var(--color-accent);cursor:pointer}.depth .dval{min-width:26px;height:26px;display:grid;place-items:center;font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--weight-display);color:var(--color-text);background:var(--panel-2);border:0;border-radius:var(--radius-lg);padding:0 6px;line-height:1}.canvas{position:relative;flex:1 1;min-height:0;background:radial-gradient(circle at 1px 1px,var(--grid) 1px,transparent 0) 0 0/24px 24px,var(--color-bg-sunken);overflow:hidden}.graph{position:absolute;inset:0;width:100%;height:100%;display:block}.edges line{vector-effect:non-scaling-stroke;stroke-linecap:round}.e-hier line{stroke:var(--edge-hier);stroke-width:2}.e-link line{stroke:var(--edge-link);stroke-width:2}.e-rel line{stroke:var(--edge-rel);stroke-width:1.6;stroke-dasharray:5 5}.edges line.hl{stroke:var(--edge-hl);stroke-width:2.4}.graph.hide-hier .e-hier,.graph.hide-link .e-link,.graph.hide-rel .e-rel{display:none}.elbl rect{fill:var(--color-bg);opacity:.92}.elbl text{font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:var(--weight-display);fill:var(--edge-rel);text-anchor:middle;letter-spacing:.01em}.node{cursor:pointer}.node .dot{stroke:var(--node-ring);stroke-width:8;stroke-linejoin:round;transition:stroke .12s}.lbl-wrap{pointer-events:none}.lbl-bg{fill:var(--color-bg);opacity:.85}.node .lbl{font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--weight-display);fill:var(--color-text);text-anchor:middle;paint-order:stroke;stroke:var(--color-bg-sunken);stroke-width:3.4px;stroke-linejoin:round}.n-working .dot{fill:var(--color-status-working);stroke:var(--color-status-working-wash)}.n-review .dot{fill:var(--color-status-review);stroke:var(--rev-bg)}.n-released .dot{fill:var(--color-status-released);stroke:var(--rel-bg)}.n-archived .dot{fill:var(--color-status-archived);stroke:var(--panel-2)}.n-archived{opacity:.6}.is-hub .lbl{font-weight:var(--weight-strong)}.is-selected .halo,.node:focus .dot,.node:hover .dot{stroke:var(--color-accent)}.is-selected .halo{fill:none;stroke-width:3}.is-selected .dot{stroke:var(--color-bg);stroke-width:10}.is-selected .lbl{font-family:var(--font-display);font-size:var(--text-sm);font-weight:var(--weight-strong);fill:var(--color-text)}.node.dim{opacity:.32}.edges line.hidden,.elbl.hidden,.node.hidden{display:none}.legend{position:absolute;left:20px;bottom:20px;display:flex;gap:36px;max-width:calc(100% - 40px)}.legend h5{margin:0 0 var(--space-2);font-size:var(--text-2xs);font-weight:var(--weight-display);letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted)}.legend .col{display:flex;flex-direction:column;gap:5px}.lrow{display:flex;align-items:center;gap:9px;font-size:var(--text-sm);font-weight:var(--weight-text);color:var(--color-text);white-space:nowrap}.lrow .sw{width:13px;height:13px;border:0;flex:none;overflow:visible}.sw.s-working{fill:var(--color-status-working)}.sw.s-review{fill:var(--color-status-review)}.sw.s-released{fill:var(--color-status-released)}.sw.s-archived{fill:var(--color-status-archived)}.lrow svg{width:30px;height:10px;overflow:visible;flex:none}.lrow .muted{color:var(--color-text-muted);font-weight:var(--weight-medium);font-family:var(--font-mono);font-size:var(--text-2xs)}.canvas .pop{position:absolute;left:48.5%;top:30%;width:296px;max-height:calc(100% - 2 * var(--space-3));overflow:auto;padding:0;z-index:5;border-color:var(--color-border-strong);box-shadow:var(--shadow-md)}.canvas .pop:before{content:"";position:absolute;left:-7px;top:78px;width:12px;height:12px;background:var(--color-bg);border-left:var(--rule-hair) solid var(--color-border-strong);border-bottom:var(--rule-hair) solid var(--color-border-strong);transform:rotate(45deg)}.canvas .pop .ph{display:flex;align-items:flex-start;gap:var(--space-2);padding:var(--space-3) var(--space-3) var(--space-2);font-size:inherit;font-weight:inherit;letter-spacing:normal;text-transform:none;color:inherit}.canvas .pop .ph .t{font-family:var(--font-display);font-size:var(--text-md);font-weight:var(--weight-strong);letter-spacing:-.01em;line-height:1.2}.canvas .pop .ph .t small{display:block;font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--weight-text);color:var(--color-text-muted);margin-top:2px}.canvas .pop .ph .x{position:relative;margin-left:auto;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;background:transparent;color:var(--color-text-muted);cursor:pointer;line-height:1}.canvas .pop .ph .x:after{content:"";position:absolute;top:50%;left:50%;translate:-50% -50%;width:var(--control-h);height:var(--control-h)}.canvas .pop .ph .x:hover{color:var(--color-text)}.canvas .pop .ph .x svg{width:15px;height:15px}.canvas .pop .prow{padding:0 var(--space-3);margin-bottom:var(--space-2)}.canvas .pop .ptags{display:flex;flex-wrap:wrap;gap:5px;padding:0 var(--space-3) var(--space-2)}.canvas .pop .pmeta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:0;border-top:var(--rule-hair) solid var(--color-border-hair);background:var(--panel-2);font-size:var(--text-2xs)}.canvas .pop .pmeta div{display:flex;flex-direction:column;gap:1px;min-width:0;padding:11px var(--space-3);border-right:var(--rule-hair) solid var(--color-border-hair)}.canvas .pop .pmeta div:last-child{border-right:0}.canvas .pop .pmeta span{color:var(--color-text-muted)}.canvas .pop .pmeta b{font-family:var(--font-display);font-size:var(--text-sm);font-weight:var(--weight-strong)}.canvas .pop .pmeta div:last-child b{font-size:var(--text-xs)}.canvas .pop .pact{display:flex;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-top:var(--rule-hair) solid var(--color-border-hair)}.pact .btn{flex:1 1}@media (max-width:720px){.canvas .pop{position:fixed;left:var(--space-3);right:var(--space-3);bottom:var(--space-3);top:auto;width:auto;max-width:calc(100% - (var(--space-3) * 2));margin:0;border-radius:var(--radius-lg) var(--radius-lg) 0 0}.canvas .pop:before{display:none}}.canvas .hint{position:absolute;right:20px;top:20px;font-size:var(--text-sm);color:color-mix(in srgb,var(--color-text) 56%,var(--color-text-muted));background:var(--color-bg);border:var(--rule-hair) solid var(--color-border-strong);border-radius:var(--radius-pill);padding:var(--space-2) var(--space-4);box-shadow:var(--shadow-sm)}.canvas .hint b{color:var(--color-text);font-weight:var(--weight-strong)}.phone-bar,.phone-scrim{display:none}@media (max-width:699px) and (pointer:coarse){:root{--phone-bar-h:calc(var(--control-h) + var(--space-2))}.shell{grid-template-columns:minmax(0,1fr);height:calc(100dvh - 56px - var(--phone-bar-h) - env(safe-area-inset-bottom))}.shell>.main{grid-column:1}.shell>.pane-edge{display:none}:root:not([data-nav=off]):not([data-rail=off]) .shell>.rail,:root:not([data-nav=off]):not([data-rail=off]) .shell>.tree,:root:not([data-nav]) .shell>.tree,:root:not([data-rail]) .shell>.rail,:root[data-nav] .shell>.tree,:root[data-rail] .shell>.rail{display:block;position:fixed;z-index:40;left:0;right:0;bottom:calc(var(--phone-bar-h) + env(safe-area-inset-bottom));width:auto;max-height:75dvh;overflow-y:auto;overscroll-behavior:contain;border:0;border-top:var(--rule-hair) solid var(--color-border);border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:var(--shadow-md);background:var(--color-bg);transform:translateY(calc(100% + var(--phone-bar-h)));visibility:hidden;transition:transform .2s ease,visibility 0s linear .2s}:root[data-sheet=info] .shell>.rail,:root[data-sheet=nav] .shell>.tree,:root[data-sheet=toc] .shell>.rail{transform:none;visibility:visible;transition:transform .2s ease}@media (prefers-reduced-motion:reduce){:root .shell>.rail,:root .shell>.tree{transition:none}}:root[data-sheet=info] .rail .rp-toc,:root[data-sheet=toc] .rail .rp:not(.rp-toc){display:none}:root[data-sheet] .phone-scrim{display:block;position:fixed;inset:0;z-index:35;border:0;background:var(--color-scrim)}.phone-bar{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;z-index:45;left:0;right:0;bottom:0;padding-bottom:env(safe-area-inset-bottom);background:var(--color-bg);border-top:var(--rule-hair) solid var(--color-border)}.phone-bar button{min-height:var(--phone-bar-h);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-1);border:0;background:none;color:var(--color-text);font:inherit;font-size:var(--text-xs)}.phone-bar .glyph{font-size:var(--text-md);line-height:1}.phone-bar button[aria-expanded=true]{color:var(--color-accent);font-weight:var(--weight-strong)}.phone-bar button:disabled{color:var(--color-text-muted);opacity:.5}}.bild-vollbild{width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:var(--color-bg);color:var(--color-text)}.bild-vollbild[open]{display:flex;flex-direction:column}.bild-vollbild-leiste{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2);padding-top:max(var(--space-2),env(safe-area-inset-top));border-bottom:var(--rule-hair) solid var(--color-border);font-size:var(--text-xs);color:var(--color-text-muted)}.bild-vollbild-leiste .grow{flex:1 1;min-width:0}.bild-vollbild-flaeche{flex:1 1;overflow:auto;overscroll-behavior:contain;touch-action:pan-x pan-y pinch-zoom;display:grid;place-items:center}.bild-vollbild-flaeche img{max-width:100%;max-height:100%;height:auto}.bild-vollbild-flaeche[data-original]{place-items:start}.bild-vollbild-flaeche[data-original] img{max-width:none;max-height:none}@media (pointer:coarse){:is(.brand-home,.search,.avatar,.crumbs a,.subbar-version,.etoggle,button.chip,a.chip){position:relative}:is(.brand-home,.search,.avatar,.crumbs a,.subbar-version,.etoggle,button.chip,a.chip):after{content:"";position:absolute;top:50%;left:50%;translate:-50% -50%;width:max(100%,var(--control-h));height:max(100%,var(--control-h))}.btn.small:after{min-width:var(--control-h)}:is(input:not([type=checkbox],[type=radio],[type=range],[type=color]),select){min-height:var(--control-h)}}