:root,[data-theme=encre]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ds-bg:#0a0c10;--ds-panel:#12151c;--ds-card:#1a1e28;--ds-hover:#232936;--ds-overlay:#0405089e;--ds-text:#eceef5;--ds-text-2:#7c86a0;--ds-text-inverse:#171a23;--ds-accent:#6d5efc;--ds-accent-hover:#7d70ff;--ds-accent-soft:#6d5efc24;--ds-on-accent:#fff;--ds-brand-a:#6d5efc;--ds-brand-b:#e23da8;--ds-brand-gradient:linear-gradient(120deg, var(--ds-brand-a), var(--ds-brand-b));--ds-success:#2fbf71;--ds-success-soft:#2fbf7124;--ds-warn:#f5a623;--ds-warn-soft:#f5a62326;--ds-error:#e5484d;--ds-error-soft:#e5484d24;--ds-info:#58a6ff;--ds-info-soft:#58a6ff21;--ds-border:#eceef517;--ds-border-strong:#eceef529;--ds-focus-ring:0 0 0 2px #6d5efc73;--ds-shadow-sm:0 2px 8px #00000059;--ds-shadow-md:0 6px 24px #00000073;--ds-shadow-lg:0 16px 48px #0000008c}[data-theme=papier]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ds-bg:#f4f5f9;--ds-panel:#fff;--ds-card:#eceef5;--ds-hover:#e2e6ef;--ds-overlay:#171a2366;--ds-text:#171a23;--ds-text-2:#737d94;--ds-text-inverse:#eceef5;--ds-accent:#5d4df0;--ds-accent-hover:#4c3ce0;--ds-accent-soft:#5d4df01a;--ds-on-accent:#fff;--ds-brand-a:#5d4df0;--ds-brand-b:#d3299a;--ds-brand-gradient:linear-gradient(120deg, var(--ds-brand-a), var(--ds-brand-b));--ds-success:#1f9d5c;--ds-success-soft:#1f9d5c1f;--ds-warn:#c07a08;--ds-warn-soft:#c07a081f;--ds-error:#d4373c;--ds-error-soft:#d4373c1a;--ds-info:#0969da;--ds-info-soft:#0969da1a;--ds-border:#171a231a;--ds-border-strong:#171a232e;--ds-focus-ring:0 0 0 2px #5d4df066;--ds-shadow-sm:0 2px 8px #171a2314;--ds-shadow-md:0 6px 24px #171a231f;--ds-shadow-lg:0 16px 48px #171a232e}:root{--ds-font-display:"Plus Jakarta Sans", "Inter", system-ui, sans-serif;--ds-font-ui:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--ds-font-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--ds-fs-display:32px;--ds-lh-display:38px;--ds-fs-title:15px;--ds-lh-title:20px;--ds-fs-base:13px;--ds-lh-base:18px;--ds-fs-caption:11px;--ds-lh-caption:15px;--ds-fs-label:10px;--ds-lh-label:14px;--ds-ls-label:.7px;--ds-s1:4px;--ds-s2:8px;--ds-s3:12px;--ds-s4:16px;--ds-s5:24px;--ds-s6:32px;--ds-r-ctrl:6px;--ds-r-card:10px;--ds-r-panel:14px;--ds-r-pill:999px;--ds-ease:cubic-bezier(.22, 1, .36, 1);--ds-t-fast:.12s;--ds-t-hover:.15s;--ds-t-accordion:.18s;--ds-t-panel:.24s;--ds-h-header:52px;--ds-w-rail:56px;--ds-w-flyout:300px;--ds-w-right:280px;--ds-h-production:64px;--ds-h-production-min:32px;--ds-z-panel:10;--ds-z-floatbar:40;--ds-z-dropdown:50;--ds-z-tooltip:60;--ds-z-modal:70;--ds-z-toast:80}*,:before,:after{box-sizing:border-box}body{background:var(--ds-bg);color:var(--ds-text);font-family:var(--ds-font-ui);font-size:var(--ds-fs-base);line-height:var(--ds-lh-base);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}button,input,select,textarea{font:inherit;color:inherit}img,svg{max-width:100%;display:block}:focus{outline:none}:focus-visible{box-shadow:var(--ds-focus-ring);border-radius:var(--ds-r-ctrl)}::selection{background:var(--ds-accent-soft)}*{scrollbar-width:thin;scrollbar-color:var(--ds-border-strong) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--ds-border-strong);border-radius:var(--ds-r-pill)}::-webkit-scrollbar-track{background:0 0}.ds-display{font-family:var(--ds-font-display);font-size:var(--ds-fs-display);line-height:var(--ds-lh-display);font-weight:800}.ds-title{font-size:var(--ds-fs-title);line-height:var(--ds-lh-title);font-weight:700}.ds-caption{font-size:var(--ds-fs-caption);line-height:var(--ds-lh-caption);color:var(--ds-text-2);font-weight:500}.ds-label{font-size:var(--ds-fs-label);line-height:var(--ds-lh-label);letter-spacing:var(--ds-ls-label);text-transform:uppercase;color:var(--ds-text-2);font-weight:700}.ds-mono{font-family:var(--ds-font-mono);font-variant-numeric:tabular-nums;font-size:var(--ds-fs-base)}kbd.ds-kbd{font-family:var(--ds-font-mono);background:var(--ds-card);border:1px solid var(--ds-border-strong);color:var(--ds-text-2);border-radius:4px;padding:1px 5px;font-size:10px}@keyframes ds-slide-in{0%{opacity:0;transform:translate(-12px)}}@keyframes ds-pop{0%{opacity:0;transform:scale(.96)}}@keyframes ds-rise{0%{opacity:0;transform:translateY(12px)}}@keyframes ds-fade{0%{opacity:0}}@keyframes ds-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes ds-spin{to{transform:rotate(360deg)}}.ds-anim-slide-in{animation:ds-slide-in var(--ds-t-panel) var(--ds-ease)}.ds-anim-pop{animation:ds-pop var(--ds-t-fast) var(--ds-ease)}.ds-anim-rise{animation:ds-rise var(--ds-t-panel) var(--ds-ease)}.ds-anim-fade{animation:ds-fade var(--ds-t-panel) var(--ds-ease)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.ds-btn{height:34px;padding:0 var(--ds-s4);border-radius:var(--ds-r-card);font-weight:600;font-size:var(--ds-fs-base);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;transition:background var(--ds-t-hover), border-color var(--ds-t-hover), color var(--ds-t-hover), transform var(--ds-t-hover), box-shadow var(--ds-t-hover);border:1px solid #0000;justify-content:center;align-items:center;gap:6px;display:inline-flex}.ds-btn:active:not(:disabled){transform:translateY(1px)}.ds-btn:disabled{opacity:.45;cursor:not-allowed}.ds-btn--cta{background:var(--ds-brand-gradient);color:#fff}.ds-btn--cta:hover:not(:disabled){filter:brightness(1.08);box-shadow:var(--ds-shadow-sm)}.ds-btn--primary{background:var(--ds-accent);color:var(--ds-on-accent)}.ds-btn--primary:hover:not(:disabled){background:var(--ds-accent-hover)}.ds-btn--secondary{background:var(--ds-card);border-color:var(--ds-border-strong)}.ds-btn--secondary:hover:not(:disabled){background:var(--ds-hover)}.ds-btn--ghost{color:var(--ds-text-2);background:0 0}.ds-btn--ghost:hover:not(:disabled){background:var(--ds-hover);color:var(--ds-text)}.ds-btn--danger{background:var(--ds-error-soft);color:var(--ds-error);border-color:#0000}.ds-btn--danger:hover:not(:disabled){background:var(--ds-error);color:#fff}.ds-btn--sm{height:28px;padding:0 var(--ds-s3);border-radius:var(--ds-r-ctrl);font-size:12px}.ds-btn--icon{width:34px;padding:0}.ds-btn--sm.ds-btn--icon{width:28px}.ds-btn--active{background:var(--ds-accent-soft);color:var(--ds-accent)}.ds-btn__spinner{display:inline-flex}.ds-field{gap:var(--ds-s1);flex-direction:column;min-width:0;display:flex}.ds-field__label{font-size:var(--ds-fs-caption);color:var(--ds-text-2);font-weight:600}.ds-field__hint{font-size:var(--ds-fs-caption);color:var(--ds-text-2)}.ds-field__error{font-size:var(--ds-fs-caption);color:var(--ds-error)}.ds-input{align-items:center;gap:var(--ds-s2);height:32px;padding:0 var(--ds-s3);background:var(--ds-card);border:1px solid var(--ds-border);border-radius:var(--ds-r-ctrl);transition:border-color var(--ds-t-hover), box-shadow var(--ds-t-hover);display:flex}.ds-input:hover{border-color:var(--ds-border-strong)}.ds-input:focus-within{border-color:var(--ds-accent);box-shadow:var(--ds-focus-ring)}.ds-input--error{border-color:var(--ds-error)}.ds-input--error:focus-within{box-shadow:0 0 0 2px var(--ds-error-soft)}.ds-input>input,.ds-input>textarea{background:0 0;border:0;flex:1;min-width:0;padding:0}.ds-input>input:focus,.ds-input>textarea:focus{box-shadow:none}.ds-input>input::placeholder{color:var(--ds-text-2);opacity:.7}.ds-input__affix{color:var(--ds-text-2);flex:none;align-items:center;display:inline-flex}.ds-input--mono>input{font-family:var(--ds-font-mono);font-variant-numeric:tabular-nums}.ds-input--textarea{height:auto;padding:var(--ds-s2) var(--ds-s3)}.ds-input--textarea>textarea{resize:vertical;min-height:54px}.ds-select{position:relative}.ds-select__trigger{justify-content:space-between;width:100%;font-weight:400}.ds-select__chevron{color:var(--ds-text-2);transition:transform var(--ds-t-accordion) var(--ds-ease)}.ds-select--open .ds-select__chevron{transform:rotate(180deg)}.ds-popover{z-index:var(--ds-z-dropdown);min-width:100%;max-height:280px;margin-top:var(--ds-s1);padding:var(--ds-s1);background:var(--ds-panel);border:1px solid var(--ds-border);border-radius:var(--ds-r-card);box-shadow:var(--ds-shadow-md);animation:ds-pop var(--ds-t-fast) var(--ds-ease);position:absolute;overflow-y:auto}.ds-option{align-items:center;gap:var(--ds-s2);width:100%;padding:6px var(--ds-s2);border-radius:var(--ds-r-ctrl);text-align:left;cursor:pointer;background:0 0;border:0;display:flex}.ds-option:hover,.ds-option--focus{background:var(--ds-hover)}.ds-option--selected{color:var(--ds-accent);font-weight:600}.ds-option__check{margin-left:auto}.ds-check{align-items:center;gap:var(--ds-s2);cursor:pointer;display:inline-flex}.ds-check input{opacity:0;pointer-events:none;position:absolute}.ds-check__box{border:1px solid var(--ds-border-strong);background:var(--ds-card);color:#0000;width:16px;height:16px;transition:background var(--ds-t-hover), border-color var(--ds-t-hover);border-radius:4px;flex:none;justify-content:center;align-items:center;display:inline-flex}.ds-check input:checked+.ds-check__box{background:var(--ds-accent);border-color:var(--ds-accent);color:#fff}.ds-check input:focus-visible+.ds-check__box{box-shadow:var(--ds-focus-ring)}.ds-check--disabled{opacity:.45;cursor:not-allowed}.ds-switch{align-items:center;gap:var(--ds-s2);cursor:pointer;display:inline-flex}.ds-switch input{opacity:0;pointer-events:none;position:absolute}.ds-switch__track{border-radius:var(--ds-r-pill);background:var(--ds-hover);border:1px solid var(--ds-border);width:30px;height:18px;transition:background var(--ds-t-hover);flex:none;position:relative}.ds-switch__track:after{content:"";background:var(--ds-text-2);width:12px;height:12px;transition:transform var(--ds-t-hover) var(--ds-ease), background var(--ds-t-hover);border-radius:50%;position:absolute;top:2px;left:2px}.ds-switch input:checked+.ds-switch__track{background:var(--ds-accent);border-color:var(--ds-accent)}.ds-switch input:checked+.ds-switch__track:after{background:#fff;transform:translate(12px)}.ds-switch input:focus-visible+.ds-switch__track{box-shadow:var(--ds-focus-ring)}.ds-segmented{background:var(--ds-card);border:1px solid var(--ds-border);border-radius:var(--ds-r-card);gap:2px;padding:2px;display:inline-flex}.ds-segmented__item{padding:4px var(--ds-s3);border-radius:var(--ds-r-ctrl);color:var(--ds-text-2);cursor:pointer;transition:background var(--ds-t-hover), color var(--ds-t-hover);background:0 0;border:0;font-size:12px;font-weight:600}.ds-segmented__item:hover{color:var(--ds-text)}.ds-segmented__item--active{background:var(--ds-accent);color:var(--ds-on-accent)}.ds-card{background:var(--ds-card);border:1px solid var(--ds-border);border-radius:var(--ds-r-card);padding:var(--ds-s3)}.ds-card--hoverable{cursor:pointer;transition:transform var(--ds-t-hover) var(--ds-ease), box-shadow var(--ds-t-hover), border-color var(--ds-t-hover)}.ds-card--hoverable:hover{box-shadow:var(--ds-shadow-sm);border-color:var(--ds-accent);transform:translateY(-2px)}.ds-card--selected{border-color:var(--ds-accent);box-shadow:0 0 0 1px var(--ds-accent)}.ds-card__media{margin:calc(-1 * var(--ds-s3)) calc(-1 * var(--ds-s3)) var(--ds-s2);border-radius:var(--ds-r-card) var(--ds-r-card) 0 0;background:var(--ds-hover);overflow:hidden}.ds-modal-overlay{z-index:var(--ds-z-modal);padding:var(--ds-s5);background:var(--ds-overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:ds-fade var(--ds-t-fast) var(--ds-ease);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.ds-modal{width:100%;max-width:440px;max-height:calc(100vh - 2 * var(--ds-s5));background:var(--ds-panel);border:1px solid var(--ds-border);border-radius:var(--ds-r-panel);box-shadow:var(--ds-shadow-lg);animation:ds-pop var(--ds-t-fast) var(--ds-ease);flex-direction:column;display:flex}.ds-modal--md{max-width:640px}.ds-modal--lg{max-width:920px}.ds-modal__header{align-items:center;gap:var(--ds-s2);padding:var(--ds-s4) var(--ds-s4) var(--ds-s2);display:flex}.ds-modal__title{font-size:var(--ds-fs-title);line-height:var(--ds-lh-title);flex:1;margin:0;font-weight:700}.ds-modal__body{padding:var(--ds-s2) var(--ds-s4);overflow-y:auto}.ds-modal__footer{justify-content:flex-end;gap:var(--ds-s2);padding:var(--ds-s3) var(--ds-s4) var(--ds-s4);display:flex}.ds-tooltip-bubble{z-index:var(--ds-z-tooltip);background:var(--ds-card);border:1px solid var(--ds-border-strong);border-radius:var(--ds-r-ctrl);box-shadow:var(--ds-shadow-md);font-size:var(--ds-fs-caption);pointer-events:none;white-space:nowrap;animation:ds-pop var(--ds-t-fast) var(--ds-ease);align-items:center;gap:6px;padding:4px 8px;font-weight:500;display:flex;position:fixed}.ds-badge{border-radius:var(--ds-r-pill);font-size:var(--ds-fs-caption);font-weight:600;line-height:var(--ds-lh-caption);background:var(--ds-hover);color:var(--ds-text-2);align-items:center;gap:4px;padding:2px 8px;display:inline-flex}.ds-badge--success{background:var(--ds-success-soft);color:var(--ds-success)}.ds-badge--warn{background:var(--ds-warn-soft);color:var(--ds-warn)}.ds-badge--error{background:var(--ds-error-soft);color:var(--ds-error)}.ds-badge--info{background:var(--ds-info-soft);color:var(--ds-info)}.ds-badge--accent{background:var(--ds-accent-soft);color:var(--ds-accent)}.ds-badge--brand{background:var(--ds-brand-gradient);color:#fff}.ds-menu{min-width:190px;padding:var(--ds-s1);background:var(--ds-panel);border:1px solid var(--ds-border);border-radius:var(--ds-r-card);box-shadow:var(--ds-shadow-md);animation:ds-pop var(--ds-t-fast) var(--ds-ease)}.ds-menu--anchored{z-index:var(--ds-z-dropdown);margin-top:var(--ds-s1);position:absolute}.ds-menu--fixed{z-index:var(--ds-z-dropdown);position:fixed}.ds-menu__item{align-items:center;gap:var(--ds-s2);width:100%;padding:6px var(--ds-s2);border-radius:var(--ds-r-ctrl);text-align:left;cursor:pointer;color:var(--ds-text);background:0 0;border:0;display:flex}.ds-menu__item:hover,.ds-menu__item--focus{background:var(--ds-hover)}.ds-menu__item:disabled{opacity:.45;cursor:not-allowed}.ds-menu__item--danger{color:var(--ds-error)}.ds-menu__item--danger:hover{background:var(--ds-error-soft)}.ds-menu__shortcut{margin-left:auto}.ds-menu__separator{height:1px;margin:var(--ds-s1) var(--ds-s2);background:var(--ds-border)}.ds-toast-viewport{bottom:var(--ds-s5);z-index:var(--ds-z-toast);align-items:center;gap:var(--ds-s2);pointer-events:none;flex-direction:column;display:flex;position:fixed;left:50%;transform:translate(-50%)}.ds-toast{align-items:center;gap:var(--ds-s2);padding:var(--ds-s2) var(--ds-s3);background:var(--ds-panel);border:1px solid var(--ds-border-strong);border-radius:var(--ds-r-card);box-shadow:var(--ds-shadow-md);pointer-events:auto;animation:ds-rise var(--ds-t-panel) var(--ds-ease);font-weight:500;display:flex}.ds-toast__icon--success{color:var(--ds-success)}.ds-toast__icon--warn{color:var(--ds-warn)}.ds-toast__icon--error{color:var(--ds-error)}.ds-toast__icon--info{color:var(--ds-info)}.ds-toast__action{color:var(--ds-accent);cursor:pointer;border-radius:var(--ds-r-ctrl);background:0 0;border:0;padding:2px 6px;font-weight:600}.ds-toast__action:hover{background:var(--ds-accent-soft)}.ds-panel{background:var(--ds-panel);border:1px solid var(--ds-border);border-radius:var(--ds-r-panel);flex-direction:column;display:flex;overflow:hidden}.ds-panel__header{align-items:center;gap:var(--ds-s2);padding:var(--ds-s3);border-bottom:1px solid var(--ds-border);display:flex}.ds-panel__title{font-size:var(--ds-fs-title);flex:1;margin:0;font-weight:700}.ds-panel__body{padding:var(--ds-s3);gap:var(--ds-s4);flex-direction:column;display:flex;overflow-y:auto}.ds-panel-section{gap:var(--ds-s2);flex-direction:column;display:flex}.ds-accordion{flex-direction:column;display:flex}.ds-accordion__item{border-bottom:1px solid var(--ds-border)}.ds-accordion__trigger{align-items:center;gap:var(--ds-s2);width:100%;padding:var(--ds-s3) var(--ds-s1);cursor:pointer;font-size:var(--ds-fs-label);line-height:var(--ds-lh-label);letter-spacing:var(--ds-ls-label);text-transform:uppercase;color:var(--ds-text-2);background:0 0;border:0;font-weight:700;display:flex}.ds-accordion__trigger:hover{color:var(--ds-text)}.ds-accordion__chevron{transition:transform var(--ds-t-accordion) var(--ds-ease);margin-left:auto}.ds-accordion__item--open .ds-accordion__chevron{transform:rotate(180deg)}.ds-accordion__content{transition:grid-template-rows var(--ds-t-accordion) var(--ds-ease);grid-template-rows:0fr;display:grid}.ds-accordion__item--open .ds-accordion__content{grid-template-rows:1fr}.ds-accordion__inner{overflow:hidden}.ds-accordion__pad{padding:0 var(--ds-s1) var(--ds-s3);gap:var(--ds-s2);flex-direction:column;display:flex}.ds-spinner{color:var(--ds-accent);animation:.8s linear infinite ds-spin}.ds-progress{border-radius:var(--ds-r-pill);background:var(--ds-hover);width:100%;height:4px;overflow:hidden}.ds-progress__bar{border-radius:var(--ds-r-pill);background:var(--ds-accent);height:100%;transition:width var(--ds-t-panel) var(--ds-ease)}.ds-skeleton{border-radius:var(--ds-r-ctrl);background:linear-gradient(90deg, var(--ds-card) 25%, var(--ds-hover) 50%, var(--ds-card) 75%);background-size:200% 100%;animation:1.3s linear infinite ds-shimmer}.ds-skeleton--circle{border-radius:50%}.ds-rail{width:var(--ds-w-rail);padding:var(--ds-s2) 0;background:var(--ds-panel);border-right:1px solid var(--ds-border);flex-direction:column;flex:none;align-items:center;gap:2px;display:flex;overflow-y:auto}.ds-rail__sep{width:24px;height:1px;margin:var(--ds-s2) 0;background:var(--ds-border-strong);flex:none}.ds-rail__item{border-radius:var(--ds-r-ctrl);width:48px;color:var(--ds-text-2);cursor:pointer;transition:background var(--ds-t-hover), color var(--ds-t-hover);background:0 0;border:0;flex-direction:column;flex:none;align-items:center;gap:2px;padding:6px 0;display:flex}.ds-rail__item:hover{background:var(--ds-hover);color:var(--ds-text)}.ds-rail__item--active{background:var(--ds-accent-soft);color:var(--ds-accent)}.ds-rail__label{letter-spacing:.2px;font-size:8px;font-weight:600}.ds-flyout{width:var(--ds-w-flyout);background:var(--ds-panel);border-right:1px solid var(--ds-border);animation:ds-slide-in var(--ds-t-panel) var(--ds-ease);flex-direction:column;flex:none;display:flex}.ds-flyout__header{align-items:center;gap:var(--ds-s2);padding:var(--ds-s3);display:flex}.ds-flyout__title{font-size:var(--ds-fs-title);flex:1;margin:0;font-weight:700}.ds-flyout__body{padding:0 var(--ds-s3) var(--ds-s3);gap:var(--ds-s3);flex-direction:column;flex:1;display:flex;overflow-y:auto}.ds-toolbar{padding:var(--ds-s1);background:var(--ds-panel);border:1px solid var(--ds-border);border-radius:var(--ds-r-card);align-items:center;gap:2px;display:inline-flex}.ds-floatbar{padding:var(--ds-s1);background:var(--ds-panel);border:1px solid var(--ds-border-strong);border-radius:var(--ds-r-card);box-shadow:var(--ds-shadow-md);animation:ds-pop var(--ds-t-fast) var(--ds-ease);align-items:center;gap:2px;display:inline-flex}.ds-toolbar__sep,.ds-floatbar__sep{width:1px;height:18px;margin:0 var(--ds-s1);background:var(--ds-border-strong);flex:none}html,body,#root{height:100%}body{overflow:hidden}.s2-app{background:var(--ds-bg);height:100%;color:var(--ds-text);flex-direction:column;display:flex}.s2-header{align-items:center;gap:var(--ds-s2,8px);height:52px;padding:0 var(--ds-s3,12px);background:var(--ds-panel);border-bottom:1px solid var(--ds-border);z-index:30;flex:none;display:flex}.s2-brand{font-family:var(--ds-font-display,inherit);color:var(--ds-text);white-space:nowrap;align-items:baseline;gap:6px;font-size:15px;font-weight:800;text-decoration:none;display:flex}.s2-brand small{letter-spacing:.08em;color:var(--ds-accent);text-transform:uppercase;font-size:10px;font-weight:700}.s2-name{width:200px;color:var(--ds-text);font:inherit;background:0 0;border:1px solid #0000;border-radius:6px;padding:5px 8px;font-size:13px;font-weight:600}.s2-name:hover{border-color:var(--ds-border)}.s2-name:focus{border-color:var(--ds-accent);outline:none}.s2-save{color:var(--ds-text-muted);white-space:nowrap;min-width:86px;font-size:11px}.s2-save--error{color:var(--ds-danger,#e23b3b)}.s2-spacer{flex:1}.s2-score{border:1px solid var(--ds-border);background:var(--ds-card);cursor:pointer;font-variant-numeric:tabular-nums;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.s2-score b{font-family:var(--ds-font-mono,monospace);font-size:12px}.s2-score--ok b{color:var(--ds-success,#27c084)}.s2-score--warn b{color:var(--ds-warning,#e2a13b)}.s2-score--err b{color:var(--ds-danger,#e23b3b)}.s2-score:hover{border-color:var(--ds-accent)}.s2-body{flex:1;min-height:0;display:flex}.s2-stagewrap{flex:1;min-width:0;display:flex;position:relative}.s2-right{background:var(--ds-panel);border-left:1px solid var(--ds-border);width:280px;padding:var(--ds-s3,12px);flex:none;overflow-y:auto}.s2-right h2{letter-spacing:.07em;text-transform:uppercase;color:var(--ds-text-muted);margin:0 0 var(--ds-s2,8px);font-size:10px;font-weight:700}.s2-production{align-items:center;gap:var(--ds-s3,12px);height:64px;padding:0 var(--ds-s4,16px);background:var(--ds-panel);border-top:1px solid var(--ds-border);z-index:30;flex:none;display:flex;overflow-x:auto}.s2-cell{flex-direction:column;gap:2px;min-width:0;display:flex}.s2-cell>label{letter-spacing:.08em;text-transform:uppercase;color:var(--ds-text-muted);white-space:nowrap;font-size:9px;font-weight:700}.s2-price{font-family:var(--ds-font-mono,monospace);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:17px;font-weight:700}.s2-price small{color:var(--ds-text-muted);font-size:11px;font-weight:500}.s2-prod-sep{background:var(--ds-border);flex:none;width:1px;height:36px}.stage{background:var(--ds-bg);--stage-ruler-bg:var(--ds-panel);--stage-ruler-tick:var(--ds-border);--stage-ruler-text:var(--ds-text-muted);flex:1;min-width:0;position:relative;overflow:hidden}.canvasHolder{position:absolute;inset:0}.pageGhost{transform-origin:0 0;pointer-events:none;background-image:conic-gradient(#cfcfcf 0 25%, #fff 0 50%, #cfcfcf 0 75%, #fff 0);background-size:16px 16px;position:absolute;top:0;left:0}.overlay{pointer-events:none;position:absolute;inset:0}.ruler{z-index:5;position:absolute}.rulerTop,.rulerLeft{top:0;left:0}.rulerCorner{background:var(--ds-panel);z-index:6;border-right:1px solid var(--ds-border);border-bottom:1px solid var(--ds-border);width:24px;height:24px;position:absolute;top:0;left:0}.legend{background:var(--ds-panel);border:1px solid var(--ds-border);color:var(--ds-text-muted);z-index:5;white-space:nowrap;box-shadow:var(--ds-shadow-sm,0 2px 8px #0003);border-radius:999px;gap:14px;padding:7px 16px;font-size:11px;display:flex;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.dot{border-radius:50%;width:8px;height:8px;margin-right:4px;display:inline-block}.dotRed{background:#e23b3b}.dotBlue{background:#2ea0ff}.dotGreen{background:#27c084}.s2-libchips{flex-wrap:wrap;gap:6px;display:flex}.s2-chip{border:1px solid var(--ds-border);color:var(--ds-text-muted);cursor:pointer;background:0 0;border-radius:999px;padding:4px 10px;font-size:11.5px;font-weight:600}.s2-chip:hover{color:var(--ds-text)}.s2-chip--on{color:var(--ds-accent);border-color:var(--ds-accent);background:var(--ds-accent-dim,#6d5efc1f)}.s2-libgrid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.s2-libtile{border:1px solid var(--ds-border);background:var(--ds-bg);cursor:pointer;text-align:left;border-radius:8px;flex-direction:column;gap:6px;padding:8px;display:flex}.s2-libtile:hover{border-color:var(--ds-accent)}.s2-libtile__thumb{background:conic-gradient(#00000010 0 25%, transparent 0 50%, #00000010 0 75%, transparent 0);background-size:14px 14px;border-radius:5px;height:72px;display:block;overflow:hidden}.s2-libtile__thumb img{object-fit:contain;width:100%;height:100%;display:block}.s2-libtile__meta{flex-direction:column;gap:3px;display:flex}.s2-libtile__meta small{color:var(--ds-text);font-size:11px}.s2-minimap{z-index:7;background:var(--ds-panel);border:1px solid var(--ds-border);box-shadow:var(--ds-shadow-sm,0 2px 8px #0003);border-radius:8px;padding:6px;position:absolute;bottom:14px;right:14px}.s2-minimap canvas{cursor:crosshair;border-radius:4px;display:block}.s2-minimap__close{border:1px solid var(--ds-border);background:var(--ds-panel);width:20px;height:20px;color:var(--ds-text-muted);cursor:pointer;border-radius:50%;padding:0;font-size:13px;line-height:1;position:absolute;top:-8px;right:-8px}.s2-minimap__close:hover{color:var(--ds-text)}.s2-help{flex-direction:column;gap:6px;display:flex}.s2-help__row{align-items:baseline;gap:14px;font-size:13px;display:flex}.s2-help__kbd{text-align:right;flex:none;width:190px}.s2-floatbar{z-index:20;align-items:center;display:flex;position:absolute;transform:translate(-50%,-100%)}.s2-gallery{padding:var(--ds-s6,32px);flex:1;overflow-y:auto}.s2-gallery h1{font-family:var(--ds-font-display,inherit);margin:0 0 4px;font-size:26px;font-weight:800}.s2-gallery .s2-sub{color:var(--ds-text-muted);margin:0 0 var(--ds-s5,24px);font-size:13px}.s2-gallery h3{letter-spacing:.08em;text-transform:uppercase;color:var(--ds-text-muted);margin:var(--ds-s5,24px) 0 var(--ds-s3,12px);font-size:10px;font-weight:700}.s2-prodgrid{gap:var(--ds-s3,12px);grid-template-columns:repeat(auto-fill,minmax(180px,1fr));display:grid}.s2-prodcard{padding:var(--ds-s4,16px);background:var(--ds-card);border:1px solid var(--ds-border);border-radius:var(--ds-r-card,10px);cursor:pointer;text-align:left;transition:transform .15s var(--ds-ease,ease), border-color .15s, box-shadow .15s;color:var(--ds-text);font:inherit;flex-direction:column;align-items:flex-start;gap:4px;display:flex}.s2-prodcard:hover{border-color:var(--ds-accent);box-shadow:var(--ds-shadow-sm,0 2px 8px #0003);transform:translateY(-2px)}.s2-prodcard .s2-emoji{font-size:22px}.s2-prodcard b{font-size:13.5px}.s2-prodcard small{color:var(--ds-text-muted);font-size:11px;line-height:1.45}.s2-grid3{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.s2-grid4{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.s2-tile{background:var(--ds-card);border:1px solid var(--ds-border);border-radius:var(--ds-r-ctl,6px);cursor:pointer;color:var(--ds-text);font:inherit;flex-direction:column;align-items:center;gap:4px;padding:10px 4px;display:flex}.s2-tile:hover{border-color:var(--ds-accent)}.s2-tile span{font-size:20px;line-height:1}.s2-tile svg{width:22px;height:22px}.s2-tile small{color:var(--ds-text-muted);font-size:10px}.s2-hint{color:var(--ds-text-muted);margin:8px 0;font-size:11.5px;line-height:1.5}.s2-stack{gap:var(--ds-s2,8px);flex-direction:column;display:flex}.s2-row{gap:var(--ds-s2,8px);align-items:center;display:flex}.s2-row>*{min-width:0}.s2-tplgrid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.s2-tplcard{background:var(--ds-card);border:1px solid var(--ds-border);border-radius:var(--ds-r-ctl,6px);cursor:pointer;color:var(--ds-text);font:inherit;flex-direction:column;gap:4px;padding:6px;font-size:10.5px;display:flex}.s2-tplcard:hover{border-color:var(--ds-accent)}.s2-tplcard svg{border-radius:4px;width:100%;height:auto}.s2-tplthumb{object-fit:contain;border-radius:4px;width:100%;height:auto;display:block}.s2-roles{flex-direction:column;gap:6px;max-height:260px;display:flex;overflow-y:auto}.s2-rolerow{justify-content:space-between;align-items:center;gap:10px;display:flex}.s2-rolename{color:var(--ds-text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:45%;font-size:12px;overflow:hidden}.s2-error{color:var(--ds-danger,#e23b3b);margin:4px 0 0;font-size:12px}.s2-layer{border-radius:var(--ds-r-ctl,6px);cursor:pointer;border:1px solid #0000;align-items:center;gap:4px;padding:6px 8px;font-size:12px;display:flex}.s2-layer:hover{background:var(--ds-hover)}.s2-layer--on{border-color:var(--ds-accent);background:var(--ds-hover)}.s2-layer .s2-layername{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.s2-swatches{flex-wrap:wrap;gap:6px;display:flex}.s2-swatch{cursor:pointer;border:1px solid var(--ds-border);border-radius:6px;width:26px;height:26px}.s2-swatch:hover{outline:2px solid var(--ds-accent)}.s2-previewrow{flex-wrap:wrap;justify-content:center;gap:16px;display:flex}.s2-previewrow figure{text-align:center;margin:0}.s2-previewrow img{border:1px solid var(--ds-border);background:#fff;border-radius:6px;max-width:260px;max-height:300px}.s2-previewrow figcaption{color:var(--ds-text-muted);margin-top:6px;font-size:11px}@media (prefers-reduced-motion:reduce){.s2-prodcard,.s2-prodcard:hover{transition:none;transform:none}}
