/* UI only. Radix Colors 3.0.0 sRGB values; artwork/palette data remain untouched.
 * https://www.radix-ui.com/colors/docs/palette-composition/understanding-the-scale */
:root {
  --ui-black-a6:rgba(0,0,0,.4);
  --ds-color-backdrop:var(--ui-black-a6);
  --ui-divider-light:#fcfcfc;--ui-divider-dark:#202020;
  --ui-gray-1:#fcfcfc;--ui-gray-2:#f9f9f9;--ui-gray-3:#f0f0f0;
  --ui-gray-4:#e8e8e8;--ui-gray-5:#e0e0e0;--ui-gray-6:#d9d9d9;
  --ui-gray-7:#cecece;--ui-gray-8:#bbbbbb;--ui-gray-9:#8d8d8d;
  --ui-gray-10:#838383;--ui-gray-11:#646464;--ui-gray-12:#202020;
  --ui-red-3:#feebec;--ui-red-11:#ce2c31;--ui-red-12:#641723;
  --ui-green-3:#e6f6eb;--ui-green-11:#218358;
  --ui-amber-3:#fff7c2;--ui-amber-11:#ab6400;
}
:root[data-theme="dark"] {
  --ui-gray-1:#111111;--ui-gray-2:#191919;--ui-gray-3:#222222;
  --ui-gray-4:#2a2a2a;--ui-gray-5:#313131;--ui-gray-6:#3a3a3a;
  --ui-gray-7:#484848;--ui-gray-8:#606060;--ui-gray-9:#6e6e6e;
  --ui-gray-10:#7b7b7b;--ui-gray-11:#b4b4b4;--ui-gray-12:#eeeeee;
  --ui-red-3:#3b1219;--ui-red-11:#ff9592;--ui-red-12:#ffd1d9;
  --ui-green-3:#132d21;--ui-green-11:#3dd68c;
  --ui-amber-3:#302008;--ui-amber-11:#ffca16;
}
:root,:root[data-theme="dark"] {
  --ds-color-app:var(--ui-gray-1);--ds-color-canvas:var(--ui-gray-2);
  --ds-color-surface:var(--ui-gray-1);--ds-color-surface-strong:var(--ui-gray-2);
  --ds-color-surface-soft:var(--ui-gray-2);--ds-color-surface-pressed:var(--ui-gray-5);
  --ds-color-text:var(--ui-gray-12);--ds-color-text-strong:var(--ui-gray-12);
  --ds-color-text-secondary:var(--ui-gray-11);--ds-color-text-tertiary:var(--ui-gray-11);
  --ds-color-border:var(--ui-gray-7);--ds-color-border-soft:var(--ui-gray-6);
  --ds-color-border-strong:var(--ui-gray-8);--ds-color-overlay:var(--ui-gray-2);
  --ds-color-accent:var(--ui-gray-12);--ds-color-accent-hover:var(--ui-gray-11);
  --ds-color-accent-active:var(--ui-gray-12);--ds-color-accent-soft:var(--ui-gray-5);
  --ds-color-on-accent:var(--ui-gray-1);--ds-color-focus:var(--ui-gray-12);
  --ds-color-success:var(--ui-green-11);--ds-color-success-soft:var(--ui-green-3);
  --ds-color-danger:var(--ui-red-11);--ds-color-danger-hover:var(--ui-red-12);
  --ds-color-danger-soft:var(--ui-red-3);--ds-color-warning:var(--ui-amber-11);
  --ds-color-warning-soft:var(--ui-amber-3);
  --ds-font-size-xs:12px;--ds-font-size-sm:12px;--ds-font-size-md:14px;
  --ds-font-size-lg:14px;--ds-font-size-xl:24px;
  --ds-radius-sm:0;--ds-radius-md:0;--ds-radius-lg:0;
  --ds-shadow-raised:none;--ds-shadow-overlay:none;
  --ds-duration-fast:250ms;--ds-duration:250ms;--ds-ease:ease-out;
}
body.phase2-workspace,
:root:not([data-theme="dark"]) body.phase2-workspace .workspace-wrap,
:root[data-theme="dark"] body.phase2-workspace .workspace-wrap {
  --ds-color-accent:var(--ui-gray-12);--ds-color-accent-hover:var(--ui-gray-11);
  --ds-color-accent-active:var(--ui-gray-12);--ds-color-accent-soft:var(--ui-gray-5);
  --ds-color-focus:var(--ui-gray-12);
  --ws-app:var(--ds-color-app);--ws-canvas:var(--ds-color-canvas);
  --ws-surface:var(--ds-color-surface);--ws-surface-soft:var(--ds-color-surface-soft);
  --ws-border:var(--ds-color-border);--ws-border-strong:var(--ds-color-border-strong);
  --ws-text:var(--ds-color-text);--ws-text-strong:var(--ds-color-text-strong);
  --ws-text-secondary:var(--ds-color-text-secondary);--ws-text-tertiary:var(--ds-color-text-tertiary);
  --ws-text-muted:var(--ds-color-text-tertiary);--ws-accent:var(--ds-color-accent);
  --ws-accent-hover:var(--ds-color-accent-hover);--ws-accent-active:var(--ds-color-accent-active);
  --ws-accent-soft:var(--ds-color-accent-soft);--ws-danger:var(--ds-color-danger);
}
/* A high-specificity final rule also covers legacy ID-scoped component styles.
 * Borderless elements retain border-style:none; no new frames are introduced. */
