.playbook-root{--playbook-bg:#f8fafc;--playbook-ink:#0f172a;--playbook-muted:#64748b;--playbook-accent:#2563eb;--playbook-accent-hover:#1d4ed8;--playbook-card:#fff;--playbook-line:#e2e8f0;--playbook-font:"Segoe UI","PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:var(--playbook-bg);color:var(--playbook-ink);font-family:var(--playbook-font);-webkit-tap-highlight-color:transparent;touch-action:manipulation;min-height:100vh;font-size:16.5px;line-height:1.6}.playbook-root *{box-sizing:border-box}.playbook-root a{color:var(--playbook-accent);text-decoration:none}.playbook-root a:hover{color:var(--playbook-accent-hover);text-decoration:underline}.playbook-root a:focus-visible{outline:2px solid var(--playbook-accent);outline-offset:3px}.playbook-root .shell{max-width:1100px;padding:.75rem 1.25rem 3rem;padding-left:max(1.25rem,env(safe-area-inset-left));padding-right:max(1.25rem,env(safe-area-inset-right));margin:0 auto}.playbook-root .subnav{border-bottom:1px solid var(--playbook-line);flex-wrap:wrap;gap:.5rem 1rem;margin:0 0 1rem;padding:.5rem 0 .75rem;font-size:.9rem;display:flex}.playbook-root .subnav a{color:var(--playbook-ink);text-decoration:none}.playbook-root .subnav a:hover{color:var(--playbook-accent);text-decoration:none}.playbook-root .subnav a[aria-current=page]{color:var(--playbook-accent);font-weight:700}.playbook-root .sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.playbook-root .diagram-hero{background:var(--playbook-card);border:1px solid var(--playbook-line);border-radius:8px;margin:0 0 1.75rem;padding:.75rem 1rem 1rem}.playbook-root .diagram-hero-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 1rem;margin-bottom:.75rem;display:flex}.playbook-root .diagram-hero-head h2{color:var(--playbook-ink);margin:0;font-size:1.15rem;font-weight:700}.playbook-root .section-title{margin:0 0 .75rem;font-size:1.05rem;font-weight:700}.playbook-root .blurb{color:var(--playbook-muted);max-width:36em;margin:.35rem auto 0;font-size:.95rem}.playbook-root .diagram-caption{text-align:center;margin:.85rem 0 0}.playbook-root .diagram-caption h1,.playbook-root .diagram-caption h2,.playbook-root .diagram-figure{margin:0}.playbook-root .mermaid-wrap{cursor:zoom-in;justify-content:center;padding:.25rem 0;display:flex;overflow:visible}.playbook-root .mermaid-wrap svg{width:100%;max-width:100%;height:auto;display:block}.playbook-root .zoom-layer{z-index:80;background:#0f172ac7;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow:hidden}.playbook-root .zoom-close{color:#0f172a;cursor:pointer;background:#fff;border:0;border-radius:999px;width:2.5rem;height:2.5rem;font-size:1.5rem;line-height:1;position:absolute;top:1rem;right:1rem}.playbook-root .zoom-close:hover{background:#e2e8f0}.playbook-root .zoom-stage{transform-origin:50%;cursor:grab;touch-action:none;background:#fff;border-radius:8px;max-width:92vw;max-height:86vh;padding:1rem}.playbook-root .zoom-stage:active{cursor:grabbing}.playbook-root .zoom-stage svg{width:100%;max-width:none;height:auto;display:block}.playbook-root .btn:disabled{opacity:.45;cursor:default}.playbook-root .node-fold{color:var(--playbook-muted);margin-top:1.25rem;font-size:.9rem}.playbook-root .node-fold summary{cursor:pointer;margin-bottom:.5rem}.playbook-root .node-fold ul{margin:0;padding-left:1.25rem}.playbook-root .cta-row{flex-wrap:wrap;gap:.75rem 1rem;margin-bottom:1rem;display:flex}.playbook-root .btn{border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;padding:.65rem 1.15rem;font-size:.95rem;font-weight:600;text-decoration:none;transition:background-color .15s,color .15s,border-color .15s;display:inline-flex}.playbook-root .btn:disabled:hover{background:var(--playbook-card);color:var(--playbook-ink);border-color:var(--playbook-line)}.playbook-root .btn:focus-visible{outline:2px solid var(--playbook-accent);outline-offset:3px}.playbook-root .btn-primary{background:var(--playbook-accent);color:#fff}.playbook-root .btn-primary:hover{background:var(--playbook-accent-hover);color:#fff;text-decoration:none}.playbook-root .btn-secondary{background:var(--playbook-card);color:var(--playbook-ink);border-color:var(--playbook-line)}.playbook-root .btn-secondary:hover{border-color:var(--playbook-accent);color:var(--playbook-accent);text-decoration:none}.playbook-root .sublinks{color:var(--playbook-muted);flex-wrap:wrap;gap:.5rem 1rem;font-size:.9rem;display:flex}.playbook-root .sublinks a{color:var(--playbook-muted)}.playbook-root .sublinks a:hover{color:var(--playbook-accent)}.playbook-root .site-footer{border-top:1px solid var(--playbook-line);color:var(--playbook-muted);margin-top:3rem;padding-top:1.25rem;font-size:.85rem}.playbook-root .site-footer a{color:var(--playbook-muted)}.playbook-root .site-footer a:hover{color:var(--playbook-accent)}.playbook-root .grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.85rem;display:grid}.playbook-root .card{background:var(--playbook-card);border:1px solid var(--playbook-line);color:inherit;border-radius:6px;padding:.95rem 1.05rem;text-decoration:none;transition:border-color .15s;display:block}.playbook-root a.card:hover{border-color:var(--playbook-accent);text-decoration:none}.playbook-root .card h3{color:var(--playbook-ink);text-wrap:balance;margin:0 0 .35rem;font-size:1.05rem}.playbook-root .card p{color:var(--playbook-muted);margin:0;font-size:.9rem}.playbook-root .meta{color:var(--playbook-muted);font-size:.88rem}.playbook-root .page-lead{color:var(--playbook-muted);max-width:40em;margin:0 0 1.5rem}.playbook-root table{border-collapse:collapse;width:100%;font-size:.9rem}.playbook-root th,.playbook-root td{text-align:left;border-bottom:1px solid var(--playbook-line);padding:.45rem .5rem}.playbook-root h1{letter-spacing:-.02em;text-wrap:balance;margin:0 0 .75rem;font-size:clamp(1.45rem,3vw,1.75rem)}.playbook-root h2{text-wrap:balance;margin:1.75rem 0 .75rem;font-size:1.15rem}@media (prefers-reduced-motion:reduce){.playbook-root .btn,.playbook-root .card{transition:none}}
