:root{color-scheme:light;--bg: #f3f3f1;--surface: #ffffff;--surface-2: #ececea;--surface-3: #e2e2df;--raised: #ffffff;--ink: #1c1d1f;--ink-muted: #585a5f;--ink-disabled: #9a9ca1;--line: #deded9;--line-strong: #7b7d82;--accent: #1b6b74;--accent-hover: #155a62;--accent-pressed: #0f4a51;--on-accent: #ffffff;--accent-ink: #17646c;--accent-subtle: #e1eff0;--focus: #1f56b5;--ok-ink: #1d6638;--ok-bg: #e2f1e7;--ok-line: #3f8a5a;--ok-solid: #2a6e41;--on-ok: #ffffff;--attention-ink: #765200;--attention-bg: #fbefcd;--attention-line: #a07a12;--attention-solid: #d9a520;--on-attention: #1c1d1f;--problem-ink: #a02f1c;--problem-bg: #fae6e1;--problem-line: #c0563f;--problem-solid: #b8442f;--on-problem: #ffffff;--info-ink: #22549f;--info-bg: #e5edf9;--info-line: #5b83c4;--info-solid: #2f62b8;--on-info: #ffffff;--refining-ink: #5a3c96;--refining-bg: #eee8f8;--refining-line: #8a6cc6;--refining-solid: #6a4bb0;--on-refining: #ffffff;--neutral-ink: #4c4e53;--neutral-bg: #ececea;--neutral-line: #8e9095;--inverse-bg: #2b2c2f;--inverse-ink: #f3f3f1;--inverse-accent: #8fd3d9;--backdrop: rgba(20, 21, 23, .45);--swatch-edge: rgba(0, 0, 0, .3);--overlay-bg: rgba(255, 255, 255, .92);--overlay-ink: #1c1d1f;--overlay-line: #ffffff;--chart-bg: #ffffff;--chart-ink: #1d1d1f;--chart-grid: #b9b5ad;--chart-grid-major: #8c877d;--chart-label: #4f4c46;--chart-sel: #ffd27a;--chart-sel-line: #8f6200;--chart-hover: #e6f2f3;--chart-cursor: #1f56b5;--chart-done: #cfe3d4;--chart-cur-row: #fff1c9;--chart-cur: #ffd27a;--chart-nost: #9a9a9a;--chart-problem: #c0392b;--chart-attention: #a07a12;--scene-bg: #57534d;--scene-sel: #ffd27a;--scene-new-yarn: #dcaa3c;--scene-loop-into: #74b2ee;--scene-seam: #38c6f4;--scene-focus: #ffd27a;--font-sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif;--font-mono: ui-monospace, "Cascadia Mono", "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--fs-xs: .75rem;--lh-xs: 1.35;--fs-sm: .8125rem;--lh-sm: 1.4;--fs-md: .9375rem;--lh-md: 1.45;--fs-lg: 1.0625rem;--lh-lg: 1.45;--fs-xl: 1.25rem;--lh-xl: 1.3;--fs-2xl: 1.5rem;--lh-2xl: 1.25;--fs-3xl: 2rem;--lh-3xl: 1.2;--fs-display: 3.5rem;--lh-display: 1.05;--fs-display-lg: 5rem;--lh-display-lg: 1;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--sp-0: 0;--sp-1: 2px;--sp-2: 4px;--sp-3: 8px;--sp-4: 12px;--sp-5: 16px;--sp-6: 24px;--sp-7: 32px;--sp-8: 48px;--sp-9: 64px;--r-xs: 3px;--r-sm: 6px;--r-md: 8px;--r-lg: 12px;--r-xl: 16px;--r-pill: 999px;--shadow-1: 0 1px 2px rgba(20, 21, 23, .08), 0 0 0 1px rgba(20, 21, 23, .04);--shadow-2: 0 2px 8px rgba(20, 21, 23, .12), 0 1px 2px rgba(20, 21, 23, .08);--shadow-3: 0 8px 24px rgba(20, 21, 23, .16), 0 2px 6px rgba(20, 21, 23, .08);--shadow-4: 0 16px 48px rgba(20, 21, 23, .22), 0 4px 12px rgba(20, 21, 23, .1);--dur-instant: 80ms;--dur-fast: .14s;--dur-base: .22s;--dur-slow: .3s;--dur-3d-swap: .18s;--ease-standard: cubic-bezier(.2, 0, 0, 1);--ease-enter: cubic-bezier(.05, .7, .1, 1);--ease-exit: cubic-bezier(.3, 0, 1, 1);--z-base: 0;--z-canvas-overlay: 10;--z-divider: 20;--z-appbar: 100;--z-palette: 200;--z-sheet: 300;--z-backdrop: 390;--z-dialog: 400;--z-toast: 500;--z-tooltip: 600;--z-skip: 700;--appbar-h: 56px;--appbar-h-phone: 52px;--tabbar-h: 64px;--rail-w: 56px;--sidesheet-w: 360px;--pane-min: 280px;--divider-hit: 12px;--gutter-desktop: 24px;--gutter-tablet: 16px;--gutter-phone: 16px;--content-max: 1600px;--target-fine: 32px;--target-coarse: 44px;--target: var(--target-fine);--gutter: var(--gutter-desktop);--focus-width: 2px;--focus-offset: 2px;--focus-width-canvas: 3px}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg: #161719;--surface: #1f2023;--surface-2: #27282c;--surface-3: #313237;--raised: #2a2b2f;--ink: #ecebe8;--ink-muted: #a9abb0;--ink-disabled: #696b71;--line: #35363b;--line-strong: #85878e;--accent: #56b4be;--accent-hover: #72c4cc;--accent-pressed: #94d4da;--on-accent: #0b1516;--accent-ink: #6ec4cb;--accent-subtle: #1b3335;--focus: #8db4ff;--ok-ink: #71c992;--ok-bg: #1a3224;--ok-line: #4f9e6c;--ok-solid: #5fb27d;--on-ok: #0f1410;--attention-ink: #e3b950;--attention-bg: #352b11;--attention-line: #a8862e;--attention-solid: #d9a520;--on-attention: #161719;--problem-ink: #f39079;--problem-bg: #3e211b;--problem-line: #c4664f;--problem-solid: #e07a64;--on-problem: #161719;--info-ink: #92b8ff;--info-bg: #1c2a43;--info-line: #5f86c9;--info-solid: #6f9cf0;--on-info: #0f1420;--refining-ink: #c4a9f3;--refining-bg: #2c2441;--refining-line: #8a70c4;--refining-solid: #a98be6;--on-refining: #161719;--neutral-ink: #b9bbc0;--neutral-bg: #2a2b2f;--neutral-line: #74767c;--inverse-bg: #e6e5e1;--inverse-ink: #1c1d1f;--inverse-accent: #155f67;--backdrop: rgba(0, 0, 0, .6);--swatch-edge: rgba(255, 255, 255, .35);--overlay-bg: rgba(31, 32, 35, .92);--overlay-ink: #ecebe8;--overlay-line: #8a8c93;--scene-bg: #2a2927;--scene-sel: #ffd27a;--scene-new-yarn: #dcaa3c;--scene-loop-into: #74b2ee;--scene-seam: #38c6f4;--scene-focus: #ffd27a;--shadow-1: 0 1px 2px rgba(0, 0, 0, .5);--shadow-2: 0 2px 10px rgba(0, 0, 0, .55);--shadow-3: 0 8px 28px rgba(0, 0, 0, .6);--shadow-4: 0 16px 56px rgba(0, 0, 0, .7)}}:root[data-theme=dark]{color-scheme:dark;--bg: #161719;--surface: #1f2023;--surface-2: #27282c;--surface-3: #313237;--raised: #2a2b2f;--ink: #ecebe8;--ink-muted: #a9abb0;--ink-disabled: #696b71;--line: #35363b;--line-strong: #85878e;--accent: #56b4be;--accent-hover: #72c4cc;--accent-pressed: #94d4da;--on-accent: #0b1516;--accent-ink: #6ec4cb;--accent-subtle: #1b3335;--focus: #8db4ff;--ok-ink: #71c992;--ok-bg: #1a3224;--ok-line: #4f9e6c;--ok-solid: #5fb27d;--on-ok: #0f1410;--attention-ink: #e3b950;--attention-bg: #352b11;--attention-line: #a8862e;--attention-solid: #d9a520;--on-attention: #161719;--problem-ink: #f39079;--problem-bg: #3e211b;--problem-line: #c4664f;--problem-solid: #e07a64;--on-problem: #161719;--info-ink: #92b8ff;--info-bg: #1c2a43;--info-line: #5f86c9;--info-solid: #6f9cf0;--on-info: #0f1420;--refining-ink: #c4a9f3;--refining-bg: #2c2441;--refining-line: #8a70c4;--refining-solid: #a98be6;--on-refining: #161719;--neutral-ink: #b9bbc0;--neutral-bg: #2a2b2f;--neutral-line: #74767c;--inverse-bg: #e6e5e1;--inverse-ink: #1c1d1f;--inverse-accent: #155f67;--backdrop: rgba(0, 0, 0, .6);--swatch-edge: rgba(255, 255, 255, .35);--overlay-bg: rgba(31, 32, 35, .92);--overlay-ink: #ecebe8;--overlay-line: #8a8c93;--scene-bg: #2a2927;--scene-sel: #ffd27a;--scene-new-yarn: #dcaa3c;--scene-loop-into: #74b2ee;--scene-seam: #38c6f4;--scene-focus: #ffd27a;--shadow-1: 0 1px 2px rgba(0, 0, 0, .5);--shadow-2: 0 2px 10px rgba(0, 0, 0, .55);--shadow-3: 0 8px 28px rgba(0, 0, 0, .6);--shadow-4: 0 16px 56px rgba(0, 0, 0, .7)}@media(pointer:coarse){:root{--target: var(--target-coarse)}}@media(max-width:1023.98px){:root{--gutter: var(--gutter-tablet)}}@media(max-width:599.98px){:root{--gutter: var(--gutter-phone)}}@media(prefers-reduced-motion:reduce){:root{--dur-instant: 0ms;--dur-fast: 0ms;--dur-base: 0ms;--dur-slow: 0ms;--dur-3d-swap: 0ms}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media(forced-colors:active){:root,:root[data-theme=dark],:root:not([data-theme=light]){--bg: Canvas;--surface: Canvas;--surface-2: Canvas;--surface-3: Canvas;--raised: Canvas;--ink: CanvasText;--ink-muted: CanvasText;--ink-disabled: GrayText;--line: GrayText;--line-strong: CanvasText;--accent: Highlight;--accent-hover: Highlight;--accent-pressed: Highlight;--on-accent: HighlightText;--accent-ink: LinkText;--accent-subtle: Canvas;--focus: Highlight;--ok-ink: CanvasText;--ok-bg: Canvas;--ok-line: CanvasText;--ok-solid: CanvasText;--on-ok: Canvas;--attention-ink: CanvasText;--attention-bg: Canvas;--attention-line: CanvasText;--attention-solid: CanvasText;--on-attention: Canvas;--problem-ink: CanvasText;--problem-bg: Canvas;--problem-line: CanvasText;--problem-solid: CanvasText;--on-problem: Canvas;--info-ink: CanvasText;--info-bg: Canvas;--info-line: CanvasText;--info-solid: CanvasText;--on-info: Canvas;--refining-ink: CanvasText;--refining-bg: Canvas;--refining-line: CanvasText;--refining-solid: Highlight;--on-refining: HighlightText;--neutral-ink: CanvasText;--neutral-bg: Canvas;--neutral-line: CanvasText;--inverse-bg: Canvas;--inverse-ink: CanvasText;--inverse-accent: LinkText;--overlay-bg: Canvas;--overlay-ink: CanvasText;--overlay-line: CanvasText;--backdrop: transparent}}:focus-visible{outline:var(--focus-width) solid var(--focus);outline-offset:var(--focus-offset)}@media(forced-colors:active){:focus-visible{outline-color:Highlight}}[hidden]{display:none!important}.ds-root{container:app / inline-size;font-family:var(--font-sans);font-size:var(--fs-md);line-height:var(--lh-md);color:var(--ink);background:var(--bg)}.vh{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.i{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}.i--sm{width:16px;height:16px}.i--lg{width:24px;height:24px}.i--xl{width:32px;height:32px;stroke-width:1.5}@keyframes ds-spin{to{transform:rotate(360deg)}}@keyframes ds-in-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes ds-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes ds-indeterminate{0%{transform:translate(-100%)}to{transform:translate(250%)}}.is-spinning{animation:ds-spin 1s linear infinite;transform-origin:50% 50%}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-3);min-height:var(--target);min-width:var(--target);padding:0 var(--sp-5);box-sizing:border-box;border-radius:var(--r-md);border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);font:inherit;font-weight:var(--fw-medium);cursor:pointer;text-decoration:none;white-space:nowrap;transition:background-color var(--dur-instant) var(--ease-standard),border-color var(--dur-instant) var(--ease-standard)}.btn:hover,.btn.is-hover{background:var(--surface-2)}.btn:active,.btn.is-pressed{background:var(--surface-3)}.btn--primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn--primary:hover,.btn--primary.is-hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn--primary:active,.btn--primary.is-pressed{background:var(--accent-pressed);border-color:var(--accent-pressed)}.btn--quiet{border-color:transparent;background:transparent;color:var(--accent-ink)}.btn--quiet:hover,.btn--quiet.is-hover{background:var(--surface-2)}.btn--quiet:active,.btn--quiet.is-pressed{background:var(--surface-3);color:var(--ink)}.btn--danger{background:var(--problem-solid);border-color:var(--problem-solid);color:var(--on-problem)}.btn--icon{padding:0;width:var(--target)}.btn--icon.btn--quiet{color:var(--ink)}.btn--lg{min-height:48px;padding:0 var(--sp-6);font-size:var(--fs-lg)}.btn--xl{min-height:64px;min-width:64px;padding:0 var(--sp-6);font-size:var(--fs-xl);border-radius:var(--r-lg)}.btn:disabled,.btn[aria-disabled=true]{background:var(--surface);border-color:var(--line);color:var(--ink-disabled);cursor:not-allowed}.btn--quiet:disabled,.btn--quiet[aria-disabled=true]{background:transparent;border-color:transparent}.is-focus{outline:var(--focus-width) solid var(--focus);outline-offset:var(--focus-offset)}.btn[aria-busy=true]{cursor:progress}.btn[aria-busy=true] .i{animation:ds-spin 1s linear infinite}.btn-row{display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:center}.field{display:grid;gap:var(--sp-2);min-width:0}.field>.stepper,.field>.seg,.field>.switch,.field>.check{justify-self:start}.field__label{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--ink)}.field__hint{font-size:var(--fs-sm);color:var(--ink-muted);margin:0}.field__error{font-size:var(--fs-sm);color:var(--problem-ink);display:flex;gap:var(--sp-2);align-items:center;margin:0}.input,.select{min-height:var(--target);width:100%;box-sizing:border-box;padding:0 var(--sp-4);border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface);color:var(--ink);font:inherit}.input::placeholder{color:var(--ink-muted);opacity:1}.input:hover,.select:hover{border-color:var(--ink-muted)}.input:focus-visible,.select:focus-visible,.input.is-focus,.select.is-focus{outline:var(--focus-width) solid var(--focus);outline-offset:var(--focus-offset);border-color:var(--focus)}.input[aria-invalid=true]{border:2px solid var(--problem-line);padding:0 calc(var(--sp-4) - 1px)}.input:disabled,.select:disabled{background:var(--surface-2);border-color:var(--line);color:var(--ink-disabled);cursor:not-allowed}.select-wrap{position:relative;display:block}.select{appearance:none;-webkit-appearance:none;padding-right:36px;cursor:pointer}.select-wrap .i{position:absolute;right:10px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--ink-muted)}@media(pointer:coarse){.input,.select{font-size:max(16px,1rem)}}.switch{display:inline-flex;align-items:center;gap:var(--sp-3);min-height:var(--target);padding:0;border:0;background:none;color:var(--ink);font:inherit;cursor:pointer;text-align:left}.switch__track{position:relative;flex:none;box-sizing:border-box;width:40px;height:24px;border-radius:var(--r-pill);border:1px solid var(--line-strong);background:var(--surface-2);transition:background-color var(--dur-fast) var(--ease-standard)}.switch__track:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:var(--ink-muted);transition:transform var(--dur-fast) var(--ease-standard)}.switch[aria-checked=true] .switch__track{background:var(--accent);border-color:var(--accent)}.switch[aria-checked=true] .switch__track:after{transform:translate(16px);background:var(--on-accent)}.switch:disabled{color:var(--ink-disabled);cursor:not-allowed}.switch:disabled .switch__track{border-color:var(--line)}.switch:disabled .switch__track:after{background:var(--ink-disabled)}.switch__state{font-size:var(--fs-sm);color:var(--ink-muted)}.check{display:inline-flex;align-items:center;gap:var(--sp-3);min-height:var(--target);cursor:pointer}.check input{width:18px;height:18px;margin:0;accent-color:var(--accent)}.stepper{display:inline-flex;align-items:stretch;border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface);overflow:hidden}.stepper button{min-width:var(--target);min-height:var(--target);border:0;background:transparent;color:var(--ink);cursor:pointer;display:grid;place-items:center}.stepper button:hover{background:var(--surface-2)}.stepper button:disabled{color:var(--ink-disabled);cursor:not-allowed;background:transparent}.stepper input{width:4.5ch;border:0;border-left:1px solid var(--line);border-right:1px solid var(--line);text-align:center;font:inherit;font-variant-numeric:tabular-nums;background:var(--surface);color:var(--ink)}.stepper button:focus-visible,.stepper input:focus-visible{outline-offset:-3px}.seg{display:inline-flex;gap:2px;padding:2px;border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface-2);max-width:100%;box-sizing:border-box}.seg>button,.seg>a{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:calc(var(--target) - 6px);padding:0 var(--sp-4);border:1px solid transparent;border-radius:var(--r-sm);background:transparent;color:var(--ink-muted);font:inherit;font-weight:var(--fw-medium);cursor:pointer;text-decoration:none;white-space:nowrap}.seg>button:hover,.seg>a:hover{color:var(--ink);background:var(--surface-3)}.seg>[aria-pressed=true],.seg>[aria-current=page],.seg>[aria-checked=true]{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.appbar{position:sticky;top:0;z-index:var(--z-appbar);display:flex;align-items:center;gap:var(--sp-4);min-height:var(--appbar-h);padding:0 var(--sp-4);box-sizing:border-box;background:var(--surface);border-bottom:1px solid var(--line)}.appbar__title{min-width:0;margin:0;font-size:var(--fs-lg);font-weight:var(--fw-semibold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.appbar__sub{display:block;font-size:var(--fs-sm);font-weight:var(--fw-regular);color:var(--ink-muted);overflow:hidden;text-overflow:ellipsis}.appbar__spacer{flex:1}.appbar__group{display:flex;align-items:center;gap:var(--sp-2)}.mode-switch{flex:none}.mode-switch>a,.mode-switch>button{padding:0 var(--sp-5)}@container app (max-width: 599.98px){.appbar{min-height:var(--appbar-h-phone);gap:var(--sp-2);padding:0 var(--sp-2)}.appbar .hide-phone{display:none!important}.mode-switch>a,.mode-switch>button{padding:0 var(--sp-3)}.mode-switch>:not([aria-current=page]):not([aria-pressed=true])>span{display:none}}.tabs{display:flex;gap:var(--sp-1);min-width:0;max-width:100%;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:thin}.tab{position:relative;display:inline-flex;align-items:center;gap:var(--sp-2);min-height:var(--target);padding:0 var(--sp-4);border:0;background:none;color:var(--ink-muted);font:inherit;font-weight:var(--fw-medium);cursor:pointer;white-space:nowrap}.tab:hover{color:var(--ink);background:var(--surface-2)}.tab[aria-selected=true]{color:var(--accent-ink)}.tab[aria-selected=true]:after{content:"";position:absolute;left:var(--sp-3);right:var(--sp-3);bottom:-1px;border-bottom:3px solid var(--accent);border-radius:3px 3px 0 0}.tab:focus-visible{outline-offset:-2px}.tab__count{font-size:var(--fs-xs);padding:0 6px;border-radius:var(--r-pill);background:var(--surface-2);color:var(--ink-muted)}.tabbar{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;min-height:var(--tabbar-h);background:var(--surface);border-top:1px solid var(--line)}.tabbar__item{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:var(--target);border:0;background:none;color:var(--ink-muted);font:inherit;font-size:var(--fs-sm);font-weight:var(--fw-medium);cursor:pointer}.tabbar__item[aria-selected=true]{color:var(--accent-ink)}.tabbar__item[aria-selected=true]:before{content:"";position:absolute;top:0;left:28%;right:28%;border-top:3px solid var(--accent);border-radius:0 0 3px 3px}.tabbar__item:focus-visible{outline-offset:-4px}.tabbar__badge{position:absolute;top:8px;left:calc(50% + 8px);min-width:8px;height:8px;border-radius:50%;background:var(--problem-solid);border:2px solid var(--surface)}.split{--split: 50%;display:grid;grid-template-columns:minmax(var(--pane-min),var(--split)) var(--divider-hit) minmax(var(--pane-min),1fr);min-height:0;min-width:0}.split__pane{position:relative;min-width:0;min-height:0;overflow:hidden;display:flex;flex-direction:column;background:var(--surface)}.split__divider{position:relative;z-index:var(--z-divider);display:flex;align-items:center;justify-content:center;padding:0;border:0;background:var(--bg);cursor:col-resize;touch-action:none}.split__divider:before{content:"";position:absolute;top:0;bottom:0;left:50%;border-left:1px solid var(--line-strong)}.split__grip{position:relative;display:grid;place-items:center;width:12px;height:44px;box-sizing:border-box;border:1px solid var(--line-strong);border-radius:var(--r-pill);background:var(--surface);color:var(--ink-muted)}.split__grip .i{width:12px;height:16px}.split__divider:hover .split__grip,.split__divider.is-dragging .split__grip{border-color:var(--accent);color:var(--accent-ink)}.split__divider:focus-visible{outline:none}.split__divider:focus-visible .split__grip,.split__divider.is-focus .split__grip{outline:var(--focus-width) solid var(--focus);outline-offset:var(--focus-offset)}@container app (max-width: 599.98px){.split{grid-template-columns:1fr}.split__divider{display:none}.split__pane:not(.is-active){display:none}}.sheet{display:flex;flex-direction:column;min-height:0;box-sizing:border-box;background:var(--raised);color:var(--ink);box-shadow:var(--shadow-3)}.sheet--side{width:min(var(--sidesheet-w),100%);height:100%;border-left:1px solid var(--line)}.sheet--bottom{width:100%;max-height:85%;border-top:1px solid var(--line);border-radius:var(--r-xl) var(--r-xl) 0 0}.sheet__handle{display:block;width:100%;min-height:24px;padding:0;border:0;background:none;cursor:grab}.sheet__handle:before{content:"";display:block;width:36px;margin:0 auto;border-top:4px solid var(--line-strong);border-radius:2px}.sheet__head{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-3) var(--sp-3) var(--sp-5);border-bottom:1px solid var(--line)}.sheet__title{flex:1;margin:0;font-size:var(--fs-lg);font-weight:var(--fw-semibold)}.sheet__body{display:grid;gap:var(--sp-5);padding:var(--sp-5);overflow:auto}.sheet__foot{display:flex;gap:var(--sp-3);justify-content:flex-end;padding:var(--sp-4) var(--sp-5);border-top:1px solid var(--line)}.tool-rail{display:flex;flex-direction:column;gap:var(--sp-1);width:max-content;padding:var(--sp-2);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-1)}.tool{display:grid;place-items:center;width:40px;height:40px;padding:0;border:1px solid transparent;border-radius:var(--r-md);background:transparent;color:var(--ink);cursor:pointer}.tool:hover{background:var(--surface-2)}.tool[aria-pressed=true]{background:var(--accent-subtle);border-color:var(--accent);color:var(--accent-ink)}.tool:disabled{color:var(--ink-disabled);cursor:not-allowed;background:transparent}.tool-rail__sep{margin:var(--sp-2) var(--sp-1);border-top:1px solid var(--line)}.tool-rail--row{flex-direction:row}.tool-rail--row .tool-rail__sep{margin:var(--sp-1) var(--sp-2);border-top:0;border-left:1px solid var(--line)}@media(pointer:coarse){.tool{width:44px;height:44px}}.sym-pal{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:var(--sp-2)}.sym{display:grid;justify-items:center;gap:var(--sp-1);padding:var(--sp-2) var(--sp-1);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);color:var(--ink);font:inherit;font-size:var(--fs-sm);cursor:pointer;min-width:0}.sym:hover{background:var(--surface-2);border-color:var(--line-strong)}.sym__glyph{display:block;width:32px;height:32px;background:var(--chart-bg);color:var(--chart-ink);outline:1px solid var(--chart-grid)}.sym__abbr{font-weight:var(--fw-semibold);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sym[aria-pressed=true]{background:var(--accent-subtle);border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.sym[aria-pressed=true] .sym__abbr:before{content:"✓ "}.row-ruler{list-style:none;margin:0;padding:0;display:grid;font-variant-numeric:tabular-nums;font-size:var(--fs-sm)}.row-ruler li{display:grid;grid-template-columns:28px 3ch 1fr;align-items:center;gap:var(--sp-2);min-height:28px;padding:0 var(--sp-3) 0 0;border-left:3px solid transparent;color:var(--ink)}.row-ruler .is-done{color:var(--ink-muted)}.row-ruler .is-done .i{color:var(--ok-ink)}.row-ruler [aria-current=step]{background:var(--accent-subtle);border-left-color:var(--accent);font-weight:var(--fw-semibold)}.row-ruler__n{text-align:right}.row-ruler__side{font-size:var(--fs-xs);color:var(--ink-muted)}.row-counter{display:grid;gap:var(--sp-3);justify-items:center;text-align:center;padding:var(--sp-5);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface)}.row-counter__label{font-size:var(--fs-lg);font-weight:var(--fw-semibold);color:var(--ink-muted);text-transform:none}.row-counter__num{font-size:var(--fs-display);line-height:var(--lh-display);font-weight:var(--fw-bold);font-variant-numeric:tabular-nums;color:var(--ink);letter-spacing:-.02em}.row-counter__of{font-size:var(--fs-xl);font-weight:var(--fw-medium);color:var(--ink-muted);letter-spacing:0}.row-counter__step{font-size:var(--fs-xl);line-height:var(--lh-xl);font-weight:var(--fw-semibold);max-width:28ch}.row-counter__sub{font-size:var(--fs-md);color:var(--ink-muted)}.row-counter__btns{display:flex;gap:var(--sp-3);width:100%;justify-content:center}.row-counter__btns .btn--primary{flex:1;max-width:320px}.row-counter__track{width:100%;height:8px;border-radius:var(--r-pill);background:var(--surface-2);border:1px solid var(--line-strong);box-sizing:border-box;overflow:hidden}.row-counter__track>span{display:block;height:100%;width:var(--value, 0%);background:var(--accent)}@container app (min-width: 600px){.row-counter__num{font-size:var(--fs-display-lg);line-height:var(--lh-display-lg)}.row-counter__step{font-size:var(--fs-3xl);line-height:var(--lh-3xl)}}.chip{display:inline-flex;align-items:center;gap:var(--sp-2);min-height:28px;max-width:100%;padding:0 var(--sp-3);box-sizing:border-box;text-align:left;border:1px solid var(--neutral-line);border-radius:var(--r-pill);background:var(--neutral-bg);color:var(--neutral-ink);font:inherit;font-size:var(--fs-sm);font-weight:var(--fw-medium);white-space:nowrap;text-decoration:none}.chip{flex-wrap:wrap;column-gap:var(--sp-2);row-gap:0}.chip .i{width:16px;height:16px}button.chip,a.chip{min-height:var(--target);cursor:pointer}.chip--ok{border-color:var(--ok-line);background:var(--ok-bg);color:var(--ok-ink)}.chip--attention{border-color:var(--attention-line);background:var(--attention-bg);color:var(--attention-ink)}.chip--problem{border-color:var(--problem-line);background:var(--problem-bg);color:var(--problem-ink)}.chip--info{border-color:var(--info-line);background:var(--info-bg);color:var(--info-ink)}.chip--refining{border-color:var(--refining-line);background:var(--refining-bg);color:var(--refining-ink)}.chip__action{font-weight:var(--fw-semibold);text-decoration:underline;text-underline-offset:2px}.chip__sep{font-weight:var(--fw-regular)}.details{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface)}.details>summary{display:flex;align-items:center;gap:var(--sp-2);min-height:var(--target);padding:0 var(--sp-4);cursor:pointer;list-style:none;color:var(--accent-ink);font-weight:var(--fw-medium);border-radius:var(--r-md)}.details>summary::-webkit-details-marker{display:none}.details>summary .i{transition:transform var(--dur-base) var(--ease-standard)}.details[open]>summary .i:first-child{transform:rotate(180deg)}.details>summary:hover{background:var(--surface-2)}.details__body{padding:0 var(--sp-4) var(--sp-4);font-size:var(--fs-sm);color:var(--ink-muted)}.details--inline{border:0;background:none;display:inline-block}.details--inline>summary{padding:0 var(--sp-2);min-height:28px;display:inline-flex;font-size:var(--fs-sm)}.kv{width:100%;border-collapse:collapse;font-size:var(--fs-sm);font-variant-numeric:tabular-nums}.kv th,.kv td{padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.kv th{font-weight:var(--fw-regular);color:var(--ink-muted)}.kv td{color:var(--ink);font-family:var(--font-mono);font-size:var(--fs-xs)}.toast-region{position:fixed;z-index:var(--z-toast);left:50%;bottom:var(--sp-5);transform:translate(-50%);display:grid;gap:var(--sp-3);width:min(480px,calc(100% - 32px));pointer-events:none}.toast{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-2) var(--sp-2) var(--sp-4);border-radius:var(--r-md);background:var(--inverse-bg);color:var(--inverse-ink);box-shadow:var(--shadow-2);font-size:var(--fs-md);pointer-events:auto;animation:ds-in-up var(--dur-base) var(--ease-enter);outline:1px solid transparent}.toast__text{flex:1;min-width:0}.toast__action{min-height:var(--target);padding:0 var(--sp-3);border:0;border-radius:var(--r-sm);background:none;color:var(--inverse-accent);font:inherit;font-weight:var(--fw-semibold);cursor:pointer}.toast .btn--icon{color:var(--inverse-ink);background:none;border-color:transparent}.toast :focus-visible{outline-color:var(--inverse-ink);outline-offset:-2px}.dialog{width:min(480px,calc(100vw - 32px));max-height:calc(100vh - 48px);padding:0;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--raised);color:var(--ink);box-shadow:var(--shadow-4)}.dialog::backdrop{background:var(--backdrop)}.dialog[open]{animation:ds-in-up var(--dur-slow) var(--ease-enter)}.dialog__head{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-4) var(--sp-3) var(--sp-3) var(--sp-6)}.dialog__title{flex:1;margin:0;font-size:var(--fs-xl);line-height:var(--lh-xl);font-weight:var(--fw-semibold)}.dialog__body{padding:0 var(--sp-6) var(--sp-4)}.dialog__body p{margin:0 0 var(--sp-3)}.dialog__foot{display:flex;flex-wrap:wrap;gap:var(--sp-3);justify-content:flex-end;padding:var(--sp-4) var(--sp-6) var(--sp-5)}.state{display:grid;justify-items:center;gap:var(--sp-3);padding:var(--sp-7) var(--sp-5);text-align:center;color:var(--ink)}.state__icon{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--surface-2);color:var(--ink-muted)}.state--error .state__icon{background:var(--problem-bg);color:var(--problem-ink)}.state--offline .state__icon{background:var(--neutral-bg);color:var(--neutral-ink)}.state__title{margin:0;font-size:var(--fs-lg);font-weight:var(--fw-semibold)}.state__text{margin:0;max-width:40ch;color:var(--ink-muted)}.skeleton{display:block;border-radius:var(--r-sm);background:linear-gradient(90deg,var(--surface-2) 25%,var(--surface-3) 50%,var(--surface-2) 75%);background-size:200% 100%;animation:ds-shimmer 1.6s linear infinite}.banner{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border:1px solid var(--neutral-line);border-left-width:4px;border-radius:var(--r-md);background:var(--neutral-bg);color:var(--neutral-ink)}.banner--problem{border-color:var(--problem-line);background:var(--problem-bg);color:var(--problem-ink)}.banner--info{border-color:var(--info-line);background:var(--info-bg);color:var(--info-ink)}.banner__text{flex:1;margin:0}.banner__text strong{display:block}.yarn-card{display:grid;grid-template-columns:64px 1fr;gap:var(--sp-4);padding:var(--sp-4);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);color:var(--ink);min-width:0}.yarn-card[aria-current=true]{border:2px solid var(--accent);padding:calc(var(--sp-4) - 1px)}.yarn-card__swatch{width:64px;height:64px;border-radius:var(--r-md);background:var(--yarn, var(--surface-2));box-shadow:inset 0 0 0 1px var(--swatch-edge);forced-color-adjust:none}.yarn-card__name{margin:0;font-size:var(--fs-lg);font-weight:var(--fw-semibold)}.yarn-card__inuse{display:inline-flex;align-items:center;gap:var(--sp-1);font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--accent-ink)}.yarn-card__facts{display:grid;grid-template-columns:auto 1fr;gap:2px var(--sp-3);margin:var(--sp-2) 0;font-size:var(--fs-sm)}.yarn-card__facts dt{color:var(--ink-muted)}.yarn-card__facts dd{margin:0}.yarn-card__price{font-size:var(--fs-md)}.yarn-card__price strong{font-size:var(--fs-lg)}.yarn-card__actions{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3)}.yarn-card__buy{display:inline-flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2)}.paid{display:inline-flex;align-items:center;gap:var(--sp-1);font-size:var(--fs-sm);color:var(--neutral-ink)}@container app (max-width: 380px){.yarn-card{grid-template-columns:48px 1fr}.yarn-card__swatch{width:48px;height:48px}}.progress{position:relative;height:8px;box-sizing:border-box;border:1px solid var(--refining-line);border-radius:var(--r-pill);background:var(--refining-bg);overflow:hidden}.progress__bar{display:block;height:100%;width:var(--value, 0%);background:var(--refining-solid);border-radius:var(--r-pill);transition:width var(--dur-base) var(--ease-standard)}.progress--indeterminate .progress__bar{width:40%;animation:ds-indeterminate 1.4s var(--ease-standard) infinite}.progress-block{display:grid;gap:var(--sp-2)}.progress-block__label{display:flex;justify-content:space-between;gap:var(--sp-3);font-size:var(--fs-sm);color:var(--refining-ink)}.progress-block__label span:last-child{color:var(--ink-muted);font-variant-numeric:tabular-nums}@media(prefers-reduced-motion:reduce){.progress--indeterminate .progress__bar{width:100%;animation:none;background:repeating-linear-gradient(90deg,var(--refining-solid) 0 8px,transparent 8px 14px)}.skeleton,.is-spinning{animation:none}}.chart-frame,.view3d-frame{position:relative;display:block;min-height:0;overflow:hidden}.chart-frame{background:var(--bg)}.chart-frame__sheet{display:block;margin:auto;background:var(--chart-bg);color:var(--chart-ink);forced-color-adjust:none;max-width:100%;height:auto}.chart-frame:focus-visible,.chart-frame.is-focus{outline:var(--focus-width-canvas) solid var(--chart-cursor);outline-offset:calc(-1 * var(--focus-width-canvas))}.view3d-frame{background:var(--scene-bg);forced-color-adjust:none}.view3d-frame:focus-visible,.view3d-frame.is-focus{outline:var(--focus-width-canvas) solid var(--scene-focus);outline-offset:calc(-1 * var(--focus-width-canvas))}.overlay{position:absolute;z-index:var(--z-canvas-overlay);display:flex;gap:var(--sp-2);align-items:center}.overlay--tl{left:var(--sp-3);top:var(--sp-3)}.overlay--tr{right:var(--sp-3);top:var(--sp-3)}.overlay--bl{left:var(--sp-3);bottom:var(--sp-3)}.overlay--br{right:var(--sp-3);bottom:var(--sp-3)}.overlay-label{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-3);border-radius:var(--r-sm);background:var(--overlay-bg);color:var(--overlay-ink);font-size:var(--fs-sm);font-weight:var(--fw-medium);box-shadow:var(--shadow-1);max-width:100%;border:1px solid var(--overlay-line);box-sizing:border-box}.overlay-label__swatch{width:10px;height:10px;border-radius:2px;flex:none;forced-color-adjust:none}.overlay .btn{background:var(--overlay-bg);border-color:var(--overlay-line);color:var(--overlay-ink)}.overlay .btn:hover{background:var(--raised)}.overlay .chip{box-shadow:var(--shadow-1)}@media(forced-colors:active){.seg>[aria-pressed=true],.seg>[aria-current=page],.seg>[aria-checked=true],.tool[aria-pressed=true],.sym[aria-pressed=true],.row-ruler [aria-current=step]{forced-color-adjust:none;background:Highlight;color:HighlightText;border-color:Highlight}.sym[aria-pressed=true] .sym__glyph{outline:2px solid HighlightText}.switch__track{forced-color-adjust:none;background:Canvas;border-color:CanvasText}.switch__track:after{background:CanvasText}.switch[aria-checked=true] .switch__track{background:Highlight;border-color:Highlight}.switch[aria-checked=true] .switch__track:after{background:HighlightText}.progress,.row-counter__track{forced-color-adjust:none;border-color:CanvasText;background:Canvas}.progress__bar,.row-counter__track>span{background:Highlight}.yarn-card[aria-current=true]{border-color:Highlight}.chip,.banner,.toast,.overlay-label{border:1px solid CanvasText}.split__divider:before{border-color:CanvasText}.sym__glyph{forced-color-adjust:none}.btn--primary,.btn--danger,.btn--primary:hover,.btn--primary:active{background:ButtonFace;color:ButtonText;border:2px solid ButtonText}.btn--quiet{color:ButtonText}.btn:disabled,.btn[aria-disabled=true]{color:GrayText;border-color:GrayText}}html,body{margin:0;height:100%}body.ds-root{background:var(--bg);color:var(--ink)}.app-frame{display:grid;grid-template-rows:auto auto auto auto minmax(0,1fr);height:100vh;height:100dvh}.app-frame>#appbar{grid-row:1}.app-frame>#status-strip{grid-row:2}.app-frame>#banners{grid-row:3}.app-frame>#toasts{grid-row:4}.app-frame>#main{grid-row:5}body[data-route=follow] #main{overflow:hidden}#main{position:relative;min-height:0;overflow:auto;outline:none}body[data-route=design] #main{overflow:hidden}@media(max-height:300px){body[data-route=follow] #main{overflow:auto}}.skip{position:absolute;z-index:var(--z-skip);left:var(--sp-3);top:-100px;padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);background:var(--surface);color:var(--accent-ink);font-weight:var(--fw-semibold);border:1px solid var(--line-strong);text-decoration:underline}.skip:focus{top:var(--sp-3);outline:var(--focus-width) solid var(--focus);outline-offset:var(--focus-offset)}.appbar__titlebox{display:grid;min-width:0;flex:0 1 auto}.appbar__title--rename{cursor:text;border-radius:var(--r-sm);padding:0 var(--sp-2);margin-left:calc(-1 * var(--sp-2))}.appbar__title--rename:hover{background:var(--surface-2)}.appbar__title--rename:focus-visible{outline:var(--focus-width) solid var(--focus);outline-offset:var(--focus-offset)}.appbar__rename{min-width:12ch;max-width:40ch;font-size:var(--fs-lg);font-weight:var(--fw-semibold)}.appbar__chip:empty{display:none}.menu-wrap{position:relative}.menu{position:absolute;right:0;top:calc(100% + var(--sp-2));z-index:var(--z-dialog);min-width:260px;margin:0;padding:var(--sp-2);list-style:none;background:var(--raised);color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--r-md);box-shadow:var(--shadow-3)}.menu a{display:flex;align-items:center;min-height:var(--target);padding:0 var(--sp-4);border-radius:var(--r-sm);color:var(--ink);text-decoration:none}.menu a:hover{background:var(--surface-2)}.menu a:focus-visible{outline:var(--focus-width) solid var(--focus);outline-offset:-2px;background:var(--surface-2)}@container app (max-width: 599.98px){.appbar{min-height:var(--appbar-h-phone);height:var(--appbar-h-phone);gap:var(--sp-1);padding:0 var(--sp-2);flex-wrap:nowrap}.appbar__titlebox{flex:1 1 0}.appbar__sub,.appbar__spacer{display:none}.appbar .mode-switch{flex:none}.appbar .mode-switch>button{padding:0 var(--sp-2);min-height:44px;min-width:44px}#ab-export{width:var(--target);padding:0;flex:none}#ab-export span{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.appbar__chip{display:none}}@container app (max-width: 359.98px){.appbar .mode-switch>button>span{display:none}.appbar .mode-switch>button{width:var(--target);padding:0}}.mode-switch>button{gap:var(--sp-2)}@media(max-height:499.98px)and (orientation:landscape){.appbar{min-height:44px;height:44px;gap:var(--sp-2);padding:0 var(--sp-3);flex-wrap:nowrap}.appbar__sub{display:none}.appbar__title{font-size:var(--fs-md)}}.status-strip{display:flex;align-items:center;gap:var(--sp-2);min-height:36px;padding:0 var(--gutter, 16px);box-sizing:border-box;background:var(--surface);border-bottom:1px solid var(--line);overflow:visible}.status-strip:empty{display:none}@container app (min-width: 600px){.status-strip{display:none}}@media(max-height:499.98px)and (orientation:landscape){.status-strip{display:none}}.banner-region{display:grid;gap:var(--sp-2);padding:0 var(--gutter, 16px)}.banner-region:not(:empty){padding-top:var(--sp-2);padding-bottom:var(--sp-2);background:var(--bg)}.shell-banner{align-items:center;justify-self:center;width:min(720px,100%);box-sizing:border-box}.shell-banner__actions{display:flex;gap:var(--sp-2);align-items:center;flex:none}@container app (max-width: 599.98px){.shell-banner{flex-wrap:wrap}}.drop-hint{position:fixed;inset:var(--sp-4);z-index:var(--z-toast);display:grid;place-items:center;pointer-events:none;border:3px dashed var(--accent);border-radius:var(--r-xl);background:var(--backdrop)}.drop-hint[hidden]{display:none}.drop-hint__text{margin:0;padding:var(--sp-4) var(--sp-6);border-radius:var(--r-lg);background:var(--raised);color:var(--ink);font-size:var(--fs-lg);font-weight:var(--fw-semibold);box-shadow:var(--shadow-3)}.tabbar--shell{min-height:56px}.tabbar--shell .tabbar__item{min-height:56px;min-width:var(--target-coarse)}.tabbar--shell .tabbar__item .i{width:20px;height:20px}.toast-region.toast-region--flow{position:static;transform:none;left:auto;bottom:auto;width:auto;max-width:none;display:grid;gap:var(--sp-2);padding:0 var(--gutter, 16px);pointer-events:auto}.toast-region--flow:not(:empty){padding-top:var(--sp-2);padding-bottom:var(--sp-2);background:var(--bg);border-bottom:1px solid var(--line)}.toast-region--flow .toast{justify-self:center;width:min(560px,100%);box-sizing:border-box}@media(prefers-reduced-motion:reduce){.toast-region--flow .toast{animation:none}}#sheet-host[hidden]{display:none}#sheet-host{position:fixed;z-index:var(--z-sheet);inset:var(--sheet-top, var(--appbar-h)) 0 0 auto;display:flex;justify-content:flex-end;pointer-events:none}#sheet-host[data-mode=overlay],#sheet-host[data-mode=modal]{inset:var(--sheet-top, var(--appbar-h)) 0 0 0}#sheet-host>.sheet{pointer-events:auto;position:relative;z-index:1;max-height:100%}#sheet-host[data-mode=modal]{align-items:center;justify-content:center}#sheet-host[data-mode=modal]>.sheet{width:min(560px,calc(100% - 32px));max-height:calc(100% - 48px);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-4)}#sheet-host[data-mode=overlay]>.sheet{box-shadow:var(--shadow-4)}#sheet-host[data-mode=bottom]{inset:var(--sheet-top, var(--appbar-h)) 0 0 0;align-items:flex-end;justify-content:stretch}#sheet-host[data-mode=bottom]>.sheet{width:100%;max-height:85%;box-shadow:var(--shadow-4);transition:transform var(--dur-base) var(--ease-standard)}#sheet-host[data-mode=full]{inset:0;z-index:var(--z-dialog)}#sheet-host[data-mode=full]>.sheet{width:100%;height:100%;max-height:100%;border:0;border-radius:0}.sheet--full{width:100%;height:100%}.sheet--bottom .sheet__handle{touch-action:none;padding-top:var(--sp-2)}.sheet--bottom .sheet__head{touch-action:none}.sheet-backdrop{position:absolute;inset:0;background:var(--backdrop);pointer-events:auto}.sheet:focus-visible{outline:var(--focus-width) solid var(--focus);outline-offset:-3px}.sheet__body{overflow:auto;min-height:0;flex:1}.has-docked-sheet #main{margin-right:var(--sidesheet-w)}.page a:not(.btn):not(.mode-card):not(.card__link),.sheet a:not(.btn),.state a:not(.btn){color:var(--accent-ink)}.menu button.menu__item{display:flex;align-items:center;width:100%;min-height:var(--target);padding:0 var(--sp-4);border:0;border-radius:var(--r-sm);background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer}.menu button.menu__item:hover{background:var(--surface-2)}.menu button.menu__item:focus-visible{outline:var(--focus-width) solid var(--focus);outline-offset:-2px;background:var(--surface-2)}.pick-list{list-style:none;margin:0 0 var(--sp-4);padding:0;display:grid;gap:var(--sp-1)}.pick-list .btn{justify-content:flex-start;width:100%;text-align:left}.pick-list .btn{white-space:normal;overflow-wrap:anywhere;padding-block:var(--sp-1)}.page{box-sizing:border-box;width:100%;max-width:1600px;margin:0 auto;padding:var(--sp-6) var(--gutter, 16px) var(--sp-8)}.page__title{margin:0 0 var(--sp-5);font-size:var(--fs-2xl);line-height:var(--lh-2xl)}.about-body pre{white-space:pre-wrap;overflow-wrap:anywhere}.about-body .tblwrap{overflow-x:auto}.about-body table{border-collapse:collapse;font-size:var(--fs-sm)}.about-body th,.about-body td{border-bottom:1px solid var(--line);padding:var(--sp-2) var(--sp-3);text-align:left;vertical-align:top}.about-body a{color:var(--accent-ink)}.home-modes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-5);margin-bottom:var(--sp-7)}@container app (max-width: 599.98px){.home-modes{grid-template-columns:minmax(0,1fr);gap:var(--sp-3)}}.mode-card{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto auto;column-gap:var(--sp-4);row-gap:var(--sp-1);align-content:center;min-height:96px;padding:var(--sp-5) var(--sp-6);box-sizing:border-box;text-align:left;text-decoration:none;border:1px solid var(--line-strong);border-radius:var(--r-lg);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer}.mode-card .i{grid-row:1 / span 3;color:var(--accent-ink);align-self:center}.mode-card:hover{background:var(--surface-2)}.mode-card:focus-visible{outline:var(--focus-width) solid var(--focus);outline-offset:var(--focus-offset)}.mode-card__title{font-size:var(--fs-xl);line-height:var(--lh-xl);font-weight:var(--fw-semibold)}.mode-card__sub{color:var(--ink-muted)}.mode-card__note{color:var(--ink-muted);font-size:var(--fs-sm)}.home-section{margin-bottom:var(--sp-7)}.home-section__head{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--sp-3) var(--sp-5);margin-bottom:var(--sp-4)}.home-section__title{margin:0;font-size:var(--fs-xl);line-height:var(--lh-xl)}.home-section__sub{margin:0;color:var(--ink-muted);font-size:var(--fs-sm)}.home-section__head .btn-row{margin-left:auto}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--sp-5);margin:0;padding:0;list-style:none}@container app (max-width: 599.98px){.card-grid{grid-template-columns:minmax(0,1fr);gap:var(--sp-3)}}.card{position:relative;display:grid;grid-template-rows:auto auto 1fr auto;gap:var(--sp-2);min-width:0;padding:var(--sp-4);box-sizing:border-box;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface)}.card__pic{display:grid;place-items:center;height:140px;overflow:hidden;border-radius:var(--r-md);background:var(--chart-bg);border:1px solid var(--line);color:var(--ink-muted)}.card__pic svg{width:100%;height:100%}.card__pic .i{width:40px;height:40px;color:var(--chart-label)}.card__title{margin:0;font-size:var(--fs-lg);line-height:var(--lh-lg);overflow-wrap:anywhere}.card__link{color:var(--ink);text-decoration:none}.card__link:hover{text-decoration:underline}.card__link:focus-visible{outline:var(--focus-width) solid var(--focus);outline-offset:var(--focus-offset);border-radius:var(--r-xs)}.card__meta{margin:0;color:var(--ink-muted);font-size:var(--fs-sm)}.card__chips{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.card__actions{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center}.card__menuwrap{position:relative;margin-left:auto}@container app (max-width: 599.98px){.card{grid-template-columns:88px minmax(0,1fr);grid-template-rows:auto;column-gap:var(--sp-4)}.card__pic{grid-row:1 / span 4;height:auto;aspect-ratio:1}}.home-note{color:var(--ink-muted);font-size:var(--fs-sm);margin:var(--sp-4) 0 0}.ex-group{margin-bottom:var(--sp-7)}.ex-group h3{margin:0 0 var(--sp-4);font-size:var(--fs-lg)}.shape-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--sp-3)}.shape{display:flex;align-items:center;gap:var(--sp-2);min-height:56px;padding:var(--sp-3) var(--sp-4);border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface);color:var(--ink);font:inherit;text-align:left;cursor:pointer}.shape:hover{background:var(--surface-2)}.shape[aria-pressed=true]{background:var(--accent-subtle);border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);color:var(--accent-ink);font-weight:var(--fw-semibold)}.shape[aria-pressed=true]:before{content:"✓ "}.shape:focus-visible{outline:var(--focus-width) solid var(--focus);outline-offset:var(--focus-offset)}.new-fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--sp-4)}.error-stack{white-space:pre-wrap;overflow-wrap:anywhere;font-family:var(--font-mono);font-size:var(--fs-xs)}@media(forced-colors:active){.shape[aria-pressed=true]{forced-color-adjust:none;background:Highlight;color:HighlightText;border-color:Highlight}.card__pic{forced-color-adjust:none;background:#fff}.toast{border:1px solid CanvasText}}.page--settings,.page--help,.page--about{max-width:960px}.settings-section,.help-section{margin:0 0 var(--sp-7)}.settings-section__title,.help-section>h3{margin:0 0 var(--sp-4);font-size:var(--fs-xl);line-height:var(--lh-xl)}.settings-row{margin-bottom:var(--sp-5)}.settings-row .seg{flex-wrap:wrap}.settings-row .switch{min-height:var(--target-coarse)}.settings-row .field__hint{max-width:60ch}.help-section:focus-visible,.about-body section:focus-visible{outline:var(--focus-width) solid var(--focus);outline-offset:var(--focus-offset);border-radius:var(--r-sm)}.toc{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-5);margin:0 0 var(--sp-6);padding:0;list-style:none}.toc a{display:inline-flex;align-items:center;min-height:var(--target);color:var(--accent-ink)}.help-cards{margin-bottom:var(--sp-4)}.help-card p{margin:0;color:var(--ink)}.help-card .card__title{font-size:var(--fs-lg)}.tblwrap{overflow-x:auto;margin-bottom:var(--sp-5)}.help-table{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}.help-table caption{text-align:left;font-weight:var(--fw-semibold);padding-bottom:var(--sp-2);color:var(--ink)}.help-table th,.help-table td{border-bottom:1px solid var(--line);padding:var(--sp-2) var(--sp-3);text-align:left;vertical-align:top}.help-table tbody th{font-weight:var(--fw-semibold);white-space:nowrap}@container app (max-width: 599.98px){.help-table tbody th{white-space:normal}}.glyph-sheet{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--sp-2) var(--sp-4);margin:0 0 var(--sp-6);padding:0;list-style:none}.glyph-sheet__item{display:flex;align-items:center;gap:var(--sp-3);min-height:40px}.glyph-sheet__pic{flex:none;display:inline-flex}.glyph-sheet__pic svg{display:block;max-width:120px;height:30px;width:auto}.glyph-sheet__name{font-size:var(--fs-sm)}.help-samples{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.card__pic--3d{background:var(--surface-2)}.card__thumb{display:block;width:100%;height:100%;object-fit:contain}:root[data-motion=reduce]{--dur-instant: 0ms;--dur-fast: 0ms;--dur-base: 0ms;--dur-slow: 0ms;--dur-3d-swap: 0ms}:root[data-motion=reduce] *,:root[data-motion=reduce] *:before,:root[data-motion=reduce] *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}@media(forced-colors:active){.tabbar--shell .tabbar__item[aria-selected=true]{forced-color-adjust:none;background:Highlight;color:HighlightText}.status-strip,.shell-banner,.drop-hint__text{border:1px solid CanvasText}.drop-hint{border-color:Highlight}.card__pic--3d{forced-color-adjust:none}}.link-target{display:inline-block;box-sizing:border-box;min-height:24px;padding-block:4px}