/* Palette lettering retains its established compact style (reference layout).
 * Do not force the general UI size onto fixed-size bead/code swatches. */
:is(#ui-policy#ui-policy#ui-policy,body) :is(button,input,select,textarea,label,p,small,span,strong,em,output,summary,legend,dt,dd,a,div):not(.ws-summary-picker,.ws-summary-picker *) {
  font-size:12px!important;
}
:is(#ui-policy#ui-policy#ui-policy,body) :is(h2,h3,h4) { font-size:14px!important; }
:is(#ui-policy#ui-policy#ui-policy,body) h1 { font-size:24px!important; }
:is(#ui-policy#ui-policy#ui-policy,body) :is(button,input,select,textarea,fieldset,section,article,dialog,details,summary,div,label,nav,header,footer,aside) {
  box-shadow:none!important;
}
:is(#ui-policy#ui-policy#ui-policy,body) .ws-dashed-frame {
  border-top-width:min(.5px,var(--ws-frame-top,0px))!important;
  border-right-width:min(.5px,var(--ws-frame-right,0px))!important;
  border-bottom-width:min(.5px,var(--ws-frame-bottom,0px))!important;
  border-left-width:min(.5px,var(--ws-frame-left,0px))!important;
}
:is(#ui-policy#ui-policy#ui-policy,body) .sl-switch-ui,
:is(#ui-policy#ui-policy#ui-policy,body) .sl-switch-ui::after { border-width:.5px!important; }
:is(#ui-policy#ui-policy#ui-policy,body) :is(button,input,select,textarea,summary,a,div,section,article) {
  transition:none!important;animation:none!important;
}
body.phase2-workspace :is(.ws-panel,.ws-step-card,.ws-text-editor,.ws-text-effect-group,dialog,button,input,select,textarea) { border-radius:0!important; }
body.phase2-workspace .ws-cell-color-popover { color:var(--ds-color-text);background:var(--ds-color-surface);border-color:var(--ds-color-border); }
/* Native dialogs can be mounted outside .workspace-wrap; use ds tokens directly.
 * Do not target their canvas, img, swatches or user-selected preview backgrounds. */
:is(#ui-policy#ui-policy#ui-policy,body) dialog:modal {
  background:var(--ds-color-surface);color:var(--ds-color-text);
  border:.5px solid var(--ds-color-border);border-radius:0;box-shadow:none;
}
:is(#ui-policy#ui-policy#ui-policy,body) dialog::backdrop {
  background:var(--ds-color-backdrop);backdrop-filter:none;
}
:is(#ui-policy#ui-policy#ui-policy,body) :is(.exit-modal-card,.ws-toast,.ws-touch-bar,.ws-project-popover,.ws-edit-actions-popover,.ws-cell-color-popover) {
  background:var(--ds-color-surface);color:var(--ds-color-text);border-color:var(--ds-color-border);
}
:is(#ui-policy#ui-policy#ui-policy,body) dialog :is(input:not([type=color]):not([type=checkbox]):not([type=radio]),select,textarea) {
  background:var(--ds-color-surface);color:var(--ds-color-text);border-color:var(--ds-color-border);
}
:is(#ui-policy#ui-policy#ui-policy,body) dialog :is(input,select,textarea)::placeholder { color:var(--ds-color-text-secondary);opacity:1; }
:is(#ui-policy#ui-policy#ui-policy,body) dialog :is(button,input,select,textarea):disabled { color:var(--ds-color-text-secondary); }
body:not(.phase2-workspace) .hero-product { display:none!important; }
.ws-source-pick-candidates { position:absolute;z-index:40;display:flex;gap:4px;padding:4px;background:var(--ds-color-surface);color:var(--ds-color-text);border:.5px dashed var(--ds-color-border);max-width:calc(100% - 8px);overflow:auto; }
.ws-source-pick-candidates[hidden] { display:none!important; }
.ws-source-pick-candidates button { display:grid;place-items:center;min-width:36px;min-height:36px;padding:0;border:0;background:transparent;color:inherit;cursor:pointer; }
.ws-source-pick-candidates i { display:grid;place-items:center;width:36px;height:36px;box-sizing:border-box;font-style:normal;font-weight:400;border:.5px dashed var(--ds-color-border); }
:is(#ui-policy#ui-policy#ui-policy,body):not(.phase2-workspace) .generator-intro.homepage .hero-copy h1 { font-size:14px!important;letter-spacing:0; }
:is(#ui-policy#ui-policy#ui-policy,body):not(.phase2-workspace) .generator-intro.homepage .hero-copy h2 { font-size:24px!important;letter-spacing:0; }
/* Preserve keyboard focus as a stronger accessibility indicator, not decoration. */
:is(#ui-policy#ui-policy#ui-policy,body) :is(button,input,select,textarea,a,summary):focus-visible { outline:2px solid var(--ds-color-focus)!important;outline-offset:2px; }
@media(forced-colors:active) {
  :is(#ui-policy#ui-policy#ui-policy,body) :is(button,input,select,textarea,a,summary):focus-visible { outline-color:Highlight!important; }
}
