.gp-scope{--gp-surface:var(--astro-surface);--gp-bg:var(--astro-bg);--gp-border:var(--astro-border);--gp-ink:var(--astro-ink);--gp-ink-soft:var(--astro-ink-soft);--gp-accent:var(--astro-accent);--gp-accent-soft:var(--astro-accent-soft);--gp-s1:#6d28d9;--gp-s2:#c2410c;--gp-s3:#0e9f6e;--gp-s4:#0369a1;--gp-s5:#b4453a;--gp-s6:#a21caf;--gp-s7:#4d7c0f;--gp-s8:#2563eb;--gp-grid:var(--astro-border);--gp-axis:#d8d2c8;--gp-zero:#b8b0a4;color:var(--gp-ink);font-size:13px}.gp-layout{display:grid;grid-template-columns:minmax(0,1fr) clamp(16rem,24vw,22rem);gap:1rem;align-items:stretch;height:calc(100vh - 12rem);min-height:24rem}@media(max-width:60rem){.gp-layout{grid-template-columns:minmax(0,1fr);height:auto;min-height:0}.gp-plot-wrap{flex:none;aspect-ratio:900/340}}.gp-card{background:var(--gp-surface);border:1px solid var(--gp-border);border-radius:12px;box-shadow:var(--astro-shadow);overflow:hidden;display:flex;flex-direction:column;min-height:0}.gp-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:.7rem .9rem .55rem;border-bottom:1px solid var(--gp-border);flex:none}.gp-title{font-family:var(--astro-serif);font-size:15px;font-weight:600;color:var(--gp-ink);margin:0}.gp-sub{font-family:var(--astro-mono);font-size:11px;color:var(--gp-ink-soft);white-space:nowrap}.gp-legend{display:flex;flex-wrap:wrap;gap:.1rem .35rem;padding:.5rem .9rem;border-bottom:1px solid var(--gp-border);flex:none}.gp-key{display:inline-flex;align-items:center;gap:.4rem;padding:.2rem .45rem;border:1px solid transparent;border-radius:6px;background:none;font:inherit;font-size:12px;color:var(--gp-ink-soft);cursor:pointer;transition:background .12s,color .12s}.gp-key:hover{background:var(--gp-bg);color:var(--gp-ink)}.gp-key:focus-visible{outline:2px solid var(--gp-accent);outline-offset:1px}.gp-key[aria-pressed="true"]{background:var(--gp-accent-soft);border-color:color-mix(in srgb,var(--gp-accent) 25%,transparent);color:var(--gp-ink);font-weight:600}.gp-key-line{width:14px;height:2px;border-radius:1px;flex:none}.gp-plot{display:block;width:100%;height:100%;touch-action:none}.gp-plot-wrap{flex:1;min-height:15rem}.gp-grid-line{stroke:var(--gp-grid);stroke-width:1;shape-rendering:crispEdges}.gp-zero-line{stroke:var(--gp-zero);stroke-width:1.5;shape-rendering:crispEdges}.gp-axis-line{stroke:var(--gp-axis);stroke-width:1;shape-rendering:crispEdges}.gp-tick{font-family:var(--astro-mono);font-size:10px;font-variant-numeric:tabular-nums;fill:var(--gp-ink-soft)}.gp-tick-placed{fill:var(--gp-accent);font-weight:700}.gp-curve{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round;transition:opacity .15s,stroke-width .15s}.gp-curve.is-muted{stroke-width:1.5;opacity:.28}.gp-curve.is-selected{stroke-width:2.5}.gp-curve.is-shown{stroke-width:1.75;opacity:.85}.gp-curve.is-total{stroke-width:2.5}.gp-curve.is-total.is-selected{stroke-width:3}.gp-curve.is-derived{stroke-dasharray:6 4;stroke-width:2}.gp-area{opacity:.1;pointer-events:none}.gp-key[data-shown="false"]{opacity:.5}.gp-key[data-shown="false"] .gp-key-name{text-decoration:line-through}.gp-key[data-shown="false"] .gp-key-line{background:var(--gp-ink-soft)!important}.gp-key-line.is-derived{height:0;border-top:2px dashed currentColor;border-radius:0}.gp-views{display:inline-flex;margin-left:auto;border:1px solid var(--gp-border);border-radius:7px;overflow:hidden;background:var(--gp-bg)}.gp-view{appearance:none;border:0;background:none;font:inherit;font-size:11.5px;color:var(--gp-ink-soft);padding:.22rem .6rem;cursor:pointer;white-space:nowrap;transition:background .12s,color .12s}.gp-view:hover{background:var(--gp-accent-soft);color:var(--gp-ink)}.gp-view[aria-pressed="true"]{background:var(--gp-surface);color:var(--gp-accent);font-weight:600;box-shadow:inset 0 -2px 0 var(--gp-accent)}.gp-view:focus-visible{outline:2px solid var(--gp-accent);outline-offset:-2px}.gp-axis-note{font-family:var(--astro-mono);font-size:10px;fill:var(--gp-ink-soft)}.gp-dot{stroke:var(--gp-surface);stroke-width:2;pointer-events:none}.gp-hit{fill:transparent;cursor:pointer}.gp-hit:focus-visible{outline:0}.gp-focus-ring{fill:none;stroke:var(--gp-accent);stroke-width:2;pointer-events:none}.gp-crosshair{stroke:var(--gp-ink-soft);stroke-width:1;opacity:.45;pointer-events:none;shape-rendering:crispEdges}.gp-placed{stroke:var(--gp-accent);stroke-width:1.5;pointer-events:none;shape-rendering:crispEdges}.gp-readout{position:absolute;z-index:5;min-width:8rem;max-width:15rem;padding:.4rem .55rem;background:var(--gp-surface);border:1px solid var(--gp-border);border-radius:8px;box-shadow:var(--astro-shadow);pointer-events:none;font-size:12px}.gp-readout-date{font-family:var(--astro-mono);font-size:11px;color:var(--gp-ink-soft);margin-bottom:.25rem}.gp-readout-row{display:flex;align-items:center;gap:.4rem;padding:.05rem 0}.gp-readout-val{font-family:var(--astro-mono);font-variant-numeric:tabular-nums;font-weight:700;color:var(--gp-ink);margin-left:auto}.gp-readout-name{color:var(--gp-ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gp-plot-wrap{position:relative}.gp-detail-head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;min-height:2.1rem;padding:.7rem .9rem .55rem;border-bottom:1px solid var(--gp-border);flex:none}.gp-detail-actions{display:inline-flex;align-items:baseline;gap:.35rem;margin-left:auto}.gp-detail-action{appearance:none;font:inherit;font-family:var(--astro-mono);font-size:11px;color:var(--gp-ink-soft);background:var(--gp-bg);border:1px solid var(--gp-border);border-radius:7px;padding:.18rem .55rem;cursor:pointer;white-space:nowrap;transition:background .12s,color .12s,border-color .12s}.gp-detail-action:hover{background:var(--gp-accent-soft);border-color:var(--gp-accent);color:var(--gp-ink)}.gp-detail-action:focus-visible{outline:2px solid var(--gp-accent);outline-offset:1px}.gp-detail-date{font-family:var(--astro-mono);font-size:12px;font-weight:700;color:var(--gp-accent)}.gp-detail-body{padding:.6rem .9rem .8rem;flex:1;min-height:0;overflow-y:auto;font-family:var(--astro-mono);font-size:11.5px;line-height:1.55;color:var(--gp-ink)}.gp-detail-body table{width:100%;border-collapse:collapse}.gp-detail-body td,.gp-detail-body th{padding:.05rem .25rem;text-align:left;vertical-align:top}.gp-detail-body img{max-width:100%}.gp-empty{padding:1.2rem .9rem;flex:1;color:var(--gp-ink-soft);font-size:12px;line-height:1.5}.gp-scope{position:relative}.gp-modal-backdrop{position:absolute;inset:0;z-index:10;background:color-mix(in srgb,var(--gp-ink) 22%,transparent);border-radius:12px}.gp-modal{position:absolute;z-index:11;top:2.5rem;left:1rem;width:min(24rem,calc(100% - 2rem));max-height:min(26rem,calc(100% - 4rem));display:flex;flex-direction:column;background:var(--gp-surface);border:1px solid var(--gp-border);border-radius:12px;box-shadow:0 12px 32px color-mix(in srgb,var(--gp-ink) 25%,transparent);overflow:hidden}.gp-modal-head{display:flex;align-items:baseline;gap:.6rem;padding:.7rem .9rem .55rem;border-bottom:1px solid var(--gp-border)}.gp-modal-title{font-family:var(--astro-serif);font-size:14px;font-weight:600}.gp-modal-close{margin-left:auto;appearance:none;border:0;background:none;font:inherit;font-size:13px;line-height:1;color:var(--gp-ink-soft);padding:.2rem .3rem;border-radius:5px;cursor:pointer}.gp-modal-close:hover{background:var(--gp-bg);color:var(--gp-ink)}.gp-modal-close:focus-visible{outline:2px solid var(--gp-accent);outline-offset:1px}.gp-modal-actions{display:flex;flex-wrap:wrap;gap:.3rem;padding:.5rem .9rem;border-bottom:1px solid var(--gp-border)}.gp-modal-action{appearance:none;border:1px solid var(--gp-border);background:var(--gp-bg);border-radius:6px;font:inherit;font-size:11.5px;color:var(--gp-ink-soft);padding:.2rem .5rem;cursor:pointer;max-width:11rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:background .12s,color .12s}.gp-modal-action:hover{background:var(--gp-accent-soft);color:var(--gp-ink)}.gp-modal-action:focus-visible{outline:2px solid var(--gp-accent);outline-offset:1px}.gp-modal-note{margin:0;padding:.45rem .9rem;font-size:11px;line-height:1.45;color:var(--gp-ink-soft);background:color-mix(in srgb,var(--gp-accent-soft) 60%,transparent);border-bottom:1px solid var(--gp-border)}.gp-modal-list{overflow-y:auto;padding:.3rem 0}.gp-modal-row{display:flex;align-items:center;gap:.5rem;padding:.15rem .9rem}.gp-modal-row:hover{background:var(--gp-bg)}.gp-modal-row[data-shown="false"] .gp-modal-name{opacity:.5;text-decoration:line-through}.gp-modal-row[data-shown="false"] .gp-key-line{background:var(--gp-ink-soft)!important}.gp-modal-check{flex:none;cursor:pointer;accent-color:var(--gp-accent)}.gp-modal-swatch{display:inline-flex;align-items:center;flex:none;cursor:pointer;padding:.2rem 0}.gp-modal-name{flex:1;min-width:0;appearance:none;border:0;background:none;font:inherit;font-size:12px;color:var(--gp-ink);text-align:left;padding:.15rem .2rem;border-radius:5px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gp-modal-name:hover{background:var(--gp-accent-soft)}.gp-modal-name:focus-visible{outline:2px solid var(--gp-accent);outline-offset:-1px}.gp-modal-name.is-selected{font-weight:600;color:var(--gp-accent)}.gp-modal-tag{margin-left:.35rem;font-family:var(--astro-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--gp-ink-soft)}.gp-modal-count{flex:none;font-family:var(--astro-mono);font-variant-numeric:tabular-nums;font-size:10.5px;color:var(--gp-ink-soft)}.gp-key-picker{border-color:var(--gp-border);background:var(--gp-bg);font-weight:600;color:var(--gp-ink)}.ag-modal-backdrop{position:fixed;inset:0;z-index:1050;background:color-mix(in srgb,var(--astro-ink) 35%,transparent)}.ag-modal{position:fixed;z-index:1051;top:50%;left:50%;transform:translate(-50%,-50%);width:min(46rem,calc(100vw - 2rem));max-height:min(40rem,calc(100vh - 4rem));display:flex;flex-direction:column;background:var(--astro-surface);border:1px solid var(--astro-border);border-radius:12px;box-shadow:0 16px 40px color-mix(in srgb,var(--astro-ink) 30%,transparent);overflow:hidden}.ag-modal-head{display:flex;align-items:baseline;gap:.6rem;flex:none;padding:.7rem .9rem .6rem;border-bottom:1px solid var(--astro-border);font-family:var(--astro-serif)}.ag-modal-body{flex:1;min-height:0;overflow:auto}.ag-modal-body thead th{position:sticky;top:0;z-index:1}@media(prefers-reduced-motion:no-preference){.gp-curve.is-entering{stroke-dasharray:var(--gp-len);stroke-dashoffset:var(--gp-len);animation:gp-draw .6s cubic-bezier(.4,0,.2,1) forwards}}@keyframes gp-draw{to{stroke-dashoffset:0}}