.app-message[data-v-9a6ec74f]{align-items:flex-start;gap:var(--space-10);box-sizing:border-box;padding:var(--space-12) var(--space-16);font:var(--type-body);color:var(--ink);background:var(--panel);border:1px solid var(--panel-line);border-left:var(--tone-edge) solid var(--accent-strong);border-radius:var(--radius-lg);display:flex}:root[data-theme=dark] .app-message[data-v-9a6ec74f]{background:var(--elevated);border-color:var(--line-strong);border-left-color:var(--accent-strong)}:root[data-theme=contrast] .app-message[data-v-9a6ec74f]{background:var(--canvas);border-width:2px;border-color:var(--line-strong);border-left:var(--tone-edge) solid var(--accent-strong)}.app-message--toast[data-v-9a6ec74f]{max-width:var(--message-max-width);box-shadow:var(--elevation-3)}:root[data-theme=contrast] .app-message--toast[data-v-9a6ec74f]{box-shadow:none}.app-message__icon[data-v-9a6ec74f]{margin-top:var(--space-2);color:var(--accent-strong)}.app-message.app-message--warning[data-v-9a6ec74f]{border-left-color:var(--warning)}.app-message--warning .app-message__icon[data-v-9a6ec74f]{color:var(--warning)}.app-message.app-message--danger[data-v-9a6ec74f]{border-left-color:var(--danger)}.app-message--danger .app-message__icon[data-v-9a6ec74f]{color:var(--danger)}.app-message__text[data-v-9a6ec74f]{flex:auto;min-width:0}.app-message__actions[data-v-9a6ec74f]{gap:var(--space-8);flex:none;align-items:center;display:flex}.app-message[data-v-9a6ec74f]>.icon-btn-wrap{margin:calc(-1 * var(--space-4)) calc(-1 * var(--space-8)) calc(-1 * var(--space-4)) 0;flex:none}.app-message__close[data-v-9a6ec74f]{width:var(--message-close-size);height:var(--message-close-size);border-radius:var(--radius-md)}.dock[data-v-bfc0e37d]{box-sizing:content-box;width:100%;max-width:var(--dock-max-width);height:var(--dock-height);padding-bottom:env(safe-area-inset-bottom);background:var(--canvas);border-top:1px solid var(--line-soft);align-items:stretch;margin:0 auto;display:flex}.dock__swatch[data-v-bfc0e37d]{box-sizing:border-box;border-radius:var(--radius-full);width:22px;height:22px;box-shadow:inset 0 0 0 1px var(--swatch-edge)}.project-import__button[data-v-e8c759b9]{align-items:center;gap:var(--space-8);box-sizing:border-box;height:var(--control-height);padding:0 var(--space-6);font:var(--type-control);color:var(--ink);white-space:nowrap;border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard), transform var(--duration-instant) var(--ease-standard);background:0 0;border:1px solid #0000;flex:none;margin:0;display:inline-flex;position:relative}.project-import__button--compact[data-v-e8c759b9]{width:var(--control-height);justify-content:center;padding:0}@media (hover:hover){.project-import__button[data-v-e8c759b9]:hover{background:var(--hover-fill)}}.project-import__button[data-v-e8c759b9]:active{background:var(--press-fill);transform:scale(var(--press-scale))}.project-import__input[data-v-e8c759b9]{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.project-import__button[data-v-e8c759b9]:has(:focus-visible){outline:var(--focus-width) solid var(--focus-ring);outline-offset:2px}.project-import__result[data-v-e8c759b9],.project-import__error[data-v-e8c759b9]{align-items:center;gap:var(--space-6);font:var(--type-body);color:var(--body);white-space:nowrap;flex:none;margin:0;display:inline-flex}.project-import__error[data-v-e8c759b9]{color:var(--danger)}@media (prefers-reduced-motion:reduce){.project-import__button[data-v-e8c759b9]:active{transform:none}}.app-shell__dock[data-v-d240acf3],.app-shell__phone-project-bar[data-v-d240acf3]{display:none}@media (width<=1023px){.app-shell__dock[data-v-d240acf3]{flex:none;display:flex}.app-shell__phone-project-bar[data-v-d240acf3]{align-items:center;gap:var(--space-4);height:var(--dock-height);padding:0 var(--space-12);padding-bottom:env(safe-area-inset-bottom);background:var(--canvas);border-top:1px solid var(--line-soft);flex:none;display:flex}.app-shell__phone-project-bar[data-v-d240acf3] .app-button{flex:1 1 0}}.app-shell--dock .app-shell__dock{flex:none;display:flex}.app-shell--dock .app-shell__phone-project-bar{align-items:center;gap:var(--space-4);height:var(--dock-height);padding:0 var(--space-12);padding-bottom:env(safe-area-inset-bottom);background:var(--canvas);border-top:1px solid var(--line-soft);flex:none;display:flex}.app-shell--dock .app-shell__phone-project-bar .app-button{flex:1 1 0}.app-modal-scrim[data-v-45b27c5e]{z-index:calc(var(--z-modal) - 1);padding:var(--space-24);background:var(--scrim);animation:app-modal-fade-45b27c5e var(--duration-base) var(--ease-out);grid-template-columns:minmax(0,1fr);place-items:center;display:grid;position:fixed;inset:0}.app-modal[data-v-45b27c5e]{z-index:var(--z-modal);gap:var(--space-8);box-sizing:border-box;width:var(--modal-width);overscroll-behavior:none;max-width:100%;max-height:100%;padding:var(--space-24);font:var(--type-body);color:var(--body);background:var(--overlay-fill);border-radius:var(--radius-lg);box-shadow:var(--elevation-3);animation:app-modal-arrive-45b27c5e var(--duration-base) var(--ease-out);flex-direction:column;display:flex;position:relative;overflow-y:auto}@media (width<=22.5rem){.app-modal-scrim[data-v-45b27c5e]{padding:var(--space-16)}}.app-modal[data-v-45b27c5e]:focus{outline:none}.app-modal--panel[data-v-45b27c5e]{width:var(--modal-width-panel)}.app-modal--narrow[data-v-45b27c5e]{width:var(--modal-width-narrow)}:root[data-theme=dark] .app-modal[data-v-45b27c5e]{border:1px solid var(--line-strong)}:root[data-theme=contrast] .app-modal[data-v-45b27c5e]{border:2px solid var(--line-strong);box-shadow:none}.app-modal__header[data-v-45b27c5e]{justify-content:space-between;align-items:flex-start;gap:var(--space-16);display:flex}.app-modal__title[data-v-45b27c5e]{font:var(--type-title);color:var(--ink);margin:0}.app-modal__body[data-v-45b27c5e] p{margin:0}.app-modal__actions[data-v-45b27c5e]{justify-content:flex-end;gap:var(--space-8);margin-top:var(--space-16);flex-wrap:wrap;display:flex}@keyframes app-modal-fade-45b27c5e{0%{opacity:0}}@keyframes app-modal-arrive-45b27c5e{0%{opacity:0;transform:scale(.98)}}@media (prefers-reduced-motion:reduce){.app-modal[data-v-45b27c5e]{animation-name:app-modal-fade-45b27c5e}}.confirm-modal__message[data-v-38d04c3f]{font:var(--type-body);color:var(--body)}.confirm-modal__extra[data-v-38d04c3f]{margin-right:auto}.form-field[data-v-eb4a9a28]{gap:var(--space-6);flex-direction:column;min-width:0;display:flex}.form-field__label-row[data-v-eb4a9a28]{justify-content:space-between;align-items:baseline;gap:var(--space-8);display:flex}.form-field__label[data-v-eb4a9a28]{font:var(--type-control);color:var(--ink);background:0 0;border-radius:0;margin:0;padding:0;display:block}.form-field__aside[data-v-eb4a9a28]{font:var(--type-meta-small);color:var(--muted);text-transform:lowercase;white-space:nowrap}.form-field__hint[data-v-eb4a9a28]{font:var(--type-meta);font-family:var(--font-sans);color:var(--muted);margin:0}.form-field__error[data-v-eb4a9a28]{gap:var(--space-6);font:var(--type-meta);font-family:var(--font-sans);color:var(--danger);align-items:flex-start;margin:0;display:flex}.form-field__error>.icon[data-v-eb4a9a28]{margin-top:var(--space-2)}.text-field[data-v-a473d9fb]{box-sizing:border-box;height:var(--field-height);padding:0 var(--space-12);background:var(--elevated);border:1px solid var(--field-line);border-radius:var(--radius-md);transition:border-color var(--duration-fast) var(--ease-standard);align-items:center;display:flex;position:relative}.text-field[data-v-a473d9fb]:focus-within{border-color:var(--ink);outline:var(--focus-width) solid var(--focus-ring);outline-offset:2px}.text-field--invalid[data-v-a473d9fb]{border-color:var(--danger)}.text-field--disabled[data-v-a473d9fb]{background:var(--surface);border-color:var(--line)}.text-field__input[data-v-a473d9fb]{width:100%;min-width:0;height:100%;font:var(--type-body);color:var(--ink);-moz-appearance:textfield;background:0 0;border:0;border-radius:0;outline:none;flex:auto;margin:0;padding:0}.text-field__input[data-v-a473d9fb]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.text-field__input[data-v-a473d9fb]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.text-field__input[data-v-a473d9fb]::placeholder{color:var(--muted);opacity:1}.text-field__input--clear-on-focus[data-v-a473d9fb]:focus::placeholder{color:#0000}.text-field__input[data-v-a473d9fb]:disabled{color:var(--faint)}.text-field__unit[data-v-a473d9fb]{top:0;right:var(--space-12);padding:0 var(--space-4);font:var(--type-meta-small);color:var(--muted);white-space:nowrap;background:var(--elevated);border-radius:var(--radius-md);pointer-events:none;position:absolute;transform:translateY(-50%)}.text-field:focus-within .text-field__unit[data-v-a473d9fb]{color:var(--ink)}.text-field--invalid .text-field__unit[data-v-a473d9fb]{color:var(--danger)}.text-field--disabled .text-field__unit[data-v-a473d9fb]{color:var(--faint);background:var(--surface)}:root[data-theme=contrast] .text-field[data-v-a473d9fb]{border-width:2px}.shortcuts-help__groups[data-v-79b223e2]{columns:2 11rem;column-gap:var(--space-24)}.shortcuts-help__group[data-v-79b223e2]{break-inside:avoid;margin-bottom:var(--space-16)}.shortcuts-help__group-title[data-v-79b223e2]{margin:0 0 var(--space-6);font:var(--type-label);color:var(--muted);text-transform:lowercase}.shortcuts-help__list[data-v-79b223e2]{margin:0}.shortcuts-help__row[data-v-79b223e2]{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-8);padding:var(--space-4) 0;min-height:var(--control-height);border-top:1px solid var(--line-soft);flex-wrap:wrap;display:flex}.shortcuts-help__label[data-v-79b223e2]{min-width:0;font:var(--type-body);color:var(--body);flex:auto}.shortcuts-help__keys[data-v-79b223e2]{justify-content:flex-end;align-items:center;gap:var(--space-2);flex-wrap:wrap;flex:0 auto;margin:0 0 0 auto;display:flex}.shortcuts-help__kbd[data-v-79b223e2]{box-sizing:border-box;min-width:var(--kbd-height);height:var(--kbd-height);padding:0 var(--space-4);font:var(--type-meta-small);color:var(--ink);background:var(--elevated);border:1px solid var(--line-strong);border-radius:var(--radius-xs);border-bottom-width:2px;place-items:center;display:inline-grid}.shortcuts-help__plus[data-v-79b223e2],.shortcuts-help__or[data-v-79b223e2]{font:var(--type-meta-tiny);color:var(--muted)}.shortcuts-help__spoken[data-v-79b223e2]{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app-shell__modal-error[data-v-c791dda0]{margin:0 0 var(--space-8);color:var(--danger)}.app-select[data-v-73133509]{display:inline-flex;position:relative}.app-select__control[data-v-73133509]{height:var(--control-height);padding:0 var(--space-32) 0 var(--space-12);font:var(--type-control);color:var(--ink);appearance:none;background:var(--button);border:1px solid var(--button-line);border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard)}.app-select__chevron[data-v-73133509]{top:50%;right:var(--space-10);color:var(--muted);pointer-events:none;position:absolute;transform:translateY(-50%)}.app-select--primary .app-select__control[data-v-73133509]{color:var(--on-accent);background:var(--accent);border-color:var(--accent)}.app-select--primary .app-select__chevron[data-v-73133509]{color:var(--on-accent)}.app-select__control option[data-v-73133509]{color:var(--ink);background:var(--canvas)}.app-select__control[data-v-73133509]:focus-visible{outline:var(--focus-width) solid var(--focus-ring);outline-offset:2px}@media (hover:hover){.app-select--secondary .app-select__control[data-v-73133509]:hover:not(:disabled){background:var(--hover-fill)}.app-select--primary .app-select__control[data-v-73133509]:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}}.app-select--secondary .app-select__control[data-v-73133509]:active:not(:disabled){background:var(--press-fill)}.app-select__control[data-v-73133509]:disabled{color:var(--faint);background:var(--surface);border-color:var(--line);cursor:not-allowed}.app-select--primary .app-select__control[data-v-73133509]:disabled{color:var(--accent-disabled-fg);background:var(--accent-disabled-bg);border-color:var(--accent-disabled-bg)}.app-select:has(:disabled) .app-select__chevron[data-v-73133509]{color:var(--faint)}:root[data-theme=contrast] .app-select__control[data-v-73133509]{border-width:2px}.app-header__pill[data-v-2dfb7e55]{padding:var(--space-4) var(--space-12);font:var(--type-pill);color:var(--ink);white-space:nowrap;background:var(--pill);border-radius:var(--radius-full);flex:none}.app-header[data-v-b4b2a1d0]{align-items:center;gap:var(--space-10);box-sizing:border-box;min-height:var(--header-height);padding:0 var(--space-32);background:var(--canvas);border-bottom:1px solid var(--line-soft);flex:none;display:flex}@media (width>=1920px){.app-header[data-v-b4b2a1d0]{padding-left:2.5rem;padding-right:2.5rem}}@media (width<=1023px){.app-header[data-v-b4b2a1d0]{display:none}}.app-header[data-v-b4b2a1d0]>*{flex:none}.app-header__shortcuts[data-v-b4b2a1d0]{display:none}@media (any-pointer:fine){.app-header__shortcuts[data-v-b4b2a1d0]{display:inline-flex}}.app-header__brand[data-v-b4b2a1d0]{align-items:center;gap:var(--space-8);margin:0 var(--space-10) 0 0;display:flex}.app-header__mark[data-v-b4b2a1d0]{color:var(--accent)}.app-header__name[data-v-b4b2a1d0]{font:var(--type-brand);letter-spacing:var(--tracking-brand);color:var(--ink)}.app-header__editing[data-v-b4b2a1d0]{align-items:center;gap:var(--space-10);margin:0;display:flex}.app-header--compact>.app-header__editing[data-v-b4b2a1d0]{flex:0 auto;min-width:0;overflow:hidden}.app-header__summary[data-v-b4b2a1d0]{min-width:0;font:var(--type-control);color:var(--ink);white-space:nowrap;text-overflow:ellipsis;flex:0 auto;overflow:hidden}.app-header>.app-header__gap[data-v-b4b2a1d0]{flex:1 1 0}.app-header__imports[data-v-b4b2a1d0]{align-items:center;gap:var(--space-10);display:flex}.app-note[data-v-c11f4a47]{box-sizing:border-box;padding:var(--space-8) var(--space-10);font:var(--type-meta);color:var(--muted);background:var(--surface);border-radius:var(--radius-sm);overflow-wrap:anywhere;border:0;margin:0}.expandable-panel__expand[data-v-c70931eb]{width:var(--expand-size);height:var(--expand-size);border:1px solid var(--line-strong);border-radius:var(--radius-full)}:root[data-theme=contrast] .expandable-panel__expand[data-v-c70931eb]{border-width:2px}.expandable-panel[data-v-c70931eb]{box-sizing:border-box;padding:var(--space-14) var(--space-20) var(--space-16);color:var(--ink);background:var(--panel);border:1px solid var(--panel-line);border-radius:var(--radius-lg);box-shadow:var(--elevation-1)}.expandable-panel__head[data-v-c70931eb]{align-items:center;gap:var(--space-4) var(--space-8);min-height:var(--panel-head-height);margin-bottom:var(--space-8);flex-wrap:wrap;display:flex}.expandable-panel__icon[data-v-c70931eb]{color:var(--muted);flex:none}.expandable-panel__title[data-v-c70931eb]{min-width:0;font:var(--type-control);color:var(--ink);margin:0}.expandable-panel__suffix[data-v-c70931eb]{color:var(--body);font-weight:400}.expandable-panel__meta[data-v-c70931eb]{align-items:center;gap:var(--space-6);font:var(--type-meta-small);color:var(--muted);flex:none;margin-left:auto;display:inline-flex}.expandable-panel__kbd[data-v-c70931eb]{padding:0 var(--space-4);font:var(--type-meta-tiny);color:var(--muted);border:1px solid var(--line-strong);border-radius:var(--radius-xs)}.expandable-panel__body--fixed[data-v-c70931eb]{height:var(--collapsed-height);overflow:hidden}.expandable-panel__body--no-clip[data-v-c70931eb]{overflow:visible}.expandable-panel__body[data-v-c70931eb]:not(.expandable-panel__body--fixed){min-height:0}.expandable-panel--expanded .expandable-panel__body[data-v-c70931eb]{min-height:var(--collapsed-height)}.expandable-panel__footer[data-v-c70931eb]{gap:var(--space-8);margin-top:var(--space-12);padding-top:var(--space-12);border-top:1px solid var(--line-soft);grid-template-columns:1fr 1fr;display:grid}@media (pointer:coarse){.expandable-panel__kbd[data-v-c70931eb]{display:none}}.bead-quantities__part[data-v-b51c4b54]{white-space:nowrap}.bead-quantities__empty[data-v-b51c4b54]{font:var(--type-meta);font-family:var(--font-sans);color:var(--muted);margin:0}.bead-quantities__table[data-v-b51c4b54]{border-collapse:collapse;width:100%}.bead-quantities__headings[data-v-b51c4b54]{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.bead-quantities__row>td[data-v-b51c4b54]{height:var(--panel-row-height);border-top:1px solid var(--line-soft);padding:0}.bead-quantities__color[data-v-b51c4b54]{font:var(--type-body);color:var(--body);white-space:nowrap}.bead-quantities__swatch[data-v-b51c4b54]{width:var(--swatch-dot);height:var(--swatch-dot);margin-right:var(--space-10);vertical-align:-1px;border-radius:var(--swatch-dot-radius);box-shadow:inset 0 0 0 1px var(--swatch-edge);display:inline-block}.bead-quantities__count[data-v-b51c4b54],.bead-quantities__grams[data-v-b51c4b54]{font:var(--type-meta);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.bead-quantities__count[data-v-b51c4b54]{width:100%;color:var(--ink)}.bead-quantities__grams[data-v-b51c4b54]{min-width:var(--grams-width);padding-left:var(--space-8);color:var(--muted)}.bead-quantities__note[data-v-b51c4b54]{margin-top:var(--space-10)}.number-field[data-v-dd3b410e]{align-items:stretch;min-width:0;display:flex}.number-field .text-field[data-v-dd3b410e]{flex:auto;min-width:0}.number-field__stepper[data-v-dd3b410e]{width:22px;margin-left:var(--space-6);border:1px solid var(--field-line);border-radius:var(--radius-md);flex-direction:column;flex:none;display:flex;overflow:hidden}.number-field__step[data-v-dd3b410e]{color:var(--muted);background:var(--elevated);cursor:pointer;touch-action:pan-x pan-y;-webkit-user-select:none;user-select:none;border:0;flex:50%;justify-content:center;align-items:center;padding:0;display:flex}.number-field__step[data-v-dd3b410e]:not(:last-child){border-bottom:1px solid var(--field-line)}.number-field__step[data-v-dd3b410e]:focus-visible{outline:var(--focus-width) solid var(--focus-ring);outline-offset:-2px}@media (hover:hover){.number-field__step[data-v-dd3b410e]:hover:not(:disabled){color:var(--ink);background:var(--hover-fill)}}.number-field__step[data-v-dd3b410e]:active:not(:disabled){background:var(--press-fill)}.number-field__step[data-v-dd3b410e]:disabled{color:var(--faint);background:var(--surface);cursor:not-allowed}:root[data-theme=contrast] .number-field__stepper[data-v-dd3b410e]{border-width:2px}:root[data-theme=contrast] .number-field__step[data-v-dd3b410e]:not(:last-child){border-bottom-width:2px}.segmented[data-v-da805682]{align-items:stretch;gap:var(--space-2);box-sizing:border-box;padding:var(--space-2);background:var(--elevated);border:1px solid var(--line-strong);border-radius:var(--radius-md);flex-wrap:wrap;display:flex}.segmented__tip[data-v-da805682]{flex:1 1 0;min-width:min-content;display:flex}.segmented__face[data-v-da805682]{gap:var(--space-6);justify-content:center;align-items:center;display:inline-flex}.segmented__tip>.segmented__option[data-v-da805682]{flex:auto}.segmented__option[data-v-da805682]{min-width:min-content;min-height:var(--control-height);padding:var(--space-4) var(--space-10);font:var(--type-tab);color:var(--body);text-align:center;border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard);background:0 0;border:0;flex:1 1 0;place-items:center;line-height:1rem;display:grid}.segmented--small .segmented__option[data-v-da805682]{min-height:var(--control-height-small)}.segmented--mono .segmented__option[data-v-da805682]{font:var(--type-meta)}@media (hover:hover){.segmented__option[data-v-da805682]:hover:not([aria-disabled=true],[aria-checked=true]){background:var(--hover-fill)}}.segmented__option[aria-checked=true][data-v-da805682]{color:var(--canvas);background:var(--ink)}.segmented__option[data-v-da805682]:focus-visible{outline:var(--focus-width) solid var(--focus-ring);outline-offset:1px}.segmented--disabled[data-v-da805682]{background:var(--surface);border-color:var(--line)}.segmented__option[aria-disabled=true][data-v-da805682]{color:var(--faint);cursor:not-allowed}.segmented__option[aria-disabled=true][aria-checked=true][data-v-da805682]{color:var(--surface);background:var(--faint)}:root[data-theme=contrast] .segmented[data-v-da805682]{border-width:2px}:root[data-theme=contrast] .segmented__option[aria-checked=true][data-v-da805682]{font-weight:700}@media (forced-colors:active){.segmented__option[aria-checked=true][data-v-da805682]{outline:2px solid highlight}}.convert-size[data-v-4e53b7b0]{gap:var(--space-16);flex-direction:column;display:flex}.convert-size__message[data-v-4e53b7b0]{font:var(--type-body);color:var(--body);margin:0}.convert-size__pair[data-v-4e53b7b0]{gap:var(--space-10);grid-template-columns:1fr 1fr;display:grid}.convert-size__warning[data-v-4e53b7b0]{gap:var(--space-6);font:var(--type-meta);font-family:var(--font-sans);color:var(--body);align-items:flex-start;margin:0;display:flex}.convert-size__warning>.icon[data-v-4e53b7b0]{margin-top:var(--space-2);color:var(--warning)}.field-select[data-v-65f3c0cf]{display:flex;position:relative}.field-select__control[data-v-65f3c0cf]{box-sizing:border-box;width:100%;height:var(--field-height);padding:0 calc(var(--space-12) * 2 + 1rem) 0 var(--space-12);font:var(--type-body);color:var(--ink);text-overflow:ellipsis;appearance:none;background:var(--elevated);border:1px solid var(--field-line);border-radius:var(--radius-md);cursor:pointer;margin:0}.field-select__control[data-v-65f3c0cf]:focus-visible{border-color:var(--ink);outline:var(--focus-width) solid var(--focus-ring);outline-offset:2px}.field-select__control[data-v-65f3c0cf]:disabled{color:var(--faint);background:var(--surface);border-color:var(--line);cursor:not-allowed}.field-select__chevron[data-v-65f3c0cf]{top:50%;right:var(--space-12);color:var(--muted);pointer-events:none;position:absolute;transform:translateY(-50%)}.field-select--disabled .field-select__chevron[data-v-65f3c0cf]{color:var(--faint)}:root[data-theme=contrast] .field-select__control[data-v-65f3c0cf]{border-width:2px}.file-button[data-v-0ec3ca4b]{gap:var(--space-6);flex-direction:column;display:flex}.file-button__target[data-v-0ec3ca4b]{justify-content:center;align-items:center;gap:var(--space-8);box-sizing:border-box;height:var(--field-height);padding:0 var(--space-12);font:var(--type-control);color:var(--ink);background:var(--elevated);border:1px dashed var(--line-strong);border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard);margin:0;display:flex;position:relative}@media (hover:hover){.file-button__target[data-v-0ec3ca4b]:hover:not(.file-button__target--disabled){border-color:var(--ink)}}.file-button__target--over[data-v-0ec3ca4b]{background:var(--hover-fill);border-color:var(--ink)}.file-button__target[data-v-0ec3ca4b]:has(:focus-visible){outline:var(--focus-width) solid var(--focus-ring);outline-offset:2px}.file-button__target--disabled[data-v-0ec3ca4b]{color:var(--faint);background:var(--surface);cursor:not-allowed}.file-button__input[data-v-0ec3ca4b]{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.file-button__note[data-v-0ec3ca4b]{font:var(--type-meta);font-family:var(--font-sans);color:var(--muted);margin:0}:root[data-theme=contrast] .file-button__target[data-v-0ec3ca4b]{border-width:2px}.loading[data-v-ad733ad5]{align-items:center;gap:var(--space-12);padding:var(--space-24);font:var(--type-meta);font-family:var(--font-sans);color:var(--body);text-align:center;flex-direction:column;display:flex}.loading--compact[data-v-ad733ad5]{gap:var(--space-8);text-align:left;flex-direction:row;padding:0}.loading__beads[data-v-ad733ad5]{gap:var(--space-8);flex:none;display:inline-flex}.loading--compact .loading__beads[data-v-ad733ad5]{gap:var(--space-4)}.loading__bead[data-v-ad733ad5]{width:var(--swatch-dot);height:var(--swatch-dot);background:var(--accent);border-radius:var(--radius-full);animation:1.2s ease-in-out infinite loading-swell-ad733ad5}.loading--compact .loading__bead[data-v-ad733ad5]{width:var(--space-8);height:var(--space-8)}.loading__bead[data-v-ad733ad5]:nth-child(2){animation-delay:.15s}.loading__bead[data-v-ad733ad5]:nth-child(3){animation-delay:.3s}@keyframes loading-swell-ad733ad5{0%,80%,to{opacity:.45;transform:scale(.55)}40%{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.loading__bead[data-v-ad733ad5]{opacity:.8;animation:none}}.loading__track[data-v-ad733ad5]{width:calc(var(--tooltip-wide) - var(--space-24));height:var(--track-height);background:var(--track);border-radius:var(--radius-full);display:block;overflow:hidden}.loading__fill[data-v-ad733ad5]{background:var(--track-fill);height:100%;display:block}.new-project-form__convert-tip[data-v-95aea64c]{flex-direction:column}.new-project-form[data-v-95aea64c]{gap:var(--space-16);flex-direction:column;display:flex}.new-project-form__submit[data-v-95aea64c]{width:100%;height:var(--field-height)}.new-project-form__or[data-v-95aea64c]{align-items:center;gap:var(--space-10);font:var(--type-meta-small);color:var(--muted);margin:0;display:flex}.new-project-form__or[data-v-95aea64c]:before,.new-project-form__or[data-v-95aea64c]:after{content:"";background:var(--panel-rule);flex:1;height:1px}.new-project-form__convert[data-v-95aea64c]{gap:var(--space-6);flex-direction:column;display:flex}.new-project-form__hint[data-v-95aea64c],.new-project-form__error[data-v-95aea64c]{gap:var(--space-6);font:var(--type-meta);font-family:var(--font-sans);color:var(--muted);align-items:flex-start;margin:0;display:flex}.new-project-form__error[data-v-95aea64c]{color:var(--danger)}.new-project-form__error>.icon[data-v-95aea64c]{margin-top:var(--space-2)}.project-thumbnail[data-v-d8a680fa]{width:var(--thumbnail-size);height:var(--thumbnail-size);background:var(--board);border-radius:var(--radius-full);place-items:center;display:grid;overflow:hidden}.project-thumbnail__picture[data-v-d8a680fa]{max-width:100%;max-height:100%;image-rendering:pixelated}.project-list__empty[data-v-3e2a21d7]{font:var(--type-meta);font-family:var(--font-sans);color:var(--muted);margin:0}.project-list__grid[data-v-3e2a21d7]{gap:var(--space-12) var(--space-8);padding:var(--space-4) 0 0;grid-template-columns:repeat(5,minmax(0,1fr));margin:0;list-style:none;display:grid}.project-list__item[data-v-3e2a21d7]{justify-content:center;min-width:0;display:flex;position:relative}.project-list__item[data-v-3e2a21d7]>.app-tooltip{min-width:0}.project-list__select[data-v-3e2a21d7]{min-width:0;color:var(--ink);text-align:center;border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;padding:0;display:flex}.project-list__select[data-v-3e2a21d7]:focus-visible{outline:var(--focus-width) solid var(--focus-ring);outline-offset:2px}.project-list__circle[data-v-3e2a21d7]{width:var(--thumbnail-circle);height:var(--thumbnail-circle);background:var(--elevated);border-radius:var(--radius-full);transition:box-shadow var(--duration-fast) var(--ease-standard);place-items:center;display:grid}@media (hover:hover){.project-list__select:hover .project-list__circle[data-v-3e2a21d7]{box-shadow:0 0 0 1px var(--line-strong)}}.project-list__name[data-v-3e2a21d7]{width:var(--thumbnail-name-width);margin-top:var(--space-6);font:var(--type-small);white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.project-list__size[data-v-3e2a21d7]{font:var(--type-meta-tiny);color:var(--muted)}.project-list__item--active .project-list__circle[data-v-3e2a21d7]{box-shadow:0 0 0 2px var(--panel), 0 0 0 4px var(--accent-strong)}.project-list__item--active .project-list__name[data-v-3e2a21d7]{color:var(--accent-strong)}.project-list__remove[data-v-3e2a21d7]{top:calc(-1 * var(--space-4));right:var(--space-2);width:var(--thumbnail-remove);height:var(--thumbnail-remove);color:var(--ink);background:var(--panel);border:1px solid var(--line-strong);border-radius:var(--radius-full);cursor:pointer;opacity:0;transition:opacity var(--duration-fast) var(--ease-standard);place-items:center;padding:0;display:grid;position:absolute}.project-list__remove[data-v-3e2a21d7] .icon{width:.6875rem!important;height:.6875rem!important}.project-list__item:hover .project-list__remove[data-v-3e2a21d7],.project-list__item:focus-within .project-list__remove[data-v-3e2a21d7]{opacity:1}@media (hover:none){.project-list__remove[data-v-3e2a21d7]{opacity:1}}.project-list__remove[data-v-3e2a21d7]:focus-visible{outline:var(--focus-width) solid var(--focus-ring);outline-offset:1px}:root[data-theme=contrast] .project-list__remove[data-v-3e2a21d7]{border-width:2px}@media (forced-colors:active){.project-list__item--active .project-list__circle[data-v-3e2a21d7]{outline-offset:2px;outline:2px solid highlight}}.app-menu[data-v-12d574f4]{display:inline-flex;position:relative}.app-menu__icon-button[data-v-12d574f4]{box-sizing:border-box;width:var(--control-height);height:var(--control-height);color:var(--ink);border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard);background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}@media (width<=743px){.app-menu__icon-button[data-v-12d574f4]{width:2.5rem;height:2.5rem}.app-menu__icon-button[data-v-12d574f4] svg{width:1.25rem;height:1.25rem}}.app-menu__icon-button[data-v-12d574f4]:focus-visible{outline:var(--focus-width) solid var(--focus-ring);outline-offset:2px}.app-menu__icon-button--open[data-v-12d574f4]{background:var(--press-fill)}@media (hover:hover){.app-menu__icon-button[data-v-12d574f4]:hover:not(.app-menu__icon-button--open){background:var(--hover-fill)}}.app-menu__list[data-v-12d574f4]{top:calc(100% + var(--space-4));z-index:var(--z-popover);box-sizing:border-box;min-width:var(--menu-width);padding:var(--space-4);background:var(--overlay-fill);border:1px solid var(--overlay-line);border-radius:var(--radius-md);box-shadow:var(--elevation-3);flex-direction:column;display:flex;position:absolute}.app-menu__list--popover[data-v-12d574f4]{width:var(--popover-width);padding:var(--space-14);border-radius:var(--popover-radius)}.app-menu__list--start[data-v-12d574f4]{left:0}.app-menu__list--end[data-v-12d574f4]{right:0}:root[data-theme=contrast] .app-menu__list[data-v-12d574f4]{box-shadow:none;border-width:2px}.app-menu__footer[data-v-12d574f4]{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--line-soft)}.app-menu-enter-active[data-v-12d574f4]{transition:opacity var(--duration-base) var(--ease-out), transform var(--duration-base) var(--ease-out)}.app-menu-leave-active[data-v-12d574f4]{transition:opacity calc(var(--duration-base) * .75) var(--ease-in), transform calc(var(--duration-base) * .75) var(--ease-in)}.app-menu-enter-from[data-v-12d574f4],.app-menu-leave-to[data-v-12d574f4]{opacity:0;transform:translateY(calc(-1 * var(--space-4)))}@media (prefers-reduced-motion:reduce){.app-menu-enter-from[data-v-12d574f4],.app-menu-leave-to[data-v-12d574f4]{transform:none}}.save-box__prompt[data-v-36863520]{gap:var(--space-8);flex-direction:column;display:flex}.save-box__prompt-title[data-v-36863520]{font:var(--type-control);margin:0}.save-box__prompt-body[data-v-36863520]{color:var(--body);margin:0;font-size:.8125rem;line-height:18px}.save-box__prompt-actions[data-v-36863520]{gap:var(--space-8);flex-wrap:wrap;display:flex}.save-box[data-v-36863520]{box-sizing:border-box;padding:var(--space-16) var(--space-20);background:var(--panel);border:1px solid var(--panel-line);border-radius:var(--radius-lg);box-shadow:var(--elevation-1)}.save-box__state[data-v-36863520]{align-items:center;gap:var(--space-6);margin:0 0 var(--space-12);font:var(--type-label);color:var(--muted);text-transform:lowercase;display:flex}.save-box__state>.icon[data-v-36863520]{color:var(--accent-strong)}.save-box__state--failed[data-v-36863520],.save-box__state--failed>.icon[data-v-36863520]{color:var(--danger)}.save-box__buttons[data-v-36863520]{align-items:flex-start;gap:var(--space-8);display:flex}.save-box__save[data-v-36863520],.save-box__buttons[data-v-36863520]>.app-button-wrap{flex:auto;min-width:min-content}.save-box__export[data-v-36863520]{align-items:flex-end;gap:var(--space-6);flex-direction:column;flex:none;display:flex}.save-box__name[data-v-36863520]{justify-content:space-between;align-items:center;gap:var(--space-8);padding:var(--space-4) 0 0 var(--space-10);display:flex}.save-box__name-text[data-v-36863520]{flex-direction:column;min-width:0;display:flex}.save-box__name-label[data-v-36863520]{font:var(--type-meta-small);color:var(--muted);text-transform:lowercase}.save-box__name-value[data-v-36863520]{font:var(--type-control);color:var(--ink);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.save-box__name-value--none[data-v-36863520]{color:var(--muted)}.save-box .save-box__name-change[data-v-36863520]{width:auto;color:var(--accent-strong);flex:none}.save-box__loading[data-v-36863520]{margin-top:var(--space-12)}.save-box__hint[data-v-36863520]{font:var(--type-meta-small);color:var(--muted)}.disclosure-row[data-v-a96a12b4]{border-bottom:1px solid var(--panel-rule)}.disclosure-row__head[data-v-a96a12b4]{align-items:center;gap:var(--space-8);width:100%;padding:var(--space-10) 0;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;display:flex}.disclosure-row__label[data-v-a96a12b4]{font:var(--type-control)}.disclosure-row__summary[data-v-a96a12b4]{font:var(--type-meta);color:var(--muted);white-space:nowrap;margin-left:auto}.disclosure-row__chevron[data-v-a96a12b4]{color:var(--muted)}.disclosure-row__head--split[data-v-a96a12b4]{cursor:default}.disclosure-row__main[data-v-a96a12b4]{align-items:center;gap:var(--space-8);font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0;display:flex}.disclosure-row__chip[data-v-a96a12b4]{box-sizing:border-box;min-width:22px;height:22px;font:400 12px/20px var(--font-mono);color:var(--ink);background:var(--elevated);border:1px solid var(--line-strong);cursor:pointer;border-radius:6px;margin-left:auto;padding:0 6px}.disclosure-row__chip[data-v-a96a12b4]:focus-visible,.disclosure-row__main[data-v-a96a12b4]:focus-visible{outline:var(--focus-width) solid var(--focus-ring);outline-offset:2px}.disclosure-row__summary--after-chip[data-v-a96a12b4]{margin-left:0}.disclosure-row__chevron--end[data-v-a96a12b4]{cursor:pointer}.disclosure-row__label+.disclosure-row__chevron[data-v-a96a12b4]{margin-left:auto}.disclosure-row__head[data-v-a96a12b4]:focus-visible{outline:var(--focus-width) solid var(--focus-ring);outline-offset:2px}@media (hover:hover){.disclosure-row__head:hover .disclosure-row__label[data-v-a96a12b4]{text-underline-offset:3px;text-decoration:underline}}.disclosure-row__panel[data-v-a96a12b4]{gap:var(--space-10);padding:0 0 var(--space-12);flex-direction:column;display:flex}.mirror-controls__line[data-v-de454373]{align-items:center;gap:var(--space-6);margin:0;display:flex}.mirror-controls__line-label[data-v-de454373]{font:var(--type-body);color:var(--body);margin-right:auto}.custom-color-picker-wrap[data-v-5f1e2727]{flex:auto;min-width:max-content;display:flex}.custom-color-picker[data-v-5f1e2727]{justify-content:center;align-items:center;gap:var(--space-8);box-sizing:border-box;min-width:max-content;height:var(--control-height);padding:0 var(--space-8);font:var(--type-tab);color:var(--ink);background:var(--elevated);border:1px solid var(--panel-line);border-radius:var(--radius-md);cursor:pointer;transition:border-color var(--duration-fast) var(--ease-standard);flex:auto;margin:0;display:flex;position:relative}:root[data-theme=dark] .custom-color-picker[data-v-5f1e2727]{border-color:var(--elevated)}@media (hover:hover){.custom-color-picker[data-v-5f1e2727]:hover{border-color:var(--ink)}}.custom-color-picker[data-v-5f1e2727]:has(:focus-visible){outline:var(--focus-width) solid var(--focus-ring);outline-offset:2px}.custom-color-picker--selected[data-v-5f1e2727]{box-shadow:0 0 0 2px var(--panel), 0 0 0 4px var(--ring)}.custom-color-picker__input[data-v-5f1e2727]{opacity:0;cursor:pointer;border:0;width:100%;height:100%;margin:0;padding:0;position:absolute;inset:0}.custom-color-picker__swatch[data-v-5f1e2727]{width:var(--swatch-dot);height:var(--swatch-dot);border-radius:var(--swatch-dot-radius);background:repeating-linear-gradient(45deg, var(--muted) 0 1px, transparent 1px var(--space-4));flex:none}.custom-color-picker__label[data-v-5f1e2727]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:root[data-theme=contrast] .custom-color-picker[data-v-5f1e2727]{border:2px solid var(--line-strong)}.swatch[data-v-6bd42b45]{width:var(--swatch-size,100%);display:block;position:relative}.swatch[data-v-6bd42b45] .app-tooltip{display:block}.swatch__chip[data-v-6bd42b45]{box-sizing:border-box;aspect-ratio:1;width:100%;min-width:var(--swatch-min,0);min-height:var(--swatch-min,0);color:var(--ink);border-radius:var(--radius-sm);box-shadow:inset 0 0 0 1px var(--swatch-edge);cursor:pointer;transition:transform var(--duration-instant) var(--ease-standard);border:0;justify-content:center;align-items:center;padding:0;display:flex}.swatch__chip--selected[data-v-6bd42b45]{box-shadow:inset 0 0 0 1px var(--swatch-edge), 0 0 0 2px var(--swatch-gap,var(--panel)), 0 0 0 4px var(--ring)}.swatch__chip[data-v-6bd42b45]:active{transform:scale(.93)}.swatch__chip[data-v-6bd42b45]:focus-visible{outline:var(--focus-width) solid var(--focus-ring);outline-offset:var(--focus-offset)}.swatch__remove[data-v-6bd42b45]{z-index:1;box-sizing:border-box;width:calc(var(--swatch-remove-size) + 2 * var(--space-4));height:calc(var(--swatch-remove-size) + 2 * var(--space-4));padding:var(--space-4);cursor:pointer;background:0 0;border:0;place-items:start end;display:grid;position:absolute;top:0;right:0}.swatch__remove--dark[data-v-6bd42b45]{--mark:var(--swatch-mark-dark);--mark-halo:var(--swatch-mark-light)}.swatch__remove--light[data-v-6bd42b45]{--mark:var(--swatch-mark-light);--mark-halo:var(--swatch-mark-dark)}.swatch__remove-icon[data-v-6bd42b45]{color:var(--mark);stroke-width:var(--swatch-remove-stroke);filter:drop-shadow(0 0 var(--swatch-mark-halo) var(--mark-halo)) drop-shadow(0 0 var(--swatch-mark-halo) var(--mark-halo));width:var(--swatch-remove-size)!important;height:var(--swatch-remove-size)!important}.swatch__remove[data-v-6bd42b45]:focus-visible{outline:var(--focus-width) solid var(--focus-ring);outline-offset:calc(-1 * var(--focus-offset))}@media (prefers-reduced-motion:reduce){.swatch__chip[data-v-6bd42b45]:active{transform:none}}.image-colors-picker[data-v-0c84bbdc]{--swatch-size:var(--image-color-size);--swatch-gap:var(--overlay-fill);grid-template-columns:repeat(7, var(--image-color-size));gap:var(--space-6);display:grid}.image-colors-button[data-v-c2fee9e0]{flex:auto;min-width:max-content;display:flex}.image-colors-button[data-v-c2fee9e0] .menu-button,.image-colors-button[data-v-c2fee9e0] .app-tooltip{flex:auto;min-width:0;display:flex}.image-colors-button[data-v-c2fee9e0] .app-button{flex:auto;justify-content:center}.palette-picker[data-v-536558e2]{gap:var(--space-6);grid-template-columns:repeat(8,1fr);display:grid}.palette-picker[data-v-536558e2] .palette-picker__swatch--dragging{opacity:.5}.palette-picker[data-v-536558e2] .palette-picker__swatch--target{outline:var(--focus-width) solid var(--focus-ring);outline-offset:2px}@media (pointer:coarse){.palette-picker[data-v-536558e2]{grid-template-columns:repeat(auto-fill, minmax(var(--swatch-touch-min), 1fr));--swatch-min:var(--swatch-touch-min)}}.tool-color-controls__buttons[data-v-651100bc]{gap:var(--space-8);margin-top:var(--space-12);flex-wrap:wrap;display:flex}.stepper__slot[data-v-1bb0bf4d]{display:inline-flex}.stepper[data-v-1bb0bf4d]{box-sizing:border-box;height:var(--field-height);background:var(--elevated);border:1px solid var(--field-line);border-radius:var(--radius-md);align-items:stretch;display:inline-flex}.stepper__button[data-v-1bb0bf4d]{width:var(--field-height);font:var(--type-title);color:var(--ink);border-radius:var(--radius-md);cursor:pointer;touch-action:pan-x pan-y;-webkit-user-select:none;user-select:none;background:0 0;border:0;place-items:center;padding:0;display:grid}@media (hover:hover){.stepper__button[data-v-1bb0bf4d]:hover:not(:disabled){background:var(--hover-fill)}}.stepper__button[data-v-1bb0bf4d]:active:not(:disabled){background:var(--press-fill)}.stepper__button[data-v-1bb0bf4d]:focus-visible{outline:var(--focus-width) solid var(--focus-ring);outline-offset:1px}.stepper__button[data-v-1bb0bf4d]:disabled{color:var(--faint);cursor:not-allowed}.stepper__value[data-v-1bb0bf4d]{min-width:var(--stepper-value-width);padding:0 var(--space-6);font:var(--type-meta);font-size:var(--stepper-value-size);color:var(--ink);border-right:1px solid var(--line);border-left:1px solid var(--line);place-items:center;display:grid;position:relative}.stepper__value-button[data-v-1bb0bf4d]{font:inherit;color:inherit;line-height:inherit;cursor:text;background:0 0;border:0;padding:0}.stepper__value-button[data-v-1bb0bf4d]:disabled,.stepper__value-button[aria-disabled=true][data-v-1bb0bf4d]{cursor:not-allowed}.stepper__value-button--hidden[data-v-1bb0bf4d]{visibility:hidden}.stepper__value-button[data-v-1bb0bf4d]:focus-visible,.stepper__input[data-v-1bb0bf4d]:focus{outline:var(--focus-width) solid var(--focus-ring);outline-offset:var(--focus-offset)}.stepper__input[data-v-1bb0bf4d]{box-sizing:border-box;width:100%;min-width:0;font:inherit;color:inherit;text-align:center;background:var(--elevated);border:0;padding:0;position:absolute;inset:0}.stepper--disabled[data-v-1bb0bf4d]{background:var(--surface);border-color:var(--line)}.stepper--disabled .stepper__value[data-v-1bb0bf4d]{color:var(--faint)}:root[data-theme=contrast] .stepper[data-v-1bb0bf4d]{border-width:2px}.frame-controls[data-v-d70a2ce8]{flex-direction:column;gap:8px;min-width:0;display:flex}.frame-controls__setting[data-v-d70a2ce8]{justify-content:space-between;align-items:center;gap:var(--space-8);font:var(--type-control);display:flex}.frame-controls__technique[data-v-d70a2ce8]{gap:var(--space-6);font:var(--type-control);flex-direction:column;display:flex}.frame-controls__actions[data-v-d70a2ce8]{gap:var(--space-8);flex-wrap:wrap;display:flex}.frame-controls__estimate[data-v-d70a2ce8]{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.frame-controls__estimate-text[data-v-d70a2ce8]{white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:700}.frame-controls__note[data-v-d70a2ce8]{opacity:.75;margin:0;font-size:.875rem;line-height:1.35}.tool-group[data-v-9f6092e7]{flex-direction:column;display:flex;position:relative}.tool-group__title[data-v-9f6092e7]{margin:0 0 var(--space-8);font:var(--type-label);color:var(--muted);text-transform:lowercase}.tool-group__grid[data-v-9f6092e7]{flex-direction:column;display:flex}.tool-group__chevron[data-v-9f6092e7]{color:var(--muted);position:absolute;top:0;right:0}.tool-group__overflow[data-v-9f6092e7]{gap:var(--space-6);margin-top:var(--space-6);flex-direction:column;display:flex}.toolbox[data-v-4020aef9]{gap:var(--space-20);box-sizing:border-box;padding:var(--space-24);color:var(--ink);background:var(--panel);border:1px solid var(--panel-line);border-radius:var(--radius-lg);flex-direction:column;display:flex}.tool-buttons[data-v-4020aef9]{background-image:repeating-linear-gradient(to bottom, transparent 0 71px, var(--line-strong) 71px 72px);grid-template-columns:repeat(5,56px);grid-auto-rows:72px;display:grid}.toolbox__links[data-v-4020aef9]{margin-top:var(--space-10);justify-content:space-between;display:flex}.toolbox__links--frame[data-v-4020aef9]{margin-top:var(--space-12)}.toolbox__edit[data-v-4020aef9]{gap:var(--space-6);grid-template-columns:repeat(4,1fr);display:grid}.toolbox__edit[data-v-4020aef9] .app-tooltip,.toolbox__edit[data-v-4020aef9] .icon-btn{width:100%;display:flex}.toolbox__rows[data-v-4020aef9]{border-top:1px solid var(--panel-rule)}.app-shell__column[data-v-577909ff]{gap:var(--space-16);box-sizing:border-box;min-height:0;padding-right:var(--space-6);overscroll-behavior:none;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;flex-direction:column;display:flex;overflow-y:auto}@media (width<=1023px){.app-shell__column[data-v-577909ff]{display:none}}@media (width>=1024px) and (width<=1279px){.app-shell__column[data-v-577909ff]{gap:var(--space-12)}}.app-shell__column[data-v-577909ff]>*{flex:none;width:auto}.app-shell__new-project[data-v-577909ff]{gap:var(--space-20);box-sizing:border-box;padding:var(--space-24);background:var(--panel);border:1px solid var(--panel-line);border-radius:var(--radius-lg);flex-direction:column;display:flex}.app-shell__box-title[data-v-577909ff]{font:var(--type-title);color:var(--ink);margin:0}.canvas-backdrop[data-v-9a7501eb]{pointer-events:none;-webkit-user-select:none;user-select:none;position:absolute;inset:0;overflow:hidden}.canvas-backdrop__curve[data-v-9a7501eb]{width:100%;height:100%;position:absolute;inset:0}.canvas-backdrop__curve path[data-v-9a7501eb]{fill:none;stroke:var(--curve);stroke-width:1.5px}.canvas-backdrop__word[data-v-9a7501eb]{right:calc(var(--space-8) * -1);bottom:calc((var(--space-32) + var(--space-8)) * -1);font:var(--type-word);letter-spacing:var(--tracking-word);color:var(--word);white-space:nowrap;position:absolute}.canvas-hint[data-v-4793c616]{bottom:var(--space-12);z-index:var(--z-canvas-overlay);align-items:center;gap:var(--space-6);font:400 .75rem/1rem var(--font-sans);color:var(--muted);pointer-events:none;flex-wrap:wrap;margin:0;display:flex;position:absolute;left:14px}.canvas-hint__dot[data-v-4793c616]{margin:0 var(--space-4)}.canvas-hint__key[data-v-4793c616]{box-sizing:border-box;min-width:20px;height:20px;padding:0 var(--space-4);font:var(--type-meta-small);color:var(--body);background:var(--elevated);border:1px solid var(--line-strong);border-radius:var(--radius-xs);border-bottom-width:2px;justify-content:center;align-items:center;display:inline-flex}.canvas-color[data-v-82da01c9]{flex:none}.canvas-color__dot[data-v-82da01c9]{box-sizing:border-box;border:1.5px solid var(--field-line);border-radius:var(--radius-full);width:16px;height:16px}.canvas-color__popup[data-v-82da01c9]{gap:var(--space-8);color:var(--ink);flex-direction:column;display:flex}.canvas-color__label[data-v-82da01c9]{font:var(--type-meta-small);color:var(--muted)}.canvas-color__swatches[data-v-82da01c9]{--swatch-size:32px;--swatch-gap:var(--overlay-fill);gap:var(--space-8);padding:var(--space-4);margin:calc(-1 * var(--space-4));display:flex}.canvas-color__swatches[data-v-82da01c9]>*{flex:none}.canvas-color__name[data-v-82da01c9]{font:var(--type-control)}.canvas-color__hex[data-v-82da01c9]{margin-left:var(--space-4);font:var(--type-meta);color:var(--muted)}@media (pointer:coarse){.canvas-color__swatches[data-v-82da01c9]{--swatch-size:40px}}.zoom-controls[data-v-b6843a2f]{align-items:center;gap:var(--space-2);display:flex}.zoom-controls__level[data-v-b6843a2f]{width:var(--zoom-level-width);font:var(--type-meta);color:var(--ink);text-align:center}.canvas-strip[data-v-f2aeb3e2]{align-items:center;gap:var(--space-12);box-sizing:border-box;height:var(--strip-height);padding:0 var(--space-10) 0 var(--space-16);color:var(--ink);border-bottom:1px solid color-mix(in srgb, var(--box-muted) 22%, transparent);flex:none;display:flex;container-type:inline-size}.canvas-strip__title[data-v-f2aeb3e2]{font:var(--type-control);white-space:nowrap}.canvas-strip__meta[data-v-f2aeb3e2]{text-overflow:ellipsis;min-width:0;font:var(--type-meta);color:var(--box-muted);text-transform:lowercase;white-space:nowrap;overflow:hidden}@container (width<=799px){.canvas-strip__estimate[data-v-f2aeb3e2]{display:none}}@container (width<=699px){.canvas-strip__title[data-v-f2aeb3e2],.canvas-strip__meta[data-v-f2aeb3e2]{margin-inline-end:calc(var(--space-10) * -1)}.canvas-strip__icon[data-v-f2aeb3e2]{display:none}}.canvas-strip__hint[data-v-f2aeb3e2]{text-overflow:ellipsis;min-width:0;font:var(--type-meta-small);color:var(--box-muted);text-transform:lowercase;white-space:nowrap;margin-left:auto;overflow:hidden}.canvas-strip__hint+.canvas-strip__rulers[data-v-f2aeb3e2],.canvas-strip__hint+.canvas-strip__zoom[data-v-f2aeb3e2]{margin-left:0}.canvas-strip__rulers[data-v-f2aeb3e2]{margin-left:auto}.canvas-strip__color[data-v-f2aeb3e2]{flex:none;margin-left:auto;display:flex}.canvas-strip__rulers+.canvas-strip__color[data-v-f2aeb3e2],.canvas-strip__hint+.canvas-strip__color[data-v-f2aeb3e2],.canvas-strip__color+.canvas-strip__zoom[data-v-f2aeb3e2],.canvas-strip__rulers+.canvas-strip__zoom[data-v-f2aeb3e2]{margin-left:0}.canvas-strip__zoom[data-v-f2aeb3e2]{flex:none;margin-left:auto}.context-bar[data-v-88e2e72d]{align-items:center;gap:var(--space-8);box-sizing:border-box;height:2.5rem;padding:0 var(--space-10);color:var(--canvas);background:var(--ink);border-radius:var(--context-bar-radius);box-shadow:var(--elevation-3);display:flex}.context-bar--armed[data-v-88e2e72d]{color:var(--on-accent);background:var(--accent)}.context-bar__size[data-v-88e2e72d]{font:var(--type-meta);color:inherit;opacity:.8;flex:none}.context-bar__hint[data-v-88e2e72d]{min-width:0;font:var(--type-small);white-space:nowrap;text-overflow:ellipsis;flex:auto;overflow:hidden}.context-bar[data-v-88e2e72d] .context-bar__button{justify-content:center;align-items:center;gap:var(--space-6);width:auto;min-width:2.5rem;height:2.5rem;padding:0 var(--space-8);font:var(--type-small);color:inherit;border-radius:var(--radius-sm);background:0 0;border:0;flex:none;display:flex}.context-bar[data-v-88e2e72d] .icon-btn--round.context-bar__button{width:2.5rem;padding:0}.context-bar[data-v-88e2e72d] .context-bar__button[aria-disabled=true]{color:inherit;opacity:.5;background:0 0}@media (hover:hover){.context-bar[data-v-88e2e72d] .context-bar__button:hover:not([aria-disabled=true]){opacity:.8;background:0 0}}.context-bar[data-v-88e2e72d] .context-bar__button:focus-visible{outline:var(--focus-width) solid var(--canvas);outline-offset:-2px}.context-bar--armed[data-v-88e2e72d] .context-bar__button:focus-visible{outline-color:var(--on-accent)}.convert-image-frame[data-v-3508f023]{align-items:center;gap:var(--space-12);flex-direction:column;display:flex}.convert-image-frame__box[data-v-3508f023]{border-radius:var(--radius-md);cursor:grab;touch-action:none;position:relative;overflow:hidden}.convert-image-frame__box[data-v-3508f023]:active{cursor:grabbing}.convert-image-frame__canvas[data-v-3508f023]{display:block}.convert-image-frame__lattice[data-v-3508f023]{transform-origin:0 0;pointer-events:none;position:absolute;top:0;left:0}.convert-image-frame__frame[data-v-3508f023]{z-index:1;pointer-events:none;outline:2px solid var(--accent);box-shadow:0 0 0 9999px var(--framing-dim);position:absolute}.convert-image-frame__hint[data-v-3508f023]{bottom:var(--space-8);left:var(--space-8);z-index:2;padding:var(--space-4) var(--space-8);font:var(--type-small);color:var(--canvas);pointer-events:none;background:var(--ink);border-radius:var(--radius-sm);margin:0;position:absolute}.convert-image-frame__controls[data-v-3508f023]{align-items:center;gap:var(--space-8) var(--space-20);box-sizing:border-box;min-height:var(--progress-height);padding:var(--space-8) var(--space-12) var(--space-8) var(--space-16);border-top:1px solid var(--box-line);flex-wrap:wrap;flex:none;display:flex}.convert-image-frame__setting[data-v-3508f023]{align-items:center;gap:var(--space-8);flex-wrap:wrap;max-width:100%;display:inline-flex}.convert-image-frame__label[data-v-3508f023]{align-items:center;gap:var(--space-8);font:var(--type-label);color:var(--box-muted);text-transform:lowercase;white-space:nowrap;font-variant-numeric:tabular-nums;flex-wrap:wrap;display:inline-flex}.convert-image-frame__swatches[data-v-3508f023]{gap:var(--space-2);max-width:calc(7 * (var(--swatch-dot) + var(--space-2)));flex-wrap:wrap;display:inline-flex}.convert-image-frame__swatch[data-v-3508f023]{width:var(--swatch-dot);height:var(--swatch-dot);border-radius:var(--swatch-dot-radius);box-shadow:inset 0 0 0 1px var(--swatch-edge)}.convert-image-frame__actions[data-v-3508f023]{gap:var(--space-8);margin-left:auto;display:inline-flex}.empty-canvas[data-v-7d1e86c7]{width:100%;height:100%;min-height:160px;position:relative}.empty-canvas__board[data-v-7d1e86c7]{background:var(--board) radial-gradient(circle, var(--bead-empty) 0 36%, transparent 40%) var(--space-6) var(--space-6) / var(--space-12) var(--space-12);position:absolute;inset:0}.empty-canvas__message[data-v-7d1e86c7]{justify-content:center;align-items:center;gap:var(--space-10);padding:var(--space-24) var(--space-16);text-align:center;flex-direction:column;display:flex;position:absolute;inset:0}.empty-canvas__title[data-v-7d1e86c7]{font:var(--type-control);color:var(--ink);margin:0}.empty-canvas__hint[data-v-7d1e86c7]{max-width:calc(var(--tooltip-wide) + var(--space-32) * 2);font:var(--type-meta);font-family:var(--font-sans);color:var(--muted);margin:0}.project-surface[data-v-76bb9fd8]:focus{outline:none}.project-surface[data-v-76bb9fd8]{touch-action:none;-webkit-user-select:none;user-select:none;position:absolute;inset:0;overflow:hidden}.project-surface--over-bead[data-v-76bb9fd8]{cursor:none}.project-surface--refused[data-v-76bb9fd8]{cursor:not-allowed}.project-surface--moving[data-v-76bb9fd8]{cursor:grab}.project-surface--setting-frame[data-v-76bb9fd8]{cursor:crosshair}.project-surface--dragging[data-v-76bb9fd8]{cursor:grabbing}.project-surface__canvas[data-v-76bb9fd8]{width:100%;height:100%;display:block;position:absolute;inset:0}.app-switch[data-v-a793dcd2]{width:var(--switch-width);height:var(--switch-height);background:var(--switch-off);border-radius:var(--radius-full);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard);border:0;flex:none;padding:0;position:relative}.app-switch__knob[data-v-a793dcd2]{top:calc((var(--switch-height) - var(--switch-knob)) / 2);left:calc((var(--switch-height) - var(--switch-knob)) / 2);width:var(--switch-knob);height:var(--switch-knob);background:var(--canvas);border-radius:var(--radius-full);transition:transform var(--duration-fast) var(--ease-standard);position:absolute}:root[data-theme=dark] .app-switch__knob[data-v-a793dcd2]{background:var(--ink)}.app-switch[aria-checked=true][data-v-a793dcd2]{background:var(--accent)}.app-switch[aria-checked=true] .app-switch__knob[data-v-a793dcd2]{background:var(--on-accent);transform:translateX(calc(var(--switch-width) - var(--switch-height)))}.app-switch[data-v-a793dcd2]:focus-visible{outline:var(--focus-width) solid var(--focus-ring);outline-offset:2px}.app-switch-wrap[data-v-a793dcd2]{flex:none;display:inline-flex}.app-switch[aria-disabled=true][data-v-a793dcd2]{cursor:not-allowed;opacity:.5}@media (prefers-reduced-motion:reduce){.app-switch__knob[data-v-a793dcd2]{transition:none}}.progress-bar__need[data-v-72ffb6dc]{font:var(--type-meta);color:var(--box-muted);white-space:nowrap}.progress-bar__set-frame[data-v-72ffb6dc]{margin-left:auto}.progress-bar[data-v-72ffb6dc]{align-items:center;gap:var(--space-12);box-sizing:border-box;height:var(--progress-height);padding:0 var(--space-12) 0 var(--space-16);border-top:1px solid color-mix(in srgb, var(--box-muted) 22%, transparent);flex:none;display:flex;container-type:inline-size}.progress-bar__position[data-v-72ffb6dc]{align-items:baseline;gap:var(--space-8);margin:0 0 0 var(--space-2);white-space:nowrap;display:flex}.progress-bar__row[data-v-72ffb6dc]{font:var(--type-control);color:var(--ink)}.progress-bar__of[data-v-72ffb6dc]{font:var(--type-meta);color:var(--box-muted);text-transform:lowercase}.progress-bar__compact-position[data-v-72ffb6dc]{margin:0 0 0 var(--space-2);font:var(--type-control);color:var(--ink);white-space:nowrap}.progress-bar__phone-only[data-v-72ffb6dc]{display:none}.progress-bar__phone-hide[data-v-72ffb6dc],.progress-bar__phone-only[data-v-72ffb6dc]{flex:none}@media (width<=1023px){.progress-bar__phone-hide[data-v-72ffb6dc]{display:none}.progress-bar__phone-only[data-v-72ffb6dc]{display:inline-flex}}.app-shell--dock .progress-bar__phone-hide{display:none}.app-shell--dock .progress-bar__phone-only{display:inline-flex}@container (width<=51rem){.progress-bar__phone-hide[data-v-72ffb6dc]{display:none}.progress-bar__phone-only[data-v-72ffb6dc]{display:inline-flex}}.progress-bar__track[data-v-72ffb6dc]{min-width:var(--space-32);height:var(--track-height);background:var(--track);border-radius:var(--radius-full);flex:auto;overflow:hidden}.progress-bar__fill[data-v-72ffb6dc]{background:var(--track-fill);border-radius:inherit;height:100%;transition:width var(--duration-base) var(--ease-standard);display:block}.progress-bar__off-label[data-v-72ffb6dc]{font:var(--type-label);color:var(--box-muted);text-transform:lowercase}@media (prefers-reduced-motion:reduce){.progress-bar__fill[data-v-72ffb6dc]{transition:none}}.toast-region[data-v-96f5790c]{right:var(--space-16);bottom:var(--toast-bottom,var(--space-16));z-index:var(--z-toast);align-items:flex-end;gap:var(--space-8);pointer-events:none;flex-direction:column;display:flex;position:absolute}.toast-region[data-v-96f5790c]>*{pointer-events:auto}.toast-region__action[data-v-96f5790c]{font:var(--type-control);color:var(--ink);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.toast-enter-active[data-v-96f5790c]{transition:opacity var(--duration-base) var(--ease-out), transform var(--duration-base) var(--ease-out)}.toast-leave-active[data-v-96f5790c]{transition:opacity calc(var(--duration-base) * .75) var(--ease-in), transform calc(var(--duration-base) * .75) var(--ease-in)}.toast-enter-from[data-v-96f5790c],.toast-leave-to[data-v-96f5790c]{opacity:0;transform:translateY(var(--space-8))}@media (prefers-reduced-motion:reduce){.toast-enter-from[data-v-96f5790c],.toast-leave-to[data-v-96f5790c]{transform:none}}.zoom-pill[data-v-b2d10374]{align-items:center;gap:var(--space-4);padding:var(--space-4);background:var(--canvas);border:1px solid var(--line);border-radius:var(--radius-full);box-shadow:var(--elevation-1);display:inline-flex}.zoom-pill[data-v-b2d10374] .icon-btn--plain{width:var(--zoom-pill-button);height:var(--zoom-pill-button)}.zoom-pill[data-v-b2d10374]{touch-action:none;-webkit-user-select:none;user-select:none}.zoom-pill__announcer[data-v-b2d10374]{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.zoom-pill--dragging[data-v-b2d10374],.zoom-pill--dragging[data-v-b2d10374] button{cursor:grabbing}.zoom-pill--dragging[data-v-b2d10374] .app-tooltip__bubble{display:none!important}.zoom-pill--dragging[data-v-b2d10374]{box-shadow:var(--elevation-2)}.zoom-pill__level[data-v-b2d10374]{min-width:var(--zoom-level-width);font:var(--type-meta);color:var(--body);text-align:center}:root[data-theme=contrast] .zoom-pill[data-v-b2d10374]{box-shadow:none;border-width:2px}.app-shell__toasts--above-progress[data-v-4f430842]{--toast-bottom:calc(var(--progress-height) + var(--space-16))}.app-shell__context-bar[data-v-4f430842]{display:none}@media (width<=1023px){.app-shell__context-bar[data-v-4f430842]{right:var(--space-10);bottom:calc(var(--progress-height) + var(--space-10));left:var(--space-10);z-index:var(--z-context-bar);display:flex;position:absolute}.app-shell__context-bar--frame[data-v-4f430842]{top:var(--space-10);max-width:calc(100% - 2 * var(--space-10));bottom:auto;left:50%;right:auto;transform:translate(-50%)}.app-shell__context-bar--pill-bottom[data-v-4f430842]:not(.app-shell__context-bar--frame){bottom:calc(var(--progress-height) + var(--space-16) + env(safe-area-inset-bottom) + var(--zoom-pill-button) + 2 * var(--space-4) + 2px + var(--space-10))}.app-shell__context-bar--frame.app-shell__context-bar--pill-top[data-v-4f430842]{top:calc(var(--space-16) + var(--zoom-pill-button) + 2 * var(--space-4) + 2px + var(--space-10))}}.app-shell--dock .app-shell__context-bar{right:var(--space-10);bottom:calc(var(--progress-height) + var(--space-10));left:var(--space-10);z-index:var(--z-context-bar);display:flex;position:absolute}.app-shell--dock .app-shell__context-bar--frame{top:var(--space-10);max-width:calc(100% - 2 * var(--space-10));bottom:auto;left:50%;right:auto;transform:translate(-50%)}.app-shell--dock .app-shell__context-bar--pill-bottom:not(.app-shell__context-bar--frame){bottom:calc(var(--progress-height) + var(--space-16) + env(safe-area-inset-bottom) + var(--zoom-pill-button) + 2 * var(--space-4) + 2px + var(--space-10))}.app-shell--dock .app-shell__context-bar--frame.app-shell__context-bar--pill-top{top:calc(var(--space-16) + var(--zoom-pill-button) + 2 * var(--space-4) + 2px + var(--space-10))}.app-shell__zoom-pill[data-v-4f430842]{display:none}@media (width<=1023px){.app-shell__progress--hidden[data-v-4f430842]{display:none}.app-shell__canvas--no-progress[data-v-4f430842]{--progress-height:0px}}.app-shell--dock .app-shell__progress--hidden{display:none}.app-shell--dock .app-shell__canvas--no-progress{--progress-height:0px}@media (width<=1023px){.app-shell__zoom-pill[data-v-4f430842]{z-index:var(--z-canvas-overlay);max-width:calc(100% - 2 * var(--space-16));left:calc(var(--space-16) + var(--zoom-pill-x) * (100% - 2 * var(--space-16)));top:calc(var(--space-16) + var(--zoom-pill-y) * (100% - 2 * var(--space-16)));translate:calc(var(--zoom-pill-x) * -100%) calc(var(--zoom-pill-y) * -100%);display:inline-flex;position:absolute}}.app-shell--dock .app-shell__zoom-pill{z-index:var(--z-canvas-overlay);max-width:calc(100% - 2 * var(--space-16));left:calc(var(--space-16) + var(--zoom-pill-x) * (100% - 2 * var(--space-16)));top:calc(var(--space-16) + var(--zoom-pill-y) * (100% - 2 * var(--space-16)));translate:calc(var(--zoom-pill-x) * -100%) calc(var(--zoom-pill-y) * -100%);display:inline-flex;position:absolute}.app-shell__canvas-column[data-v-4f430842]{flex-direction:column;min-width:0;min-height:0;display:flex}.app-shell__canvas[data-v-4f430842]{background:var(--box);border:1px solid var(--box-line);border-radius:var(--radius-lg);min-height:0;box-shadow:var(--elevation-2);flex-direction:column;flex:auto;display:flex;position:relative;overflow:hidden}.app-shell__drawing[data-v-4f430842]{background:var(--canvas-bg,transparent);flex-direction:column;flex:1 1 0;min-height:0;display:flex;position:relative;overflow:hidden}.app-shell__drawing[data-v-4f430842]>:not(.canvas-backdrop):not(.app-shell__zoom-pill):not(.app-shell__canvas-hint){position:relative}.app-shell__canvas--pan[data-v-4f430842],.app-shell__canvas--pan[data-v-4f430842] *{cursor:grab}.app-shell__canvas--panning[data-v-4f430842],.app-shell__canvas--panning[data-v-4f430842] *{cursor:grabbing}.app-shell__canvas-row[data-v-4f430842]{flex:auto;align-self:stretch;min-height:0;position:relative}.app-shell__canvas-scroll[data-v-4f430842]{box-sizing:border-box;overscroll-behavior:none;min-width:0;position:absolute;inset:0;overflow:auto}.app-shell__canvas-scroll--empty[data-v-4f430842]{align-self:stretch;width:100%;overflow:hidden}@media (width<=1023px){.app-shell__canvas-hint[data-v-4f430842]{display:none}}.app-shell--dock .app-shell__canvas-hint{display:none}@media (width<=1023px){.app-shell__canvas-strip[data-v-4f430842]{display:none}}.app-shell--dock .app-shell__canvas-strip{display:flex}.bottom-sheet-scrim[data-v-429fb11f]{z-index:calc(var(--z-sheet) - 1);background:var(--scrim);animation:bottom-sheet-fade-429fb11f var(--duration-base) var(--ease-out);pointer-events:none;position:fixed;inset:0}.bottom-sheet[data-v-429fb11f]{z-index:var(--z-sheet);box-sizing:border-box;max-height:80dvh;padding:var(--space-8) var(--space-20) calc(var(--space-20) + env(safe-area-inset-bottom));overscroll-behavior:none;background:var(--panel);border-top:1px solid var(--panel-line);border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:var(--elevation-3);animation:bottom-sheet-arrive-429fb11f var(--duration-base) var(--ease-out);position:fixed;bottom:0;left:0;right:0;overflow-y:auto}.bottom-sheet--modal[data-v-429fb11f]{background:var(--overlay-fill);max-height:90dvh}.bottom-sheet[data-v-429fb11f]:focus{outline:none}:root[data-theme=dark] .bottom-sheet[data-v-429fb11f]{border-color:var(--line-strong)}:root[data-theme=contrast] .bottom-sheet[data-v-429fb11f]{box-shadow:none;border-width:2px}.bottom-sheet__handle[data-v-429fb11f]{width:2.25rem;height:4px;margin:0 auto var(--space-12);background:var(--line-strong);border-radius:var(--radius-full)}.bottom-sheet__head[data-v-429fb11f]{justify-content:space-between;align-items:center;gap:var(--space-16);margin-bottom:var(--space-12);display:flex}.bottom-sheet__head-actions[data-v-429fb11f]{align-items:center;gap:var(--space-4);flex:none;display:flex}.bottom-sheet__title[data-v-429fb11f]{font:var(--type-title);color:var(--ink);margin:0}@keyframes bottom-sheet-fade-429fb11f{0%{opacity:0}}@keyframes bottom-sheet-arrive-429fb11f{0%{transform:translateY(100%)}}@media (prefers-reduced-motion:reduce){.bottom-sheet[data-v-429fb11f],.bottom-sheet-scrim[data-v-429fb11f]{animation:none}}.phone-sheet__tiles[data-v-f881534a]{background-image:repeating-linear-gradient(to bottom, transparent 0 71px, var(--line-strong) 71px 72px);grid-template-columns:repeat(auto-fill,56px);grid-auto-rows:72px;justify-content:space-between;display:grid}.phone-sheet__links[data-v-f881534a]{margin-top:var(--space-16);justify-content:space-between;display:flex}.phone-sheet__edit[data-v-f881534a]{gap:var(--space-8);margin-top:var(--space-16);padding-top:var(--space-16);border-top:1px solid var(--line-soft);grid-template-columns:repeat(3,1fr);display:grid}.phone-sheet__project-info[data-v-f881534a]{align-items:center;gap:var(--space-6);min-width:0;margin:0 0 var(--space-12);display:flex}.phone-sheet__summary[data-v-f881534a]{min-width:0;font:var(--type-control);color:var(--ink);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.phone-sheet__save[data-v-f881534a]{color:var(--accent-strong);flex:none}.phone-sheet__save--failed[data-v-f881534a]{color:var(--danger)}.phone-sheet__menu-row[data-v-f881534a]{justify-content:space-between;align-items:center;gap:var(--space-8);padding:var(--space-8) 0;display:flex}.phone-sheet__menu-row--wrap[data-v-f881534a]{flex-wrap:wrap}.phone-sheet__menu-label[data-v-f881534a]{font:var(--type-body);color:var(--body)}.phone-sheet__menu-link[data-v-f881534a]{align-items:center;gap:var(--space-8);box-sizing:border-box;width:100%;height:var(--menu-item-height);font:var(--type-control);color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:none;display:flex}.phone-sheet__menu-shortcuts[data-v-f881534a]{display:none}@media (any-pointer:fine){.phone-sheet__menu-shortcuts[data-v-f881534a]{display:flex}}.phone-sheet__bead-row[data-v-f881534a]{align-items:center;gap:var(--space-8);margin:0 0 var(--space-16);display:flex}.phone-sheet__project-actions[data-v-f881534a]{align-items:center;gap:var(--space-8);margin-top:var(--space-16);padding-top:var(--space-16);border-top:1px solid var(--line-soft);flex-direction:row;display:flex}.phone-sheet__project-actions .app-button[data-v-f881534a]{flex:1 1 0}.tour[data-v-c30ad533]{z-index:var(--z-tour-dim);pointer-events:none;position:fixed;inset:0}.tour__block[data-v-c30ad533],.tour__dim[data-v-c30ad533],.tour__marks[data-v-c30ad533]{position:absolute;inset:0}.tour__block path[data-v-c30ad533]{pointer-events:all}.tour__dim[data-v-c30ad533]{animation:tour-fade-c30ad533 var(--duration-base) var(--ease-standard) both}.tour__dim-path[data-v-c30ad533]{fill:var(--tour-dim)}.tour__marks[data-v-c30ad533]{z-index:var(--z-tour-connector);animation:tour-fade-c30ad533 var(--duration-base) var(--ease-standard) var(--duration-base) both}.tour__ring[data-v-c30ad533]{fill:none;stroke:var(--tour-highlight);stroke-width:var(--tour-ring-width)}.tour__glow[data-v-c30ad533]{fill:none;stroke:var(--tour-highlight);stroke-width:8px;opacity:.38}.tour__pointer[data-v-c30ad533]{fill:none;stroke:var(--muted);stroke-width:1.25px;stroke-linecap:round;stroke-dasharray:0 4.5}.tour__dot[data-v-c30ad533]{fill:var(--muted)}.tour-card[data-v-c30ad533]{z-index:var(--z-tour-card);gap:var(--space-8);box-sizing:border-box;width:328px;padding:var(--space-14) var(--space-16) var(--space-12);color:var(--ink);background:var(--overlay-fill);border:var(--tour-card-line-width) solid var(--overlay-line);border-radius:var(--radius-lg);box-shadow:var(--elevation-3);pointer-events:auto;animation:tour-arrive-c30ad533 var(--duration-base) var(--ease-standard) both;flex-direction:column;display:flex;position:absolute}.tour-card[data-v-c30ad533]:focus{outline:none}.tour-card[data-v-c30ad533]:focus-visible{outline:var(--focus-width) solid var(--focus-ring);outline-offset:2px}.tour-card__top[data-v-c30ad533]{align-items:center;gap:var(--space-8);display:flex}.tour-card__tile[data-v-c30ad533]{width:30px;height:30px;color:var(--ink);background:color-mix(in srgb, var(--tour-highlight) 28%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--tour-highlight) 60%, transparent);border-radius:8px;flex:none;place-items:center;display:grid}:root[data-theme=contrast] .tour-card__tile[data-v-c30ad533]{box-shadow:inset 0 0 0 2px var(--ink);background:0 0}.tour-card__tool[data-v-c30ad533]{font:var(--type-label)}.tour-card__key[data-v-c30ad533]{padding:0 var(--space-6);font-family:var(--font-mono,"DM Mono", monospace);color:var(--ink);background:var(--elevated);border:1px solid var(--line-strong);border-bottom-width:2px;border-radius:5px;font-size:12px;line-height:20px}.tour-card__count[data-v-c30ad533]{gap:var(--space-4);font:var(--type-meta-small);color:var(--muted);flex-direction:column;align-items:flex-end;margin-left:auto;display:flex}.tour-card__strand[data-v-c30ad533]{gap:3px;display:flex}.tour-card__strand i[data-v-c30ad533]{border-radius:50%;width:6px;height:6px}.tour-card__bead--done[data-v-c30ad533]{background:var(--ink)}.tour-card__bead--current[data-v-c30ad533]{background:var(--tour-highlight);box-shadow:0 0 0 1px var(--ink)}.tour-card__bead--rest[data-v-c30ad533]{background:var(--bead-empty)}.tour-card__title[data-v-c30ad533]{font:var(--type-title);margin:0}.tour-card__text[data-v-c30ad533]{gap:var(--space-6);font:var(--type-body);flex-direction:column;display:flex}.tour-card__text p[data-v-c30ad533]{margin:0}.tour-card__hint[data-v-c30ad533]{color:var(--muted)}.tour-card__off[data-v-c30ad533]{gap:var(--space-8);color:var(--muted);align-items:flex-start;display:flex}.tour-card__footer[data-v-c30ad533]{margin-top:var(--space-4);justify-content:space-between;align-items:center;display:flex}@keyframes tour-fade-c30ad533{0%{opacity:0}}@keyframes tour-arrive-c30ad533{0%{opacity:0;transform:translateY(8px)}}@media (prefers-reduced-motion:reduce){@keyframes tour-arrive-c30ad533{0%{opacity:0}}}.app-shell[data-v-61e7ff4e]{box-sizing:border-box;background:var(--canvas);flex-direction:column;display:flex;position:fixed;inset:0;overflow:hidden}.app-shell__skip[data-v-61e7ff4e]{top:var(--space-8);left:var(--space-8);z-index:var(--z-tooltip);padding:var(--space-8) var(--space-12);font:var(--type-control);color:var(--ink);background:var(--canvas);border:1px solid var(--line-strong);border-radius:var(--radius-md);position:absolute;transform:translateY(-200%)}.app-shell__skip[data-v-61e7ff4e]:focus-visible{outline:var(--focus-width) solid var(--focus-ring);outline-offset:2px;transform:none}.app-shell__announcer[data-v-61e7ff4e]{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;margin:0;position:absolute;overflow:hidden}.app-shell__notices[data-v-61e7ff4e]{padding:var(--space-16) var(--space-32) 0;flex:none}.app-shell__body[data-v-61e7ff4e]{grid-template-columns:var(--column-width) minmax(0, 1fr);min-height:0;padding:var(--space-6);flex:auto;display:grid}@media (width>=1024px) and (width<=1279px){.app-shell__body[data-v-61e7ff4e]{grid-template-columns:var(--column-width-tablet-lg) minmax(0, 1fr)}}@media (width>=1920px){.app-shell__body[data-v-61e7ff4e]{grid-template-columns:var(--column-width-desktop) minmax(0, 1fr)}.app-shell__notices[data-v-61e7ff4e]{padding-left:2.5rem;padding-right:2.5rem}}@media (width<=1023px){.app-shell__body[data-v-61e7ff4e]{padding:env(safe-area-inset-top) max(var(--space-8), env(safe-area-inset-right)) var(--space-8) max(var(--space-8), env(safe-area-inset-left));grid-template-columns:minmax(0,1fr)}.app-shell__notices[data-v-61e7ff4e]{padding:var(--space-8) var(--space-16) 0}}.app-shell--dock .app-shell__body[data-v-61e7ff4e]{padding:env(safe-area-inset-top) max(var(--space-8), env(safe-area-inset-right)) var(--space-8) max(var(--space-8), env(safe-area-inset-left));grid-template-columns:minmax(0,1fr)}.app-shell--dock .app-shell__notices[data-v-61e7ff4e]{padding:var(--space-8) var(--space-16) 0}
