

/* Canonical AI generation-submit CTA: opt-in via .aidc-generation-cta.
 * Used by AI Interior, AI Fashion and future embedded service generators.
 * Only generation/submission actions opt in; ordinary Next/Save/Split controls
 * keep their own semantic button styling. No runtime text mutations required.
 * Dark theme: branded pink, readable white text, white lightning.
 * Light theme: retain the platform's quiet primary surface; keep the bolt.
 */

.aidc-generation-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--aidc-control-gap, 8px);
  text-align: center;
}

/* A single accessible text label comes from the existing DOM.
 * The decorative bolt is CSS-only, so labels/prices survive rerenders, quotes
 * and translations unchanged. Interior already has a bolt between label/cost. */
.aidc-generation-cta:not(.interior-submit)::before {
  content: '';
  display: inline-block;
  flex: 0 0 16px;
  width: 16px;
  height: 16px;
  background: currentColor;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M13.2 2.5a1 1 0 0 1 .8.98v5.77h5.08a1 1 0 0 1 .82 1.58l-8.4 11.93a1 1 0 0 1-1.8-.58v-5.77H4.82a1 1 0 0 1-.82-1.58l8.4-11.93a1 1 0 0 1 .8-.4z'/%3E%3C/svg%3E") center / contain no-repeat;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M13.2 2.5a1 1 0 0 1 .8.98v5.77h5.08a1 1 0 0 1 .82 1.58l-8.4 11.93a1 1 0 0 1-1.8-.58v-5.77H4.82a1 1 0 0 1-.82-1.58l8.4-11.93a1 1 0 0 1 .8-.4z'/%3E%3C/svg%3E") center / contain no-repeat;
  pointer-events: none;
}
.aidc-generation-cta:not(.interior-submit) > svg:first-child {
  display: none !important; /* legacy sparkle: don't render two icons */
}
.aidc-generation-cta:not(.interior-submit).fh-generate-btn {
  display: inline-flex;
}

/* The same semantic owner must also override legacy view-sheet gradients in
 * light mode, including the route's gray disabled labels. */
html[data-aidc-color-mode="light"] body .aidc-generation-cta,
html[data-aidc-color-mode="light"] body #interior-submit.aidc-generation-cta {
  background: var(--aidc-btn-primary-bg) !important;
  border-color: var(--aidc-btn-primary-border) !important;
  color: var(--aidc-btn-primary-text) !important;
  -webkit-text-fill-color: var(--aidc-btn-primary-text) !important;
}
html[data-aidc-color-mode="light"] body .aidc-generation-cta:disabled,
html[data-aidc-color-mode="light"] body .aidc-generation-cta[aria-disabled="true"],
html[data-aidc-color-mode="light"] body #interior-submit.aidc-generation-cta:disabled {
  background: var(--aidc-btn-secondary-bg) !important;
  border-color: var(--aidc-btn-secondary-border) !important;
  color: var(--aidc-text-primary) !important;
  -webkit-text-fill-color: var(--aidc-text-primary) !important;
  box-shadow: none !important;
  opacity: 1 !important;
}
html[data-aidc-color-mode="light"] body .aidc-generation-cta :is(span,small,strong),
html[data-aidc-color-mode="light"] body #interior-submit.aidc-generation-cta :is(span,small,strong) {
  color: inherit !important;
  -webkit-text-fill-color: currentColor !important;
}
html[data-aidc-color-mode="light"] body .aidc-generation-cta .interior-submit-token-icon,
html[data-aidc-color-mode="light"] body #interior-submit.aidc-generation-cta .interior-submit-token-icon {
  background: currentColor !important;
}

/* This higher-specificity dark contract wins over route-owned gray disabled
 * backgrounds. Disabled stays visibly pink, but is still genuinely disabled,
 * non-hoverable and clearly less prominent than the active submit. */
html:not([data-aidc-color-mode="light"]) body .aidc-generation-cta,
html:not([data-aidc-color-mode="light"]) body #interior-submit.aidc-generation-cta,
html:not([data-aidc-color-mode="light"]) body .ms-shell .ms-cta {
  background: var(--aidc-btn-primary-bg) !important;
  border: 1px solid var(--aidc-btn-primary-border) !important;
  color: var(--aidc-btn-primary-text) !important;
  -webkit-text-fill-color: var(--aidc-btn-primary-text) !important;
  opacity: 1 !important;
  text-shadow: none !important;
  filter: none !important;
}
html:not([data-aidc-color-mode="light"]) body .aidc-generation-cta :is(span,small,strong),
html:not([data-aidc-color-mode="light"]) body #interior-submit.aidc-generation-cta :is(span,small,strong),
html:not([data-aidc-color-mode="light"]) body .ms-shell .ms-cta :is(span,small,strong) {
  color: var(--aidc-btn-primary-text) !important;
  -webkit-text-fill-color: var(--aidc-btn-primary-text) !important;
}
html:not([data-aidc-color-mode="light"]) body .aidc-generation-cta .interior-submit-token-icon,
html:not([data-aidc-color-mode="light"]) body #interior-submit.aidc-generation-cta .interior-submit-token-icon,
html:not([data-aidc-color-mode="light"]) body .ms-shell .ms-cta-icon {
  background: var(--aidc-btn-primary-text) !important;
}
html:not([data-aidc-color-mode="light"]) body .aidc-generation-cta:disabled,
html:not([data-aidc-color-mode="light"]) body #interior-submit.aidc-generation-cta:disabled,
html:not([data-aidc-color-mode="light"]) body .aidc-generation-cta[aria-disabled="true"],
html:not([data-aidc-color-mode="light"]) body .ms-shell .ms-cta:disabled {
  background: var(--aidc-btn-primary-bg) !important;
  border-color: var(--aidc-btn-primary-border) !important;
  color: var(--aidc-btn-primary-text) !important;
  -webkit-text-fill-color: var(--aidc-btn-primary-text) !important;
  opacity: .7 !important;
  filter: saturate(.78) !important;
  box-shadow: none !important;
  cursor: not-allowed !important;
  transform: none !important;
}
html:not([data-aidc-color-mode="light"]) body .aidc-generation-cta:hover:not(:disabled),
html:not([data-aidc-color-mode="light"]) body #interior-submit.aidc-generation-cta:hover:not(:disabled),
html:not([data-aidc-color-mode="light"]) body .ms-shell .ms-cta:hover:not(:disabled) {
  background: var(--aidc-btn-primary-bg-hover) !important;
  color: var(--aidc-btn-primary-text) !important;
  -webkit-text-fill-color: var(--aidc-btn-primary-text) !important;
}
.aidc-generation-cta.fh-generate-btn--loading::before {
  animation: aidc-generation-cta-pulse 1.15s ease-in-out infinite;
}
@keyframes aidc-generation-cta-pulse {
  50% { opacity: .45; }
}
@media (prefers-reduced-motion: reduce) {
  .aidc-generation-cta.fh-generate-btn--loading::before { animation: none; }
}


/* Canonical button geometry. Size is a tokenized contract, not route-owned. */
.aidc-btn{appearance:none;border:1px solid transparent;border-radius:var(--aidc-radius-button);height:var(--aidc-control-height-md);min-height:var(--aidc-control-height-md);padding:0 14px;display:inline-flex;align-items:center;justify-content:center;gap:var(--aidc-control-gap);box-sizing:border-box;font:inherit;font-size:var(--aidc-font-size-control,13px);font-weight:600;line-height:1.2;cursor:pointer;user-select:none;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,color .15s ease,filter .15s ease,opacity .15s ease}
.aidc-btn--sm{height:var(--aidc-control-height-sm);min-height:var(--aidc-control-height-sm);padding-inline:12px}
.aidc-btn--md{height:var(--aidc-control-height-md);min-height:var(--aidc-control-height-md)}
.aidc-btn--lg{height:var(--aidc-control-height-lg);min-height:var(--aidc-control-height-lg);padding-inline:18px}
.aidc-btn:disabled,.aidc-btn[aria-disabled="true"]{cursor:not-allowed;opacity:1;background:var(--aidc-btn-disabled-bg)!important;border-color:var(--aidc-btn-disabled-border)!important;color:var(--aidc-btn-disabled-text)!important;box-shadow:none!important;filter:none!important}
.aidc-btn--primary{background:var(--aidc-btn-primary-bg);border-color:var(--aidc-btn-primary-border);color:var(--aidc-btn-primary-text);box-shadow:var(--aidc-btn-primary-shadow)}
.aidc-btn--secondary{background:var(--aidc-btn-secondary-bg);border-color:var(--aidc-btn-secondary-border);color:var(--aidc-text-primary)}
.aidc-btn--secondary:hover:not(:disabled){background:var(--aidc-btn-secondary-bg-hover)}
.aidc-btn--ghost{background:transparent;border-color:transparent;color:var(--aidc-text-secondary)}
.aidc-btn--ghost:hover:not(:disabled){background:var(--aidc-btn-secondary-bg);color:var(--aidc-text-primary)}
.aidc-btn--danger{background:linear-gradient(135deg,var(--aidc-action-danger-from),var(--aidc-action-danger-to));border-color:var(--aidc-action-danger-border);color:var(--aidc-text-inverse);box-shadow:0 0 18px var(--aidc-action-danger-glow)}
.aidc-btn--success{background:var(--aidc-status-success);border-color:color-mix(in srgb,var(--aidc-status-success) 72%,white 28%);color:var(--aidc-text-inverse)}
.aidc-btn--icon{width:var(--aidc-icon-control-size-md);min-width:var(--aidc-icon-control-size-md);padding:0}
.aidc-btn--icon.aidc-btn--sm{width:var(--aidc-icon-control-size-sm);min-width:var(--aidc-icon-control-size-sm)}
.aidc-btn--icon.aidc-btn--lg{width:var(--aidc-icon-control-size-lg);min-width:var(--aidc-icon-control-size-lg)}
.aidc-btn--primary:hover:not(:disabled){background:var(--aidc-btn-primary-bg-hover);border-color:var(--aidc-btn-primary-border-hover);color:var(--aidc-btn-primary-text)}
.aidc-btn--danger:hover:not(:disabled),.aidc-btn--success:hover:not(:disabled){filter:brightness(1.08)}
.aidc-btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--aidc-action-focus-ring)}

html[data-aidc-color-mode="light"] .aidc-btn--primary{filter:none}
html[data-aidc-color-mode="light"] .aidc-btn--primary:hover:not(:disabled){filter:none}
html[data-aidc-color-mode="light"] .aidc-btn--success{background:var(--aidc-status-success-bg);border-color:var(--aidc-status-success-border);color:var(--aidc-status-success);box-shadow:none}
html[data-aidc-color-mode="light"] .aidc-btn--danger{background:var(--aidc-status-danger-bg);border-color:var(--aidc-action-danger-border);color:var(--aidc-red-500);box-shadow:none}

/* Legacy route actions. The application predates .aidc-btn and still has many
   `.btn-primary` / `.button.primary` / `.pill-btn.primary` entrypoints. In the
   light theme they must resolve to the same quiet primary treatment rather than
   reintroducing large solid-fuchsia islands. */
html[data-aidc-color-mode="light"] body:not([data-page="home"]) :where(
  .btn-primary,
  .btn-primary-lg,
  .button.primary,
  .pill-btn.primary,
  button.primary,
  .primary-action
):not(.is-danger):not(.danger):not([data-danger]){
  background:var(--aidc-btn-primary-bg)!important;
  border:1px solid var(--aidc-btn-primary-border)!important;
  color:var(--aidc-btn-primary-text)!important;
  box-shadow:var(--aidc-btn-primary-shadow)!important;
  text-shadow:none!important;
  filter:none!important
}
html[data-aidc-color-mode="light"] body:not([data-page="home"]) :where(
  .btn-primary,
  .btn-primary-lg,
  .button.primary,
  .pill-btn.primary,
  button.primary,
  .primary-action
):not(.is-danger):not(.danger):not([data-danger]):hover:not(:disabled){
  background:var(--aidc-btn-primary-bg-hover)!important;
  border-color:var(--aidc-btn-primary-border-hover)!important;
  color:var(--aidc-btn-primary-text)!important;
  box-shadow:none!important;
  filter:none!important
}
html[data-aidc-color-mode="light"] body:not([data-page="home"]) :where(.btn-primary,.btn-primary-lg,.button.primary,.pill-btn.primary,button.primary,.primary-action):disabled{
  background:var(--aidc-btn-disabled-bg)!important;
  border-color:var(--aidc-btn-disabled-border)!important;
  color:var(--aidc-btn-disabled-text)!important;
  opacity:1!important
}


/* Canonical light-primary enforcement.
   Legacy route adapters may still paint primary buttons from brand action
   gradients. In light mode, button surfaces must resolve through the quiet
   pale-pink primary tokens instead of rendering solid fuchsia. */
html[data-aidc-color-mode="light"][data-aidc-color-mode="light"] body :is(
  .aidc-btn--primary,
  .btn-primary,
  .btn-primary-lg,
  .button.primary,
  .pill-btn.primary,
  button.primary,
  .primary-action,
  [class$="__btn--primary"],
  [class$="-btn--primary"],
  [class$="__button--primary"],
  [class$="-button--primary"],
  .catalog-picker-choose,
  .interior-primary-button,
  .ms-cta,
  .chat-send-btn,
  .chat-settings-modal__save,
  .aidc-dialog__btn--ok,
  .aidc-cdlg__ok,
  .aidc-rp-btn-primary,
  .aidc-rp-confirm,
  .tok-topup__btn,
  .plan-gate__cta,
  .tree-edit-btn,
  .pe-layer-decomp__submit,
  .invite-join-btn,
  .aidc-update-toast__btn--update,
  .connectors-button--primary
):not(.is-danger):not(.danger):not([data-danger]){
  background:var(--aidc-btn-primary-bg)!important;
  border-color:var(--aidc-btn-primary-border)!important;
  color:var(--aidc-btn-primary-text)!important;
  -webkit-text-fill-color:var(--aidc-btn-primary-text)!important;
  box-shadow:var(--aidc-btn-primary-shadow)!important;
  text-shadow:none!important;
  filter:none!important
}

html[data-aidc-color-mode="light"][data-aidc-color-mode="light"] body :is(
  .aidc-btn--primary,
  .btn-primary,
  .btn-primary-lg,
  .button.primary,
  .pill-btn.primary,
  button.primary,
  .primary-action,
  [class$="__btn--primary"],
  [class$="-btn--primary"],
  [class$="__button--primary"],
  [class$="-button--primary"],
  .catalog-picker-choose,
  .interior-primary-button,
  .ms-cta,
  .chat-send-btn,
  .chat-settings-modal__save,
  .aidc-dialog__btn--ok,
  .aidc-cdlg__ok,
  .aidc-rp-btn-primary,
  .aidc-rp-confirm,
  .tok-topup__btn,
  .plan-gate__cta,
  .tree-edit-btn,
  .pe-layer-decomp__submit,
  .invite-join-btn,
  .aidc-update-toast__btn--update,
  .connectors-button--primary
):not(.is-danger):not(.danger):not([data-danger]):hover:not(:disabled){
  background:var(--aidc-btn-primary-bg-hover)!important;
  border-color:var(--aidc-btn-primary-border-hover)!important;
  color:var(--aidc-btn-primary-text)!important;
  -webkit-text-fill-color:var(--aidc-btn-primary-text)!important;
  box-shadow:none!important;
  filter:none!important
}

html[data-aidc-color-mode="light"][data-aidc-color-mode="light"] body.admin-statistics-page :is(.toolbar button,.btn):not(.secondary):not(.danger),
html[data-aidc-color-mode="light"][data-aidc-color-mode="light"] body.admin-event-campaigns-page button:not(.secondary):not(.danger),
html[data-aidc-color-mode="light"][data-aidc-color-mode="light"] body.admin-subscriptions-page button:not(.secondary):not(.danger),
html[data-aidc-color-mode="light"][data-aidc-color-mode="light"] body.admin-b2b-billing-page button.primary{
  background:var(--aidc-btn-primary-bg)!important;
  border-color:var(--aidc-btn-primary-border)!important;
  color:var(--aidc-btn-primary-text)!important;
  -webkit-text-fill-color:var(--aidc-btn-primary-text)!important;
  box-shadow:none!important;
  text-shadow:none!important;
  filter:none!important
}



/* Shared dropdown/menu primitives. Geometry and semantic states are global. */

.aidc-dropdown,
.aidc-menu {
  min-width: 180px;
  padding: 6px;
  background: var(--aidc-bg-popover);
  color: var(--aidc-text-primary);
  border: 1px solid var(--aidc-border-default);
  border-radius: var(--aidc-radius-button);
  box-shadow: var(--aidc-shadow-popover);
}

.aidc-menu__item {
  width: 100%;
  min-height: var(--aidc-menu-row-height);
  display: flex;
  align-items: center;
  gap: var(--aidc-control-gap);
  padding: 0 var(--aidc-control-padding-x);
  box-sizing: border-box;
  border: 1px solid transparent;
  border-radius: var(--aidc-radius-control);
  background: transparent;
  color: var(--aidc-text-secondary);
  font: inherit;
  font-size: var(--aidc-font-size-control);
  text-align: left;
  cursor: pointer;
  transition: background .15s ease,color .15s ease,border-color .15s ease;
}

.aidc-menu__item:hover,
.aidc-menu__item:focus-visible {
  background: var(--aidc-btn-secondary-bg-hover);
  color: var(--aidc-text-primary);
  border-color: var(--aidc-border-subtle);
  outline: none;
}

.aidc-menu__item.is-active,
.aidc-menu__item[aria-selected="true"] {
  background: var(--aidc-control-selected-bg);
  border-color: var(--aidc-control-selected-border);
  color: var(--aidc-control-selected-text);
}

.aidc-menu__item:disabled,
.aidc-menu__item[aria-disabled="true"] {
  cursor: not-allowed;
  background: var(--aidc-control-disabled-bg);
  border-color: var(--aidc-control-disabled-border);
  color: var(--aidc-text-disabled);
  opacity: 1;
}

.aidc-menu__item--danger { color: var(--aidc-red-500); }

.aidc-menu__item--danger:hover,
.aidc-menu__item--danger:focus-visible {
  background: var(--aidc-status-danger-bg);
  border-color: var(--aidc-action-danger-border);
  color: var(--aidc-red-500);
}

.aidc-menu__separator { height:1px;margin:5px 4px;background:var(--aidc-border-subtle); }
.aidc-menu__label { padding:6px 10px 4px;color:var(--aidc-text-muted);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase; }

/* Canonical portal-enhanced select contract.
   dropdown-portal.js owns positioning only; this file owns all visual states.
*/
.aidc-select { position:relative;display:inline-flex;min-width:0;max-width:100%; }
.aidc-select[hidden] { display:none; }

.aidc-select__native {
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  margin:-1px!important;
  padding:0!important;
  overflow:hidden!important;
  clip:rect(0 0 0 0)!important;
  white-space:nowrap!important;
  border:0!important;
}

.aidc-select__btn {
  width:100%;
  height:var(--aidc-control-height-md);
  min-height:var(--aidc-control-height-md);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--aidc-control-gap);
  padding:0 var(--aidc-control-padding-x);
  box-sizing:border-box;
  border:1px solid var(--aidc-border-default);
  border-radius:var(--aidc-radius-control);
  background:var(--aidc-bg-elevated);
  color:var(--aidc-text-primary);
  box-shadow:none;
  font:inherit;
  font-size:var(--aidc-font-size-control);
  text-align:left;
  cursor:pointer;
  transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,color .15s ease;
}

.aidc-select--sm .aidc-select__btn{height:var(--aidc-control-height-sm);min-height:var(--aidc-control-height-sm)}
.aidc-select--lg .aidc-select__btn{height:var(--aidc-control-height-lg);min-height:var(--aidc-control-height-lg)}

.aidc-select__btn::after {
  content:"" !important;
  width:7px;
  height:7px;
  flex:0 0 7px;
  border-right:1.5px solid var(--aidc-text-muted);
  border-bottom:1.5px solid var(--aidc-text-muted);
  transform:rotate(45deg) translateY(-2px);
  transition:transform .15s ease;
}

.aidc-select__btn:hover {
  background:var(--aidc-workspace-control-hover);
  border-color:var(--aidc-border-strong);
}

.aidc-select__btn:focus-visible,
.aidc-select__btn[aria-expanded="true"] {
  outline:none;
  border-color:var(--aidc-action-focus);
  box-shadow:0 0 0 3px var(--aidc-action-focus-ring);
}

.aidc-select__btn[aria-expanded="true"]::after { transform:rotate(225deg) translate(-1px,-1px); }

.aidc-select__btn:disabled,
.aidc-select__btn[aria-disabled="true"]{
  cursor:not-allowed;
  background:var(--aidc-control-disabled-bg);
  border-color:var(--aidc-control-disabled-border);
  color:var(--aidc-text-disabled);
  opacity:1;
}
.aidc-select__btn:disabled::after,
.aidc-select__btn[aria-disabled="true"]::after{border-color:var(--aidc-text-disabled)}

.aidc-select__menu {
  display:none;
  position:fixed;
  min-width:180px;
  max-width:min(360px,calc(100vw - 16px));
  max-height:min(360px,calc(100dvh - 16px));
  overflow-y:auto;
  overflow-x:hidden;
  padding:6px;
  border:1px solid var(--aidc-border-default);
  border-radius:var(--aidc-radius-button);
  background:var(--aidc-bg-popover)!important;
  color:var(--aidc-text-primary);
  box-shadow:var(--aidc-shadow-popover);
  z-index:1000002;
  scrollbar-color:var(--aidc-scrollbar-thumb) transparent;
}

.aidc-select__option {
  width:100%;
  min-height:var(--aidc-menu-row-height);
  display:flex;
  align-items:center;
  gap:var(--aidc-control-gap);
  box-sizing:border-box;
  padding:0 var(--aidc-control-padding-x);
  border:1px solid transparent;
  border-radius:var(--aidc-radius-control);
  background:transparent;
  color:var(--aidc-text-secondary);
  font-size:var(--aidc-font-size-control);
  white-space:normal;
  overflow-wrap:anywhere;
  cursor:pointer;
  transition:background .15s ease,border-color .15s ease,color .15s ease;
}

.aidc-select__option:hover,
.aidc-select__option:focus-visible {
  outline:none;
  background:var(--aidc-btn-secondary-bg-hover);
  border-color:var(--aidc-border-subtle);
  color:var(--aidc-text-primary);
}

.aidc-select__option.is-selected,
.aidc-select__option[aria-selected="true"] {
  background:var(--aidc-control-selected-bg);
  border-color:var(--aidc-control-selected-border);
  color:var(--aidc-control-selected-text);
}

.aidc-select__option[aria-disabled="true"]{
  cursor:not-allowed;
  color:var(--aidc-text-disabled);
  background:var(--aidc-control-disabled-bg);
  opacity:1;
}

.aidc-select__group-label {
  display:flex;
  align-items:center;
  gap:6px;
  padding:8px 10px 5px;
  color:var(--aidc-text-muted);
  font-size:11px;
  font-weight:600;
  letter-spacing:.06em;
  text-transform:uppercase;
  cursor:pointer;
}

.aidc-select__group-arrow { color:var(--aidc-text-muted);font-size:10px; }
.aidc-select__group-items.is-collapsed { display:none; }
.aidc-select__option--grouped { padding-left:18px; }
.aidc-select__option-icon { width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 18px;color:currentColor; }
.aidc-select__option-icon svg { width:18px;height:18px;display:block; }

.aidc-select__menu::-webkit-scrollbar { width:var(--aidc-scrollbar-size); }
.aidc-select__menu::-webkit-scrollbar-thumb { background:var(--aidc-scrollbar-thumb);border-radius:999px; }




/* Shared create-project visual contract.
   Desktop tree modal and TG/PWA modal consume the same semantic tokens.
   The folder hierarchy itself is owned by project-hierarchy-contract.js. */
html:root{
  --aidc-project-create-dialog-width:min(600px,calc(100vw - 40px));
  --aidc-project-create-dialog-open-height:min(720px,calc(100dvh - 48px));
  --aidc-project-create-tree-max-height:min(430px,44dvh);
  --aidc-project-create-tree-gap:8px
}

/* Destination choices share the project tree's modal shell on site and WebApp. */
.tree-modal-overlay:has([data-hierarchy-destination]){position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:16px;box-sizing:border-box;backdrop-filter:blur(6px)}
[data-hierarchy-destination].tree-modal{min-width:0;width:var(--aidc-project-create-dialog-width);max-width:100%;box-sizing:border-box;border:1px solid var(--aidc-border-default);border-radius:16px;padding:18px;font-family:inherit}
[data-hierarchy-destination] .tree-modal__title{font-size:16px;font-weight:700;margin-bottom:12px}
[data-hierarchy-destination] .tree-modal__help,[data-hierarchy-destination] .tree-modal__selected{font-size:12px;line-height:1.5;color:var(--aidc-text-secondary);margin:8px 0 0;overflow-wrap:anywhere}
[data-hierarchy-destination] .tree-modal__selected:empty{display:none}
[data-hierarchy-destination] .tree-modal__actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}
[data-hierarchy-destination] .tree-modal__actions .btn{min-height:36px;padding:8px 14px;border:1px solid var(--aidc-border-default);border-radius:10px;cursor:pointer;font:inherit}
[data-hierarchy-destination] .tree-modal__actions .btn:disabled{opacity:.55;cursor:default}

.tree-modal-overlay,
body.aidc-tg .tg-modal[data-create-project-modal]{
  background:var(--aidc-project-create-backdrop)!important
}

.tree-modal,
body.aidc-tg .tg-modal[data-create-project-modal] .tg-modal__card{
  background:var(--aidc-project-create-surface)!important;
  border-color:var(--aidc-project-create-border)!important;
  color:var(--aidc-project-create-title)!important;
  box-shadow:var(--aidc-shadow-modal)!important
}

.tree-modal__title,
body.aidc-tg .tg-modal[data-create-project-modal] :where(.tg-modal__title,.panel-title){
  color:var(--aidc-project-create-title)!important;
  -webkit-text-fill-color:var(--aidc-project-create-title)!important
}

.tree-modal__field,
.tree-modal__field>span,
body.aidc-tg .tg-modal[data-create-project-modal] :where(.panel-sub,label){
  color:var(--aidc-project-create-label)!important;
  -webkit-text-fill-color:var(--aidc-project-create-label)!important
}

.tree-modal :where(input,select,textarea,.tree-modal__search,.tree-modal__select),
body.aidc-tg .tg-modal[data-create-project-modal] :where(input,select,textarea){
  background:var(--aidc-project-create-field-bg)!important;
  border-color:var(--aidc-project-create-field-border)!important;
  color:var(--aidc-project-create-field-text)!important;
  -webkit-text-fill-color:var(--aidc-project-create-field-text)!important;
  box-shadow:none!important
}
.tree-modal :where(input,textarea)::placeholder,
body.aidc-tg .tg-modal[data-create-project-modal] :where(input,textarea)::placeholder{
  color:var(--aidc-text-muted)!important;
  -webkit-text-fill-color:var(--aidc-text-muted)!important;
  opacity:1!important
}
.tree-modal :where(input,select,textarea):focus,
body.aidc-tg .tg-modal[data-create-project-modal] :where(input,select,textarea):focus{
  border-color:var(--aidc-action-focus)!important;
  box-shadow:0 0 0 3px var(--aidc-action-focus-ring)!important;
  outline:none!important
}
.tree-modal__select option{background:var(--aidc-bg-popover)!important;color:var(--aidc-project-create-field-text)!important}
.tree-modal__select-wrap::after{border-top-color:var(--aidc-project-create-icon)!important}

.tree-modal__listbtn,
.tree-modal__segbtn,
.tree-modal__row .btn,
.tree-modal__actions .btn,
body.aidc-tg .tg-modal[data-create-project-modal] :where(.tg-project-type-picker,.tg-project-choice,.tg-modal__action,.btn-outline){
  background:var(--aidc-project-create-option-bg)!important;
  border-color:var(--aidc-project-create-option-border)!important;
  color:var(--aidc-project-create-option-text)!important;
  -webkit-text-fill-color:var(--aidc-project-create-option-text)!important;
  box-shadow:none!important
}
.tree-modal__listbtn:hover,
.tree-modal__segbtn:hover,
.tree-modal__row .btn:hover,
.tree-modal__actions .btn:hover,
body.aidc-tg .tg-modal[data-create-project-modal] :where(.tg-project-type-picker,.tg-project-choice,.tg-modal__action,.btn-outline):hover{
  background:var(--aidc-project-create-option-hover)!important;
  border-color:var(--aidc-border-strong)!important;
  color:var(--aidc-text-primary)!important;
  -webkit-text-fill-color:var(--aidc-text-primary)!important
}
.tree-modal__listbtn.is-active,
.tree-modal__segbtn.is-active,
body.aidc-tg .tg-modal[data-create-project-modal] :where(.tg-project-type-picker,.tg-project-choice).is-active{
  background:var(--aidc-project-create-option-active-bg)!important;
  border-color:var(--aidc-project-create-option-active-border)!important;
  color:var(--aidc-project-create-option-active-text)!important;
  -webkit-text-fill-color:var(--aidc-project-create-option-active-text)!important
}

.tree-modal__actions .btn.primary,
body.aidc-tg .tg-modal[data-create-project-modal] :where(.btn-primary,[data-create-project-submit]){
  background:var(--aidc-btn-primary-bg)!important;
  border-color:var(--aidc-btn-primary-border)!important;
  color:var(--aidc-btn-primary-text)!important;
  -webkit-text-fill-color:var(--aidc-btn-primary-text)!important;
  box-shadow:var(--aidc-btn-primary-shadow)!important
}
html[data-aidc-color-mode="light"] .tree-modal__actions .btn.primary,
html[data-aidc-color-mode="light"] body.aidc-tg .tg-modal[data-create-project-modal] :where(.btn-primary,[data-create-project-submit]){
  background:color-mix(in srgb,var(--aidc-action-primary-from) 9%,var(--aidc-bg-card) 91%)!important;
  border-color:color-mix(in srgb,var(--aidc-action-primary-from) 58%,transparent)!important;
  color:var(--aidc-action-primary-to)!important;
  -webkit-text-fill-color:var(--aidc-action-primary-to)!important;
  box-shadow:none!important
}

/* Desktop project type selector: icon-only, outline SVG, tooltip carries label. */
.tree-modal__segmented:has(.tree-modal__segbtn[data-value="image"]){
  display:grid!important;
  grid-template-columns:repeat(5,minmax(48px,1fr))!important;
  gap:8px!important
}
.tree-modal__segmented:has(.tree-modal__segbtn[data-value="image"]) .tree-modal__segbtn{
  min-width:0!important;
  min-height:48px!important;
  padding:0!important;
  font-size:0!important;
  display:grid!important;
  place-items:center!important;
  color:var(--aidc-project-create-icon)!important
}
.tree-modal__segmented:has(.tree-modal__segbtn[data-value="image"]) .tree-modal__segbtn.is-active{
  color:var(--aidc-project-create-icon-active)!important
}
.tree-modal__segbtn[data-aidc-outline-icon="1"] svg{
  width:22px!important;
  height:22px!important;
  display:block!important;
  margin:auto!important;
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:1.7!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
  pointer-events:none!important
}

/* Folder field adapter. Row/chevron/workspace/folder/project visuals are all
   supplied by the canonical project hierarchy contract used by Reference Picker. */
.tree-modal:has(.aidc-project-folder-trigger){
  width:var(--aidc-project-create-dialog-width)!important;
  max-width:var(--aidc-project-create-dialog-width)!important
}
.tree-modal:has(.aidc-project-create-ref-tree:not([hidden])){
  height:var(--aidc-project-create-dialog-open-height)!important;
  max-height:calc(100dvh - 24px)!important;
  overflow:hidden!important
}
.tree-modal:has(.aidc-project-create-ref-tree:not([hidden])) .tree-modal__form{
  height:100%!important;
  min-height:0!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  padding-right:2px!important;
  scrollbar-width:thin;
  scrollbar-color:var(--aidc-scrollbar-thumb) transparent
}
.tree-modal:has(.aidc-project-create-ref-tree:not([hidden])) .tree-modal__field:has(.aidc-project-folder-trigger){min-height:0!important}
.tree-modal__select-wrap[data-aidc-hierarchy="1"]{
  position:relative!important;
  display:flex!important;
  flex-direction:column!important;
  gap:var(--aidc-project-create-tree-gap)!important;
  min-height:0!important
}
.tree-modal__select-wrap[data-aidc-hierarchy="1"]::after{display:none!important}
.tree-modal__select-wrap[data-aidc-hierarchy="1"] .aidc-project-folder-native{display:none!important}
.aidc-project-folder-trigger{
  width:100%;
  min-height:42px;
  display:grid;
  grid-template-columns:18px minmax(0,1fr) 18px;
  align-items:center;
  gap:8px;
  padding:0 12px;
  border:1px solid var(--aidc-project-create-field-border);
  border-radius:var(--aidc-radius-control);
  background:var(--aidc-project-create-field-bg);
  color:var(--aidc-project-create-field-text);
  font:inherit;
  text-align:left;
  cursor:pointer;
  flex:0 0 auto
}
.aidc-project-folder-trigger:hover{border-color:var(--aidc-border-strong);background:var(--aidc-project-create-option-hover)}
.aidc-project-folder-trigger:focus-visible{border-color:var(--aidc-action-focus);box-shadow:0 0 0 3px var(--aidc-action-focus-ring);outline:none}
.aidc-project-folder-trigger>.rp-project-tree__kind-icon{width:16px;height:16px;color:var(--aidc-project-create-icon)}
.aidc-project-folder-trigger__label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.aidc-project-folder-trigger__chev{text-align:center;color:var(--aidc-project-create-icon)}
.aidc-project-create-ref-tree{
  position:relative!important;
  z-index:1!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  max-height:var(--aidc-project-create-tree-max-height)!important;
  flex:0 1 var(--aidc-project-create-tree-max-height)!important;
  box-sizing:border-box!important
}
.aidc-project-create-ref-tree[hidden]{display:none!important}

.tree-modal__hint,.tree-modal__empty{color:var(--aidc-project-create-label)!important;-webkit-text-fill-color:var(--aidc-project-create-label)!important}
.tree-modal__list::-webkit-scrollbar-thumb{background:var(--aidc-scrollbar-thumb)!important}
.tree-modal__list::-webkit-scrollbar-thumb:hover{background:var(--aidc-scrollbar-thumb-hover)!important}

@media(max-height:760px){
  html:root{
    --aidc-project-create-dialog-open-height:calc(100dvh - 24px);
    --aidc-project-create-tree-max-height:38dvh
  }
}
@media(max-width:520px){
  html:root{
    --aidc-project-create-dialog-width:calc(100vw - 24px);
    --aidc-project-create-dialog-open-height:calc(100dvh - 24px);
    --aidc-project-create-tree-max-height:42dvh
  }
  .tree-modal__segmented:has(.tree-modal__segbtn[data-value="image"]){grid-template-columns:repeat(5,minmax(44px,1fr))!important}
}



/* Canonical AI generation-submit CTA: opt-in via .aidc-generation-cta.
 * Used by AI Interior, AI Fashion and future embedded service generators.
 * Only generation/submission actions opt in; ordinary Next/Save/Split controls
 * keep their own semantic button styling. No runtime text mutations required.
 * Dark theme: branded pink, readable white text, white lightning.
 * Light theme: retain the platform's quiet primary surface; keep the bolt.
 */

.aidc-generation-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--aidc-control-gap, 8px);
  text-align: center;
}

/* A single accessible text label comes from the existing DOM.
 * The decorative bolt is CSS-only, so labels/prices survive rerenders, quotes
 * and translations unchanged. Interior already has a bolt between label/cost. */
.aidc-generation-cta:not(.interior-submit)::before {
  content: '';
  display: inline-block;
  flex: 0 0 16px;
  width: 16px;
  height: 16px;
  background: currentColor;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M13.2 2.5a1 1 0 0 1 .8.98v5.77h5.08a1 1 0 0 1 .82 1.58l-8.4 11.93a1 1 0 0 1-1.8-.58v-5.77H4.82a1 1 0 0 1-.82-1.58l8.4-11.93a1 1 0 0 1 .8-.4z'/%3E%3C/svg%3E") center / contain no-repeat;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M13.2 2.5a1 1 0 0 1 .8.98v5.77h5.08a1 1 0 0 1 .82 1.58l-8.4 11.93a1 1 0 0 1-1.8-.58v-5.77H4.82a1 1 0 0 1-.82-1.58l8.4-11.93a1 1 0 0 1 .8-.4z'/%3E%3C/svg%3E") center / contain no-repeat;
  pointer-events: none;
}
.aidc-generation-cta:not(.interior-submit) > svg:first-child {
  display: none !important; /* legacy sparkle: don't render two icons */
}
.aidc-generation-cta:not(.interior-submit).fh-generate-btn {
  display: inline-flex;
}

/* The same semantic owner must also override legacy view-sheet gradients in
 * light mode, including the route's gray disabled labels. */
html[data-aidc-color-mode="light"] body .aidc-generation-cta,
html[data-aidc-color-mode="light"] body #interior-submit.aidc-generation-cta {
  background: var(--aidc-btn-primary-bg) !important;
  border-color: var(--aidc-btn-primary-border) !important;
  color: var(--aidc-btn-primary-text) !important;
  -webkit-text-fill-color: var(--aidc-btn-primary-text) !important;
}
html[data-aidc-color-mode="light"] body .aidc-generation-cta:disabled,
html[data-aidc-color-mode="light"] body .aidc-generation-cta[aria-disabled="true"],
html[data-aidc-color-mode="light"] body #interior-submit.aidc-generation-cta:disabled {
  background: var(--aidc-btn-secondary-bg) !important;
  border-color: var(--aidc-btn-secondary-border) !important;
  color: var(--aidc-text-primary) !important;
  -webkit-text-fill-color: var(--aidc-text-primary) !important;
  box-shadow: none !important;
  opacity: 1 !important;
}
html[data-aidc-color-mode="light"] body .aidc-generation-cta :is(span,small,strong),
html[data-aidc-color-mode="light"] body #interior-submit.aidc-generation-cta :is(span,small,strong) {
  color: inherit !important;
  -webkit-text-fill-color: currentColor !important;
}
html[data-aidc-color-mode="light"] body .aidc-generation-cta .interior-submit-token-icon,
html[data-aidc-color-mode="light"] body #interior-submit.aidc-generation-cta .interior-submit-token-icon {
  background: currentColor !important;
}

/* This higher-specificity dark contract wins over route-owned gray disabled
 * backgrounds. Disabled stays visibly pink, but is still genuinely disabled,
 * non-hoverable and clearly less prominent than the active submit. */
html:not([data-aidc-color-mode="light"]) body .aidc-generation-cta,
html:not([data-aidc-color-mode="light"]) body #interior-submit.aidc-generation-cta,
html:not([data-aidc-color-mode="light"]) body .ms-shell .ms-cta {
  background: var(--aidc-btn-primary-bg) !important;
  border: 1px solid var(--aidc-btn-primary-border) !important;
  color: var(--aidc-btn-primary-text) !important;
  -webkit-text-fill-color: var(--aidc-btn-primary-text) !important;
  opacity: 1 !important;
  text-shadow: none !important;
  filter: none !important;
}
html:not([data-aidc-color-mode="light"]) body .aidc-generation-cta :is(span,small,strong),
html:not([data-aidc-color-mode="light"]) body #interior-submit.aidc-generation-cta :is(span,small,strong),
html:not([data-aidc-color-mode="light"]) body .ms-shell .ms-cta :is(span,small,strong) {
  color: var(--aidc-btn-primary-text) !important;
  -webkit-text-fill-color: var(--aidc-btn-primary-text) !important;
}
html:not([data-aidc-color-mode="light"]) body .aidc-generation-cta .interior-submit-token-icon,
html:not([data-aidc-color-mode="light"]) body #interior-submit.aidc-generation-cta .interior-submit-token-icon,
html:not([data-aidc-color-mode="light"]) body .ms-shell .ms-cta-icon {
  background: var(--aidc-btn-primary-text) !important;
}
html:not([data-aidc-color-mode="light"]) body .aidc-generation-cta:disabled,
html:not([data-aidc-color-mode="light"]) body #interior-submit.aidc-generation-cta:disabled,
html:not([data-aidc-color-mode="light"]) body .aidc-generation-cta[aria-disabled="true"],
html:not([data-aidc-color-mode="light"]) body .ms-shell .ms-cta:disabled {
  background: var(--aidc-btn-primary-bg) !important;
  border-color: var(--aidc-btn-primary-border) !important;
  color: var(--aidc-btn-primary-text) !important;
  -webkit-text-fill-color: var(--aidc-btn-primary-text) !important;
  opacity: .7 !important;
  filter: saturate(.78) !important;
  box-shadow: none !important;
  cursor: not-allowed !important;
  transform: none !important;
}
html:not([data-aidc-color-mode="light"]) body .aidc-generation-cta:hover:not(:disabled),
html:not([data-aidc-color-mode="light"]) body #interior-submit.aidc-generation-cta:hover:not(:disabled),
html:not([data-aidc-color-mode="light"]) body .ms-shell .ms-cta:hover:not(:disabled) {
  background: var(--aidc-btn-primary-bg-hover) !important;
  color: var(--aidc-btn-primary-text) !important;
  -webkit-text-fill-color: var(--aidc-btn-primary-text) !important;
}
.aidc-generation-cta.fh-generate-btn--loading::before {
  animation: aidc-generation-cta-pulse 1.15s ease-in-out infinite;
}
@keyframes aidc-generation-cta-pulse {
  50% { opacity: .45; }
}
@media (prefers-reduced-motion: reduce) {
  .aidc-generation-cta.fh-generate-btn--loading::before { animation: none; }
}


/* Canonical button geometry. Size is a tokenized contract, not route-owned. */
.aidc-btn{appearance:none;border:1px solid transparent;border-radius:var(--aidc-radius-button);height:var(--aidc-control-height-md);min-height:var(--aidc-control-height-md);padding:0 14px;display:inline-flex;align-items:center;justify-content:center;gap:var(--aidc-control-gap);box-sizing:border-box;font:inherit;font-size:var(--aidc-font-size-control,13px);font-weight:600;line-height:1.2;cursor:pointer;user-select:none;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,color .15s ease,filter .15s ease,opacity .15s ease}
.aidc-btn--sm{height:var(--aidc-control-height-sm);min-height:var(--aidc-control-height-sm);padding-inline:12px}
.aidc-btn--md{height:var(--aidc-control-height-md);min-height:var(--aidc-control-height-md)}
.aidc-btn--lg{height:var(--aidc-control-height-lg);min-height:var(--aidc-control-height-lg);padding-inline:18px}
.aidc-btn:disabled,.aidc-btn[aria-disabled="true"]{cursor:not-allowed;opacity:1;background:var(--aidc-btn-disabled-bg)!important;border-color:var(--aidc-btn-disabled-border)!important;color:var(--aidc-btn-disabled-text)!important;box-shadow:none!important;filter:none!important}
.aidc-btn--primary{background:var(--aidc-btn-primary-bg);border-color:var(--aidc-btn-primary-border);color:var(--aidc-btn-primary-text);box-shadow:var(--aidc-btn-primary-shadow)}
.aidc-btn--secondary{background:var(--aidc-btn-secondary-bg);border-color:var(--aidc-btn-secondary-border);color:var(--aidc-text-primary)}
.aidc-btn--secondary:hover:not(:disabled){background:var(--aidc-btn-secondary-bg-hover)}
.aidc-btn--ghost{background:transparent;border-color:transparent;color:var(--aidc-text-secondary)}
.aidc-btn--ghost:hover:not(:disabled){background:var(--aidc-btn-secondary-bg);color:var(--aidc-text-primary)}
.aidc-btn--danger{background:linear-gradient(135deg,var(--aidc-action-danger-from),var(--aidc-action-danger-to));border-color:var(--aidc-action-danger-border);color:var(--aidc-text-inverse);box-shadow:0 0 18px var(--aidc-action-danger-glow)}
.aidc-btn--success{background:var(--aidc-status-success);border-color:color-mix(in srgb,var(--aidc-status-success) 72%,white 28%);color:var(--aidc-text-inverse)}
.aidc-btn--icon{width:var(--aidc-icon-control-size-md);min-width:var(--aidc-icon-control-size-md);padding:0}
.aidc-btn--icon.aidc-btn--sm{width:var(--aidc-icon-control-size-sm);min-width:var(--aidc-icon-control-size-sm)}
.aidc-btn--icon.aidc-btn--lg{width:var(--aidc-icon-control-size-lg);min-width:var(--aidc-icon-control-size-lg)}
.aidc-btn--primary:hover:not(:disabled){background:var(--aidc-btn-primary-bg-hover);border-color:var(--aidc-btn-primary-border-hover);color:var(--aidc-btn-primary-text)}
.aidc-btn--danger:hover:not(:disabled),.aidc-btn--success:hover:not(:disabled){filter:brightness(1.08)}
.aidc-btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--aidc-action-focus-ring)}

html[data-aidc-color-mode="light"] .aidc-btn--primary{filter:none}
html[data-aidc-color-mode="light"] .aidc-btn--primary:hover:not(:disabled){filter:none}
html[data-aidc-color-mode="light"] .aidc-btn--success{background:var(--aidc-status-success-bg);border-color:var(--aidc-status-success-border);color:var(--aidc-status-success);box-shadow:none}
html[data-aidc-color-mode="light"] .aidc-btn--danger{background:var(--aidc-status-danger-bg);border-color:var(--aidc-action-danger-border);color:var(--aidc-red-500);box-shadow:none}

/* Legacy route actions. The application predates .aidc-btn and still has many
   `.btn-primary` / `.button.primary` / `.pill-btn.primary` entrypoints. In the
   light theme they must resolve to the same quiet primary treatment rather than
   reintroducing large solid-fuchsia islands. */
html[data-aidc-color-mode="light"] body:not([data-page="home"]) :where(
  .btn-primary,
  .btn-primary-lg,
  .button.primary,
  .pill-btn.primary,
  button.primary,
  .primary-action
):not(.is-danger):not(.danger):not([data-danger]){
  background:var(--aidc-btn-primary-bg)!important;
  border:1px solid var(--aidc-btn-primary-border)!important;
  color:var(--aidc-btn-primary-text)!important;
  box-shadow:var(--aidc-btn-primary-shadow)!important;
  text-shadow:none!important;
  filter:none!important
}
html[data-aidc-color-mode="light"] body:not([data-page="home"]) :where(
  .btn-primary,
  .btn-primary-lg,
  .button.primary,
  .pill-btn.primary,
  button.primary,
  .primary-action
):not(.is-danger):not(.danger):not([data-danger]):hover:not(:disabled){
  background:var(--aidc-btn-primary-bg-hover)!important;
  border-color:var(--aidc-btn-primary-border-hover)!important;
  color:var(--aidc-btn-primary-text)!important;
  box-shadow:none!important;
  filter:none!important
}
html[data-aidc-color-mode="light"] body:not([data-page="home"]) :where(.btn-primary,.btn-primary-lg,.button.primary,.pill-btn.primary,button.primary,.primary-action):disabled{
  background:var(--aidc-btn-disabled-bg)!important;
  border-color:var(--aidc-btn-disabled-border)!important;
  color:var(--aidc-btn-disabled-text)!important;
  opacity:1!important
}


/* Canonical light-primary enforcement.
   Legacy route adapters may still paint primary buttons from brand action
   gradients. In light mode, button surfaces must resolve through the quiet
   pale-pink primary tokens instead of rendering solid fuchsia. */
html[data-aidc-color-mode="light"][data-aidc-color-mode="light"] body :is(
  .aidc-btn--primary,
  .btn-primary,
  .btn-primary-lg,
  .button.primary,
  .pill-btn.primary,
  button.primary,
  .primary-action,
  [class$="__btn--primary"],
  [class$="-btn--primary"],
  [class$="__button--primary"],
  [class$="-button--primary"],
  .catalog-picker-choose,
  .interior-primary-button,
  .ms-cta,
  .chat-send-btn,
  .chat-settings-modal__save,
  .aidc-dialog__btn--ok,
  .aidc-cdlg__ok,
  .aidc-rp-btn-primary,
  .aidc-rp-confirm,
  .tok-topup__btn,
  .plan-gate__cta,
  .tree-edit-btn,
  .pe-layer-decomp__submit,
  .invite-join-btn,
  .aidc-update-toast__btn--update,
  .connectors-button--primary
):not(.is-danger):not(.danger):not([data-danger]){
  background:var(--aidc-btn-primary-bg)!important;
  border-color:var(--aidc-btn-primary-border)!important;
  color:var(--aidc-btn-primary-text)!important;
  -webkit-text-fill-color:var(--aidc-btn-primary-text)!important;
  box-shadow:var(--aidc-btn-primary-shadow)!important;
  text-shadow:none!important;
  filter:none!important
}

html[data-aidc-color-mode="light"][data-aidc-color-mode="light"] body :is(
  .aidc-btn--primary,
  .btn-primary,
  .btn-primary-lg,
  .button.primary,
  .pill-btn.primary,
  button.primary,
  .primary-action,
  [class$="__btn--primary"],
  [class$="-btn--primary"],
  [class$="__button--primary"],
  [class$="-button--primary"],
  .catalog-picker-choose,
  .interior-primary-button,
  .ms-cta,
  .chat-send-btn,
  .chat-settings-modal__save,
  .aidc-dialog__btn--ok,
  .aidc-cdlg__ok,
  .aidc-rp-btn-primary,
  .aidc-rp-confirm,
  .tok-topup__btn,
  .plan-gate__cta,
  .tree-edit-btn,
  .pe-layer-decomp__submit,
  .invite-join-btn,
  .aidc-update-toast__btn--update,
  .connectors-button--primary
):not(.is-danger):not(.danger):not([data-danger]):hover:not(:disabled){
  background:var(--aidc-btn-primary-bg-hover)!important;
  border-color:var(--aidc-btn-primary-border-hover)!important;
  color:var(--aidc-btn-primary-text)!important;
  -webkit-text-fill-color:var(--aidc-btn-primary-text)!important;
  box-shadow:none!important;
  filter:none!important
}

html[data-aidc-color-mode="light"][data-aidc-color-mode="light"] body.admin-statistics-page :is(.toolbar button,.btn):not(.secondary):not(.danger),
html[data-aidc-color-mode="light"][data-aidc-color-mode="light"] body.admin-event-campaigns-page button:not(.secondary):not(.danger),
html[data-aidc-color-mode="light"][data-aidc-color-mode="light"] body.admin-subscriptions-page button:not(.secondary):not(.danger),
html[data-aidc-color-mode="light"][data-aidc-color-mode="light"] body.admin-b2b-billing-page button.primary{
  background:var(--aidc-btn-primary-bg)!important;
  border-color:var(--aidc-btn-primary-border)!important;
  color:var(--aidc-btn-primary-text)!important;
  -webkit-text-fill-color:var(--aidc-btn-primary-text)!important;
  box-shadow:none!important;
  text-shadow:none!important;
  filter:none!important
}



/* Shared dropdown/menu primitives. Geometry and semantic states are global. */

.aidc-dropdown,
.aidc-menu {
  min-width: 180px;
  padding: 6px;
  background: var(--aidc-bg-popover);
  color: var(--aidc-text-primary);
  border: 1px solid var(--aidc-border-default);
  border-radius: var(--aidc-radius-button);
  box-shadow: var(--aidc-shadow-popover);
}

.aidc-menu__item {
  width: 100%;
  min-height: var(--aidc-menu-row-height);
  display: flex;
  align-items: center;
  gap: var(--aidc-control-gap);
  padding: 0 var(--aidc-control-padding-x);
  box-sizing: border-box;
  border: 1px solid transparent;
  border-radius: var(--aidc-radius-control);
  background: transparent;
  color: var(--aidc-text-secondary);
  font: inherit;
  font-size: var(--aidc-font-size-control);
  text-align: left;
  cursor: pointer;
  transition: background .15s ease,color .15s ease,border-color .15s ease;
}

.aidc-menu__item:hover,
.aidc-menu__item:focus-visible {
  background: var(--aidc-btn-secondary-bg-hover);
  color: var(--aidc-text-primary);
  border-color: var(--aidc-border-subtle);
  outline: none;
}

.aidc-menu__item.is-active,
.aidc-menu__item[aria-selected="true"] {
  background: var(--aidc-control-selected-bg);
  border-color: var(--aidc-control-selected-border);
  color: var(--aidc-control-selected-text);
}

.aidc-menu__item:disabled,
.aidc-menu__item[aria-disabled="true"] {
  cursor: not-allowed;
  background: var(--aidc-control-disabled-bg);
  border-color: var(--aidc-control-disabled-border);
  color: var(--aidc-text-disabled);
  opacity: 1;
}

.aidc-menu__item--danger { color: var(--aidc-red-500); }

.aidc-menu__item--danger:hover,
.aidc-menu__item--danger:focus-visible {
  background: var(--aidc-status-danger-bg);
  border-color: var(--aidc-action-danger-border);
  color: var(--aidc-red-500);
}

.aidc-menu__separator { height:1px;margin:5px 4px;background:var(--aidc-border-subtle); }
.aidc-menu__label { padding:6px 10px 4px;color:var(--aidc-text-muted);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase; }

/* Canonical portal-enhanced select contract.
   dropdown-portal.js owns positioning only; this file owns all visual states.
*/
.aidc-select { position:relative;display:inline-flex;min-width:0;max-width:100%; }
.aidc-select[hidden] { display:none; }

.aidc-select__native {
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  margin:-1px!important;
  padding:0!important;
  overflow:hidden!important;
  clip:rect(0 0 0 0)!important;
  white-space:nowrap!important;
  border:0!important;
}

.aidc-select__btn {
  width:100%;
  height:var(--aidc-control-height-md);
  min-height:var(--aidc-control-height-md);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--aidc-control-gap);
  padding:0 var(--aidc-control-padding-x);
  box-sizing:border-box;
  border:1px solid var(--aidc-border-default);
  border-radius:var(--aidc-radius-control);
  background:var(--aidc-bg-elevated);
  color:var(--aidc-text-primary);
  box-shadow:none;
  font:inherit;
  font-size:var(--aidc-font-size-control);
  text-align:left;
  cursor:pointer;
  transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,color .15s ease;
}

.aidc-select--sm .aidc-select__btn{height:var(--aidc-control-height-sm);min-height:var(--aidc-control-height-sm)}
.aidc-select--lg .aidc-select__btn{height:var(--aidc-control-height-lg);min-height:var(--aidc-control-height-lg)}

.aidc-select__btn::after {
  content:"" !important;
  width:7px;
  height:7px;
  flex:0 0 7px;
  border-right:1.5px solid var(--aidc-text-muted);
  border-bottom:1.5px solid var(--aidc-text-muted);
  transform:rotate(45deg) translateY(-2px);
  transition:transform .15s ease;
}

.aidc-select__btn:hover {
  background:var(--aidc-workspace-control-hover);
  border-color:var(--aidc-border-strong);
}

.aidc-select__btn:focus-visible,
.aidc-select__btn[aria-expanded="true"] {
  outline:none;
  border-color:var(--aidc-action-focus);
  box-shadow:0 0 0 3px var(--aidc-action-focus-ring);
}

.aidc-select__btn[aria-expanded="true"]::after { transform:rotate(225deg) translate(-1px,-1px); }

.aidc-select__btn:disabled,
.aidc-select__btn[aria-disabled="true"]{
  cursor:not-allowed;
  background:var(--aidc-control-disabled-bg);
  border-color:var(--aidc-control-disabled-border);
  color:var(--aidc-text-disabled);
  opacity:1;
}
.aidc-select__btn:disabled::after,
.aidc-select__btn[aria-disabled="true"]::after{border-color:var(--aidc-text-disabled)}

.aidc-select__menu {
  display:none;
  position:fixed;
  min-width:180px;
  max-width:min(360px,calc(100vw - 16px));
  max-height:min(360px,calc(100dvh - 16px));
  overflow-y:auto;
  overflow-x:hidden;
  padding:6px;
  border:1px solid var(--aidc-border-default);
  border-radius:var(--aidc-radius-button);
  background:var(--aidc-bg-popover)!important;
  color:var(--aidc-text-primary);
  box-shadow:var(--aidc-shadow-popover);
  z-index:1000002;
  scrollbar-color:var(--aidc-scrollbar-thumb) transparent;
}

.aidc-select__option {
  width:100%;
  min-height:var(--aidc-menu-row-height);
  display:flex;
  align-items:center;
  gap:var(--aidc-control-gap);
  box-sizing:border-box;
  padding:0 var(--aidc-control-padding-x);
  border:1px solid transparent;
  border-radius:var(--aidc-radius-control);
  background:transparent;
  color:var(--aidc-text-secondary);
  font-size:var(--aidc-font-size-control);
  white-space:normal;
  overflow-wrap:anywhere;
  cursor:pointer;
  transition:background .15s ease,border-color .15s ease,color .15s ease;
}

.aidc-select__option:hover,
.aidc-select__option:focus-visible {
  outline:none;
  background:var(--aidc-btn-secondary-bg-hover);
  border-color:var(--aidc-border-subtle);
  color:var(--aidc-text-primary);
}

.aidc-select__option.is-selected,
.aidc-select__option[aria-selected="true"] {
  background:var(--aidc-control-selected-bg);
  border-color:var(--aidc-control-selected-border);
  color:var(--aidc-control-selected-text);
}

.aidc-select__option[aria-disabled="true"]{
  cursor:not-allowed;
  color:var(--aidc-text-disabled);
  background:var(--aidc-control-disabled-bg);
  opacity:1;
}

.aidc-select__group-label {
  display:flex;
  align-items:center;
  gap:6px;
  padding:8px 10px 5px;
  color:var(--aidc-text-muted);
  font-size:11px;
  font-weight:600;
  letter-spacing:.06em;
  text-transform:uppercase;
  cursor:pointer;
}

.aidc-select__group-arrow { color:var(--aidc-text-muted);font-size:10px; }
.aidc-select__group-items.is-collapsed { display:none; }
.aidc-select__option--grouped { padding-left:18px; }
.aidc-select__option-icon { width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 18px;color:currentColor; }
.aidc-select__option-icon svg { width:18px;height:18px;display:block; }

.aidc-select__menu::-webkit-scrollbar { width:var(--aidc-scrollbar-size); }
.aidc-select__menu::-webkit-scrollbar-thumb { background:var(--aidc-scrollbar-thumb);border-radius:999px; }


/* Late Project Tree controls and states. */

#projectsTreeRoot .tree-toolbar-search-row .tree-search{
  background:var(--aidc-bg-elevated);
  border-color:var(--aidc-border-default);
  color:var(--aidc-text-primary)
}

#projectsTreeRoot .tree-toolbar-search-row .tree-search::placeholder{
  color:var(--aidc-text-muted)
}

#projectsTreeRoot .tree-toolbar-search-row .tree-search:focus{
  background:var(--aidc-bg-elevated);
  border-color:var(--aidc-action-focus);
  box-shadow:0 0 0 3px var(--aidc-action-focus-ring)
}

#projectsTreeRoot .tree-collapse-btn,
#projectsTreeRoot .tree-action-btn{
  background:var(--aidc-btn-secondary-bg);
  border-color:var(--aidc-border-default);
  color:var(--aidc-text-secondary);
  box-shadow:none
}

#projectsTreeRoot .tree-footer__trash-btn{
  background:transparent;
  border-color:transparent;
  color:var(--aidc-text-muted);
  box-shadow:none
}

#projectsTreeRoot .tree-collapse-btn:hover,
#projectsTreeRoot .tree-action-btn:hover,
#projectsTreeRoot .tree-footer__trash-btn:hover{
  background:var(--aidc-btn-secondary-bg-hover);
  border-color:var(--aidc-border-strong);
  color:var(--aidc-text-primary);
  box-shadow:none
}

#projectsTreeRoot .tree-drop-target{
  border-color:color-mix(in srgb,var(--aidc-cyan-500) 62%,transparent)!important;
  background:color-mix(in srgb,var(--aidc-cyan-500) 10%,transparent)!important;
  box-shadow:0 0 0 2px color-mix(in srgb,var(--aidc-cyan-500) 28%,transparent)
}

#projectsTreeRoot .tree-cta-new-project{
  background:var(--aidc-btn-primary-bg);
  border:1px solid var(--aidc-btn-primary-border);
  color:var(--aidc-btn-primary-text);
  box-shadow:var(--aidc-btn-primary-shadow)
}

#projectsTreeRoot .tree-cta-new-project:hover{
  background:var(--aidc-btn-primary-bg-hover);
  border-color:var(--aidc-btn-primary-border-hover);
  filter:none;
  opacity:1
}

#projectsTreeRoot .tree-action-btn--danger:hover{
  background:var(--aidc-status-danger-bg);
  color:var(--aidc-red-500);
  border-color:var(--aidc-action-danger-border)
}

#projectsTreeRoot .tree-footer{
  border-top-color:var(--aidc-border-subtle)
}

#projectsTreeRoot .tree-resize-handle:hover,
#projectsTreeRoot .tree-resize-handle.is-active{
  background:color-mix(in srgb,var(--aidc-action-primary-from) 34%,transparent)
}

/* Project/folder dialogs are one platform dialog consumer. Legacy JS still
   injects geometry so it can run standalone; all visual state is overridden
   here through canonical dialog/control tokens for both light and dark modes. */
.tree-modal-overlay{
  background:var(--aidc-backdrop)!important
}

.tree-modal{
  background:var(--aidc-dialog-bg)!important;
  border-color:var(--aidc-dialog-border)!important;
  color:var(--aidc-dialog-text)!important;
  box-shadow:var(--aidc-shadow-modal)!important
}

.tree-modal__title,
.tree-modal__field>span,
.tree-modal__label{
  color:var(--aidc-text-primary)!important;
  opacity:1!important
}

.tree-modal__hint,
.tree-modal__empty,
.tree-modal__sub,
.tree-modal small{
  color:var(--aidc-text-muted)!important;
  opacity:1!important
}

.tree-modal :where(input,textarea,.tree-modal__search,.tree-modal__select){
  min-height:var(--aidc-control-height-md)!important;
  box-sizing:border-box!important;
  background:var(--aidc-bg-elevated)!important;
  border:1px solid var(--aidc-dialog-input-border)!important;
  color:var(--aidc-text-primary)!important;
  box-shadow:none!important;
  text-shadow:none!important
}

.tree-modal :where(input,textarea,.tree-modal__search)::placeholder{
  color:var(--aidc-text-muted)!important;
  opacity:1!important
}

.tree-modal :where(input,textarea,.tree-modal__search,.tree-modal__select):focus,
.tree-modal :where(input,textarea,.tree-modal__search,.tree-modal__select):focus-visible{
  border-color:var(--aidc-action-focus)!important;
  box-shadow:0 0 0 3px var(--aidc-action-focus-ring)!important;
  outline:none!important
}

.tree-modal__select{
  appearance:none!important;
  padding:0 38px 0 12px!important;
  border-radius:var(--aidc-radius-control)!important;
  font-size:var(--aidc-font-size-control)!important;
  font-weight:600!important
}

.tree-modal__select option{
  background:var(--aidc-bg-popover)!important;
  color:var(--aidc-text-primary)!important
}

.tree-modal__select-wrap::after{
  border-color:var(--aidc-text-muted)!important;
  color:var(--aidc-text-muted)!important;
  opacity:1!important
}

.tree-modal__listbtn,
.tree-modal__segmented button{
  min-height:var(--aidc-control-height-md)!important;
  background:var(--aidc-btn-secondary-bg)!important;
  border-color:var(--aidc-btn-secondary-border)!important;
  color:var(--aidc-text-secondary)!important;
  box-shadow:none!important
}

.tree-modal__listbtn:hover,
.tree-modal__segmented button:hover{
  background:var(--aidc-btn-secondary-bg-hover)!important;
  border-color:var(--aidc-border-strong)!important;
  color:var(--aidc-text-primary)!important
}

.tree-modal__listbtn.is-active,
.tree-modal__segmented button.is-active,
.tree-modal__segmented button[aria-pressed="true"]{
  background:var(--aidc-control-selected-bg)!important;
  border-color:var(--aidc-control-selected-border)!important;
  color:var(--aidc-action-primary-to)!important
}

.tree-modal__row .btn{
  width:var(--aidc-icon-control-size-md)!important;
  min-width:var(--aidc-icon-control-size-md)!important;
  height:var(--aidc-icon-control-size-md)!important;
  min-height:var(--aidc-icon-control-size-md)!important;
  padding:0!important;
  border-radius:var(--aidc-radius-control)!important;
  background:var(--aidc-btn-secondary-bg)!important;
  border:1px solid var(--aidc-btn-secondary-border)!important;
  color:var(--aidc-text-secondary)!important;
  box-shadow:none!important
}

.tree-modal__row .btn:hover{
  background:var(--aidc-btn-secondary-bg-hover)!important;
  border-color:var(--aidc-border-strong)!important;
  color:var(--aidc-text-primary)!important
}

.tree-modal :where(.btn-primary,.primary,[data-primary="true"]){
  min-height:var(--aidc-control-height-md)!important;
  background:var(--aidc-btn-primary-bg)!important;
  border:1px solid var(--aidc-btn-primary-border)!important;
  color:var(--aidc-btn-primary-text)!important;
  box-shadow:var(--aidc-btn-primary-shadow)!important;
  filter:none!important
}

.tree-modal :where(.btn-primary,.primary,[data-primary="true"]):hover:not(:disabled){
  background:var(--aidc-btn-primary-bg-hover)!important;
  border-color:var(--aidc-btn-primary-border-hover)!important;
  color:var(--aidc-btn-primary-text)!important;
  box-shadow:none!important
}

.tree-modal :where(button,input,select):disabled,
.tree-modal [aria-disabled="true"]{
  background:var(--aidc-control-disabled-bg)!important;
  border-color:var(--aidc-control-disabled-border)!important;
  color:var(--aidc-text-disabled)!important;
  opacity:1!important
}

.tree-modal--trash .trash-row{
  border-bottom-color:var(--aidc-border-subtle)
}
.tree-modal--trash .trash-icon,
.tree-modal--trash .trash-name{
  color:var(--aidc-text-primary)
}
.tree-modal--trash .trash-sub{
  color:var(--aidc-text-muted)
}



/* Projects page compatibility theme.
   High specificity/important is temporary until the large legacy inline CSS block
   in projects/index.html is physically removed.
   Scope is intentionally route-bound through #projectsList because this adapter is
   imported globally by overlays.css. */

html:has(body #projectsList),
body:has(#projectsList),
body:has(#projectsList) .shell{
  background:var(--aidc-bg-page)!important;
  color:var(--aidc-text-primary)!important
}

body:has(#projectsList) .brand-title,
body:has(#projectsList) .top-right-text,
body:has(#projectsList) .brand-sub{
  color:var(--aidc-text-secondary)!important
}

body:has(#projectsList) .brand-title span.logo{
  background:linear-gradient(135deg,var(--aidc-action-primary-from),var(--aidc-action-primary-to))!important;
  color:var(--aidc-text-inverse)!important;
  box-shadow:0 0 20px var(--aidc-action-primary-glow)!important
}

body:has(#projectsList) .brand-title span.mark{
  color:var(--aidc-brand-wordmark)!important
}

body:has(#projectsList) .lang-switch{
  background:var(--aidc-bg-elevated)!important;
  border-color:var(--aidc-border-default)!important
}

body:has(#projectsList) .lang-btn{
  background:transparent!important;
  color:var(--aidc-text-secondary)!important
}

body:has(#projectsList) .lang-btn:hover,
body:has(#projectsList) .lang-btn:focus-visible{
  background:var(--aidc-btn-secondary-bg-hover)!important;
  color:var(--aidc-text-primary)!important;
  outline:none
}

body:has(#projectsList) .lang-btn--active{
  background:linear-gradient(135deg,var(--aidc-action-primary-from),var(--aidc-action-primary-to))!important;
  color:var(--aidc-text-inverse)!important
}

body:has(#projectsList) .nav-link,
body:has(#projectsList) .btn-outline{
  background:var(--aidc-btn-secondary-bg)!important;
  border-color:var(--aidc-border-default)!important;
  color:var(--aidc-text-secondary)!important;
  box-shadow:none!important
}

body:has(#projectsList) .nav-link:hover,
body:has(#projectsList) .nav-link:focus-visible,
body:has(#projectsList) .btn-outline:hover,
body:has(#projectsList) .btn-outline:focus-visible{
  background:var(--aidc-btn-secondary-bg-hover)!important;
  border-color:var(--aidc-border-strong)!important;
  color:var(--aidc-text-primary)!important;
  outline:none
}

body:has(#projectsList) .nav-link--active{
  background:color-mix(in srgb,var(--aidc-action-primary-from) 12%,transparent)!important;
  border-color:color-mix(in srgb,var(--aidc-action-primary-from) 36%,transparent)!important;
  color:var(--aidc-text-primary)!important;
  box-shadow:none!important
}

body:has(#projectsList) [data-nav="projects"]{
  background:color-mix(in srgb,var(--aidc-action-primary-from) 12%,transparent)!important;
  border-color:color-mix(in srgb,var(--aidc-action-primary-from) 36%,transparent)!important;
  color:var(--aidc-text-primary)!important;
  box-shadow:none!important
}

body:has(#projectsList) .nav-link span.dot{
  background:var(--aidc-action-primary-from)!important
}

body:has(#projectsList) .nav-link--ghost span.dot{
  background:var(--aidc-cyan-500)!important
}

body:has(#projectsList) > .shell .btn-primary,
body:has(#projectsList) > .shell .btn-primary-lg{
  background:linear-gradient(135deg,var(--aidc-action-primary-from),var(--aidc-action-primary-to))!important;
  border-color:transparent!important;
  color:var(--aidc-text-inverse)!important;
  box-shadow:0 0 18px var(--aidc-action-primary-glow)!important
}

body:has(#projectsList) .main > .panel,
body:has(#projectsList) .main .panel-center,
body:has(#projectsList) .main .panel-right{
  background:var(--aidc-bg-panel)!important;
  border-color:var(--aidc-border-subtle)!important;
  box-shadow:var(--aidc-shadow-popover)!important
}

body:has(#projectsList) .main .panel-title{
  color:var(--aidc-text-primary)!important
}

body:has(#projectsList) .main .panel-sub,
body:has(#projectsList) .main .projects-sort-label,
body:has(#projectsList) .main [data-project-row="sort-filters"] > .projects-filters > span{
  color:var(--aidc-text-muted)!important
}

body:has(#projectsList) .main .btn-primary,
body:has(#projectsList) .main .btn-primary-lg,
body:has(#projectsList) .main .pill-btn.primary{
  background:linear-gradient(135deg,var(--aidc-action-primary-from),var(--aidc-action-primary-to))!important;
  border-color:transparent!important;
  color:var(--aidc-text-inverse)!important;
  box-shadow:0 0 18px var(--aidc-action-primary-glow)!important
}

body:has(#projectsList) .main .btn-primary:hover,
body:has(#projectsList) .main .btn-primary-lg:hover,
body:has(#projectsList) .main .pill-btn.primary:hover{
  filter:brightness(1.08)!important;
  box-shadow:0 0 24px var(--aidc-action-primary-glow)!important
}

body:has(#projectsList) .main .filter-pill{
  background:var(--aidc-btn-secondary-bg)!important;
  border-color:var(--aidc-border-default)!important;
  color:var(--aidc-text-secondary)!important
}

body:has(#projectsList) .main .filter-pill:hover{
  background:var(--aidc-btn-secondary-bg-hover)!important;
  border-color:var(--aidc-border-strong)!important;
  color:var(--aidc-text-primary)!important
}

body:has(#projectsList) .main .filter-pill.active{
  background:color-mix(in srgb,var(--aidc-action-primary-from) 12%,transparent)!important;
  border-color:color-mix(in srgb,var(--aidc-action-primary-from) 36%,transparent)!important;
  color:var(--aidc-text-primary)!important;
  box-shadow:none!important
}

body:has(#projectsList) .main #projectsTreeRoot.panel-tree,
body:has(#projectsList) .main #projectsTreeRoot .panel.panel-tree{
  background:var(--aidc-bg-panel)!important
}

body:has(#projectsList) .main .tree-collapse-btn{
  background:var(--aidc-btn-secondary-bg)!important;
  border-color:var(--aidc-border-default)!important;
  color:var(--aidc-text-secondary)!important
}

body:has(#projectsList) .main [data-project-details] .ag-tab.active{
  background:color-mix(in srgb,var(--aidc-action-primary-from) 12%,transparent)!important;
  color:var(--aidc-text-primary)!important;
  box-shadow:inset 0 -2px 0 0 var(--aidc-action-primary-from)!important
}

body:has(#projectsList) .main [data-project-details] .s-card{
  background:var(--aidc-bg-card)!important;
  border-color:var(--aidc-border-subtle)!important
}

body:has(#projectsList) .main .details-title-edit,
body:has(#projectsList) .main .details-desc-edit{
  background:var(--aidc-bg-elevated)!important;
  color:var(--aidc-text-primary)!important;
  border-color:var(--aidc-border-default)!important;
  box-shadow:none!important
}

body:has(#projectsList) .main .details-title-edit:focus,
body:has(#projectsList) .main .details-desc-edit:focus{
  border-color:var(--aidc-action-focus)!important;
  box-shadow:0 0 0 3px var(--aidc-action-focus-ring)!important
}

body:has(#projectsList) .main .date-range-popover,
body:has(#projectsList) .main .calendar-panel{
  background:var(--aidc-bg-popover)!important;
  border-color:var(--aidc-border-default)!important;
  color:var(--aidc-text-primary)!important;
  box-shadow:var(--aidc-shadow-popover)!important
}

body:has(#projectsList) .main .date-range-popover .dr-input label,
body:has(#projectsList) .main .cal-dow{
  color:var(--aidc-text-muted)!important
}

body:has(#projectsList) .main .date-range-popover .dr-text,
body:has(#projectsList) .main .cal-select,
body:has(#projectsList) .main .cal-year{
  background:var(--aidc-bg-elevated)!important;
  border-color:var(--aidc-border-default)!important;
  color:var(--aidc-text-primary)!important
}

body:has(#projectsList) .main .cal-btn-nav{
  background:var(--aidc-btn-secondary-bg)!important;
  border-color:var(--aidc-border-default)!important;
  color:var(--aidc-text-secondary)!important
}

body:has(#projectsList) .main .cal-day{
  background:transparent!important;
  border-color:var(--aidc-border-subtle)!important;
  color:var(--aidc-text-secondary)!important
}

body:has(#projectsList) .main .cal-day:hover{
  background:var(--aidc-btn-secondary-bg-hover)!important;
  border-color:var(--aidc-border-strong)!important;
  color:var(--aidc-text-primary)!important
}

body:has(#projectsList) .main .cal-day.selected{
  background:color-mix(in srgb,var(--aidc-action-primary-from) 14%,transparent)!important;
  border-color:color-mix(in srgb,var(--aidc-action-primary-from) 36%,transparent)!important;
  color:var(--aidc-text-primary)!important
}

body:has(#projectsList) .main .cal-day.today{
  box-shadow:0 0 0 1px color-mix(in srgb,var(--aidc-action-primary-from) 42%,transparent)!important
}

body:has(#projectsList) .main .project-card{
  background:var(--aidc-bg-card)!important;
  border-color:var(--aidc-border-subtle)!important;
  box-shadow:var(--aidc-shadow-popover)!important
}

body:has(#projectsList) .main .project-card.project-favorite{
  border-color:var(--aidc-amber-500)!important;
  box-shadow:0 0 0 1px color-mix(in srgb,var(--aidc-amber-500) 42%,transparent),var(--aidc-shadow-popover)!important
}

body:has(#projectsList) .main .project-fav-star,
body:has(#projectsList) .main .project-fav-star-btn.active{
  color:var(--aidc-amber-500)!important;
  text-shadow:0 0 6px color-mix(in srgb,var(--aidc-amber-500) 60%,transparent)!important
}

body:has(#projectsList) .main .project-meta,
body:has(#projectsList) .main .details-path,
body:has(#projectsList) .main .details-meta,
body:has(#projectsList) .main .activity-list{
  color:var(--aidc-text-muted)!important
}

body:has(#projectsList) .main .project-title,
body:has(#projectsList) .main .details-title{
  color:var(--aidc-text-primary)!important
}

body:has(#projectsList) .main .project-tag-pill{
  background:var(--aidc-btn-secondary-bg)!important;
  border-color:var(--aidc-border-default)!important;
  color:var(--aidc-text-secondary)!important
}

body:has(#projectsList) .main .project-gen-counter span.dot{
  background:var(--aidc-action-primary-from)!important
}

/* Light Projects finalization: the legacy page adapter above intentionally
   preserves expressive dark actions. Light mode must use the same quiet action
   contract as the rest of the application and strengthen secondary metadata. */
html[data-aidc-color-mode="light"] body:has(#projectsList) .lang-btn--active{
  background:var(--aidc-workspace-selection-bg)!important;
  border:1px solid var(--aidc-workspace-selection-border)!important;
  color:var(--aidc-action-primary-to)!important;
  box-shadow:none!important
}

html[data-aidc-color-mode="light"] body:has(#projectsList) :where(
  .btn-primary,.btn-primary-lg,.pill-btn.primary
):not(.btn-danger):not(.danger){
  background:var(--aidc-btn-primary-bg)!important;
  border:1px solid var(--aidc-btn-primary-border)!important;
  color:var(--aidc-btn-primary-text)!important;
  box-shadow:none!important;
  filter:none!important
}

html[data-aidc-color-mode="light"] body:has(#projectsList) :where(
  .btn-primary,.btn-primary-lg,.pill-btn.primary
):not(.btn-danger):not(.danger):hover:not(:disabled),
html[data-aidc-color-mode="light"] body:has(#projectsList) :where(
  .btn-primary,.btn-primary-lg,.pill-btn.primary
):not(.btn-danger):not(.danger):focus-visible{
  background:var(--aidc-btn-primary-bg-hover)!important;
  border-color:var(--aidc-btn-primary-border-hover)!important;
  color:var(--aidc-btn-primary-text)!important;
  box-shadow:none!important;
  filter:none!important;
  outline:none!important
}

html[data-aidc-color-mode="light"] body:has(#projectsList) :where(
  .main .panel-sub,.main .projects-sort-label,
  .main [data-project-row="sort-filters"] > .projects-filters > span,
  .main .project-meta,.main .details-path,.main .details-meta,.main .activity-list,
  .main .date-range-popover .dr-input label,.main .cal-dow
){
  color:var(--aidc-text-secondary)!important;
  opacity:1!important
}


/* Project Tree theme adapter.
   Routes application chrome to the shared design system without changing tree behavior. */

#projectsTreeRoot .tree-toolbar-actions .icon-btn {
  background: var(--aidc-btn-secondary-bg);
  border-color: var(--aidc-border-default);
  color: var(--aidc-text-secondary);
}

#projectsTreeRoot .tree-toolbar-actions .icon-btn:hover {
  background: var(--aidc-btn-secondary-bg-hover);
  color: var(--aidc-text-primary);
  box-shadow: 0 0 0 1px var(--aidc-border-default);
}

#projectsTreeRoot .tree-toolbar-actions .icon-btn.is-active {
  background: var(--aidc-workspace-selection-bg);
  border-color: var(--aidc-workspace-selection-border);
  color: var(--aidc-action-primary-from);
  box-shadow: none;
}

#projectsTreeRoot .panel,
#projectsTreeRoot.panel-tree,
#projectsTreeRoot .panel.panel-tree {
  background: var(--aidc-bg-panel) !important;
  border-color: var(--aidc-border-subtle) !important;
  box-shadow: var(--aidc-shadow-popover) !important;
}

#projectsTreeRoot .panel-title,
#projectsTreeRoot .tree-label-main,
#projectsTreeRoot .tree-node > .tree-label {
  color: var(--aidc-text-secondary) !important;
}

#projectsTreeRoot .tree-node.active .tree-label-main,
#projectsTreeRoot .tree-node.active > .tree-label,
#projectsTreeRoot .tree-node:hover .tree-label-main {
  color: var(--aidc-text-primary) !important;
}

#projectsTreeRoot .panel-sub,
#projectsTreeRoot .tree-label-sub,
#projectsTreeRoot .tree-description,
#projectsTreeRoot .tree-path,
#projectsTreeRoot small {
  color: var(--aidc-text-muted) !important;
}

#projectsTreeRoot .tree-node {
  color: var(--aidc-text-secondary);
}

#projectsTreeRoot .tree-node:hover {
  border-color: var(--aidc-border-strong);
  background: var(--aidc-btn-secondary-bg-hover);
}

#projectsTreeRoot .tree-node.active {
  border-color: var(--aidc-workspace-selection-border);
  background: var(--aidc-workspace-selection-bg);
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--aidc-action-primary-from) 32%, transparent);
}

#projectsTreeRoot .tree-node.favorite:not(.active) {
  border-color: transparent;
  background: transparent;
  box-shadow: none;
}

/* Legacy SVG/PNG tree icons were authored for the dark rail. Keep those filters
   in dark mode but never invert them to white on a light surface. */
#projectsTreeRoot .tree-icon img {
  filter: brightness(0) invert(1);
  opacity: .84;
}

html[data-aidc-color-mode="light"] #projectsTreeRoot .tree-icon img {
  filter: none !important;
  opacity: .78 !important;
}

#projectsTreeRoot .tree-icon--workspace img {
  filter: invert(46%) sepia(96%) saturate(2000%) hue-rotate(295deg) brightness(100%) contrast(102%);
  opacity: 1;
}

html[data-aidc-color-mode="light"] #projectsTreeRoot .tree-icon--workspace img {
  filter: invert(31%) sepia(89%) saturate(2186%) hue-rotate(300deg) brightness(88%) contrast(99%) !important;
  opacity: 1 !important;
}

#projectsTreeRoot .tree-node--subfolder > .tree-label .tree-icon img {
  filter: brightness(0) saturate(100%) invert(65%) sepia(60%) saturate(400%) hue-rotate(175deg) brightness(105%);
}

html[data-aidc-color-mode="light"] #projectsTreeRoot .tree-node--subfolder > .tree-label .tree-icon img {
  filter: none !important;
  opacity: .72 !important;
}

#projectsTreeRoot .tree-icon svg {
  stroke: var(--aidc-cyan-500);
  color: var(--aidc-cyan-500);
}

#projectsTreeRoot .tree-node.active.favorite {
  border-color: var(--aidc-amber-500);
  background: color-mix(in srgb, var(--aidc-amber-500) 12%, var(--aidc-bg-panel));
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--aidc-amber-500) 38%, transparent);
}

.project-fav-star-btn {
  color: var(--aidc-text-muted);
}

.project-fav-star-btn.active {
  color: var(--aidc-amber-500);
  text-shadow: none;
}

.project-fav-star-btn img {
  filter: invert(63%) sepia(7%) saturate(426%) hue-rotate(200deg) brightness(95%) contrast(90%);
}

.project-fav-star-btn.active img {
  filter: invert(61%) sepia(91%) saturate(400%) hue-rotate(355deg) brightness(86%) contrast(97%);
}




/* Project Timeline visual adapter, including semantic media type labels. */

[data-project-timeline]{
  --bg:var(--aidc-bg-panel);
  --panel:var(--aidc-bg-card);
  --border:var(--aidc-border-subtle);
  --text:var(--aidc-text-primary);
  --muted:var(--aidc-text-muted);
  --pink:var(--aidc-pink-500);
  --cyan:var(--aidc-cyan-500);
  --violet:var(--aidc-violet-500);
  --shadow:var(--aidc-shadow-popover)
}

[data-project-timeline].panel{
  background:var(--aidc-bg-panel)!important;
  border-color:var(--aidc-border-subtle)!important;
  box-shadow:var(--aidc-shadow-popover)!important
}

[data-project-timeline] .panel-title,
[data-project-timeline] .timeline-project{
  color:var(--aidc-text-primary)!important
}

[data-project-timeline] .timeline-project-tag,
[data-project-timeline] .timeline-sub,
[data-project-timeline] .timeline-empty,
[data-project-timeline] .refs-label{
  color:var(--aidc-text-muted)!important
}

[data-project-timeline] .timeline-empty{
  background:var(--aidc-bg-card)!important;
  border-color:var(--aidc-border-default)!important
}

[data-project-timeline] .chip,
[data-project-timeline] .chip.filter,
[data-project-timeline] .pill-btn,
[data-project-timeline] .tl-trash-nav-btn{
  background:var(--aidc-btn-secondary-bg)!important;
  border-color:var(--aidc-border-default)!important;
  color:var(--aidc-text-secondary)!important
}

[data-project-timeline] .chip:hover,
[data-project-timeline] .chip.filter:hover,
[data-project-timeline] .pill-btn:hover,
[data-project-timeline] .tl-trash-nav-btn:hover{
  background:var(--aidc-btn-secondary-bg-hover)!important;
  border-color:var(--aidc-border-strong)!important;
  color:var(--aidc-text-primary)!important
}

[data-project-timeline] .chip.filter.active{
  background:var(--aidc-workspace-selection-bg)!important;
  border-color:var(--aidc-workspace-selection-border)!important;
  color:var(--aidc-action-primary-from)!important
}

[data-project-timeline] .timeline-filter__menu{
  background:var(--aidc-bg-popover)!important;
  border-color:var(--aidc-border-default)!important;
  color:var(--aidc-text-secondary)!important;
  box-shadow:var(--aidc-shadow-popover)!important
}

[data-project-timeline] .timeline-error-block{
  background:var(--aidc-status-danger-bg)!important;
  border-color:var(--aidc-action-danger-border)!important;
  color:var(--aidc-red-500)!important
}

[data-project-timeline] .timeline-error-title,
[data-project-timeline] .timeline-error-text{
  color:var(--aidc-red-500)!important
}

[data-project-timeline] .timeline-no-assets-block{
  background:var(--aidc-status-warning-bg)!important;
  border-color:var(--aidc-status-warning-border)!important;
  color:var(--aidc-status-warning-text)!important;
  box-shadow:var(--aidc-shadow-popover)!important
}

[data-project-timeline] .timeline-no-assets-block b,
[data-project-timeline] .timeline-no-assets-block span{
  color:var(--aidc-status-warning-text)!important
}

[data-project-timeline] .timeline-no-assets-block button.timeline-no-assets-btn{
  background:var(--aidc-btn-secondary-bg)!important;
  border-color:var(--aidc-status-warning-border)!important;
  color:var(--aidc-status-warning-text)!important
}

[data-project-timeline] .timeline-no-assets-block button.timeline-no-assets-btn:hover{
  background:var(--aidc-status-warning-bg)!important;
  border-color:var(--aidc-status-warning)!important;
  color:var(--aidc-text-primary)!important
}

[data-project-timeline] .timeline-placeholder-body,
[data-project-timeline] .prompt-bubble,
[data-project-timeline] .card-tag{
  background:var(--aidc-bg-card)!important;
  border-color:var(--aidc-border-default)!important;
  color:var(--aidc-text-secondary)!important
}

[data-project-timeline] .prompt-bubble,
[data-project-timeline] .prompt-bubble p,
[data-project-timeline] .prompt-bubble span,
[data-project-timeline] .timeline-card-text,
[data-project-timeline] .timeline-card-text p{
  color:var(--aidc-timeline-prompt-text)!important
}

/* Prompt text is an explicit selectable surface. This protects native text
   selection from inherited drag/interaction rules on timeline cards. */
[data-project-timeline] .prompt-bubble,
[data-project-timeline] .prompt-bubble :where(span,p){
  -webkit-user-select:text!important;
  user-select:text!important;
}

/* Prompt text selection uses the platform pink and keeps readable contrast in
   both color modes by mixing against the current card surface token. */
[data-project-timeline] .prompt-bubble::selection,
[data-project-timeline] .prompt-bubble *::selection{
  background:color-mix(in srgb,var(--aidc-pink-500) 72%,var(--aidc-bg-card))!important;
  color:var(--aidc-text-primary)!important
}

html[data-aidc-color-mode="light"] [data-project-timeline] .prompt-bubble::selection,
html[data-aidc-color-mode="light"] [data-project-timeline] .prompt-bubble *::selection{
  background:color-mix(in srgb,var(--aidc-pink-500) 58%,var(--aidc-bg-card))!important;
  color:var(--aidc-text-primary)!important
}

[data-project-timeline] .timeline-placeholder-title{
  color:var(--aidc-text-primary)!important
}

[data-project-timeline] .timeline-placeholder-text{
  color:var(--aidc-text-secondary)!important
}

[data-project-timeline] .timeline-placeholder-note{
  color:var(--aidc-text-muted)!important
}

[data-project-timeline] .tl-card-icon{
  color:var(--aidc-text-secondary)!important;
  background:transparent!important
}

[data-project-timeline] .tl-card-icon:hover{
  color:var(--aidc-text-primary)!important;
  background:var(--aidc-btn-secondary-bg-hover)!important
}

[data-project-timeline] .tl-card-copy-prompt.is-copied{
  color:var(--aidc-green-500)!important
}

[data-project-timeline] .tl-card-repeat.is-copied{
  color:var(--aidc-cyan-500)!important
}

[data-project-timeline] .tl-card-trash:hover,
[data-project-timeline] .tl-trash-nav-btn:hover,
[data-project-timeline] .tl-trash-nav-btn.active{
  color:var(--aidc-red-500)!important;
  background:var(--aidc-status-danger-bg)!important;
  border-color:var(--aidc-action-danger-border)!important
}

[data-project-timeline] .pill-btn.primary{
  background:linear-gradient(135deg,var(--aidc-action-primary-from),var(--aidc-action-primary-to))!important;
  color:var(--aidc-text-inverse)!important;
  border-color:transparent!important
}

[data-project-timeline] .show-all-btn{
  background:color-mix(in srgb,var(--aidc-cyan-500) 9%,transparent)!important;
  border-color:color-mix(in srgb,var(--aidc-cyan-500) 34%,transparent)!important;
  color:var(--aidc-cyan-500)!important
}

[data-project-timeline] .show-all-btn:hover{
  background:color-mix(in srgb,var(--aidc-cyan-500) 16%,transparent)!important;
  border-color:color-mix(in srgb,var(--aidc-cyan-500) 48%,transparent)!important
}

.aidc-gal__backdrop{
  background:var(--aidc-backdrop)!important
}

.aidc-gal__modal,
.aidc-gal__toolbar{
  background:var(--aidc-bg-modal)!important;
  border-color:var(--aidc-border-default)!important;
  color:var(--aidc-text-primary)!important;
  box-shadow:var(--aidc-shadow-modal)!important
}

.lightbox-caption{
  color:var(--aidc-text-secondary)!important
}

.lightbox-caption [data-timeline-lightbox-title]{
  color:var(--aidc-text-primary)!important
}

.lightbox-nav,
.lb-btn,
.lightbox-close{
  background:var(--aidc-btn-secondary-bg)!important;
  border-color:var(--aidc-border-default)!important;
  color:var(--aidc-text-primary)!important
}

.lightbox-nav:hover,
.lb-btn:hover,
.lightbox-close:hover{
  background:var(--aidc-btn-secondary-bg-hover)!important;
  border-color:var(--aidc-border-strong)!important
}

.lb-btn.active{
  color:var(--aidc-action-primary-from)!important;
  border-color:var(--aidc-workspace-selection-border)!important;
  background:var(--aidc-workspace-selection-bg)!important
}

.timeline-spinner{
  border-color:var(--aidc-border-default)!important;
  border-top-color:var(--aidc-action-primary-from)!important
}

.timeline-status{
  background:var(--aidc-bg-popover)!important;
  border-color:var(--aidc-border-default)!important;
  color:var(--aidc-text-secondary)!important
}

.timeline-status--error{
  background:var(--aidc-status-danger-bg)!important;
  border-color:var(--aidc-action-danger-border)!important;
  color:var(--aidc-red-500)!important
}

[data-project-timeline] .type-badge{border-color:var(--aidc-timeline-type-border);background:var(--aidc-timeline-type-surface);color:var(--aidc-timeline-type-text)}
[data-project-timeline] .type-badge.type-image{border-color:var(--aidc-timeline-type-image-border);background:var(--aidc-timeline-type-image-bg);color:var(--aidc-timeline-type-image-text)}
[data-project-timeline] .type-badge.type-video{border-color:var(--aidc-timeline-type-video-border);background:var(--aidc-timeline-type-video-bg);color:var(--aidc-timeline-type-video-text)}
[data-project-timeline] .type-badge.type-audio{border-color:var(--aidc-timeline-type-audio-border);background:var(--aidc-timeline-type-audio-bg);color:var(--aidc-timeline-type-audio-text)}
[data-project-timeline] .type-badge.type-text{border-color:var(--aidc-timeline-type-text-border);background:var(--aidc-timeline-type-text-bg);color:var(--aidc-timeline-type-text-text)}
[data-project-timeline] .type-badge.type-3d{border-color:var(--aidc-timeline-type-3d-border);background:var(--aidc-timeline-type-3d-bg);color:var(--aidc-timeline-type-3d-text)}

/* Audio results use semantic surfaces and text in both color modes. */
[data-project-timeline] .audio-bar{
  background:var(--aidc-bg-card)!important;
  border-color:var(--aidc-border-default)!important;
  color:var(--aidc-text-primary)
}
[data-project-timeline] .audio-meta{color:var(--aidc-text-primary)!important}
[data-project-timeline] .audio-meta .muted{color:var(--aidc-text-secondary)!important}
[data-project-timeline] .audio-wave::before{
  background:repeating-linear-gradient(90deg,var(--aidc-text-secondary) 0,var(--aidc-text-secondary) 4px,transparent 4px,transparent 8px);
  opacity:.28
}
[data-project-timeline] .audio-wave::after{background:none}



/* Project Details visual adapter. Layout and media readability overlays remain legacy-owned. */

body [data-project-details]{
  --text:var(--aidc-text-primary);
  --muted:var(--aidc-text-secondary);
  --muted-2:var(--aidc-text-muted);
  --panel:var(--aidc-bg-panel);
  --border:var(--aidc-border-default);
  --accent:var(--aidc-cyan-500);
  --pink:var(--aidc-action-primary-from);
  --yellow:var(--aidc-amber-500);
  --shadow:var(--aidc-shadow-popover);
  color:var(--aidc-text-primary)
}

body [data-project-details] .edit-ico,
body [data-project-details] .pd-iconbtn,
body [data-project-details] .pd-pill,
body [data-project-details] .activity-clear,
body [data-project-details] .btn-secondary{
  background:var(--aidc-btn-secondary-bg);
  border-color:var(--aidc-border-default);
  color:var(--aidc-text-secondary);
  box-shadow:none
}

body [data-project-details] .edit-ico:hover,
body [data-project-details] .pd-iconbtn:hover,
body [data-project-details] .pd-pill:hover,
body [data-project-details] .activity-clear:hover,
body [data-project-details] .btn-secondary:hover{
  background:var(--aidc-btn-secondary-bg-hover);
  border-color:var(--aidc-border-strong);
  color:var(--aidc-text-primary)
}

body [data-project-details] .pd-iconbtn.active,
body [data-project-details] .pd-pill.active,
body [data-project-details] .ag-tab.active{
  background:color-mix(in srgb,var(--aidc-action-primary-from) 12%,transparent);
  border-color:color-mix(in srgb,var(--aidc-action-primary-from) 36%,transparent);
  color:var(--aidc-text-primary);
  box-shadow:none
}

body [data-project-details] .details-path,
body [data-project-details] .details-meta,
body [data-project-details] .details-meta-inline,
body [data-project-details] .activity-note,
body [data-project-details] .ag-sub,
body [data-project-details] .ag-note,
body [data-project-details] .pd-sortlabel,
body [data-project-details] .grid-toolbar .hint,
body [data-project-details] .activity-input::placeholder{
  color:var(--aidc-text-muted)
}

body [data-project-details] .details-section-title,
body [data-project-details] .s-title,
body [data-project-details] .details-text,
body [data-project-details] .s-text,
body [data-project-details] .s-row{
  color:var(--aidc-text-secondary)
}

body [data-project-details] .details-meta-inline strong,
body [data-project-details] .s-row strong{
  color:var(--aidc-text-primary)
}

body [data-project-details] .chip{
  background:var(--aidc-btn-secondary-bg);
  border-color:var(--aidc-border-default);
  color:var(--aidc-text-secondary)
}

body [data-project-details] .ag-card,
body [data-project-details] .s-card{
  background:var(--aidc-bg-card);
  border-color:var(--aidc-border-subtle);
  color:var(--aidc-text-primary);
  box-shadow:var(--aidc-shadow-popover)
}

body [data-project-details] .ag-tab{
  background:transparent;
  color:var(--aidc-text-secondary);
  border-color:var(--aidc-border-subtle)
}
body [data-project-details] .ag-tab:hover{
  background:var(--aidc-btn-secondary-bg-hover);
  color:var(--aidc-text-primary)
}

body [data-project-details] .gen-date-popover,
body:has([data-project-details]) .gen-date-popover,
body [data-project-details] .gen-cal-panel,
body:has([data-project-details]) .gen-date-popover .gen-cal-panel{
  background:var(--aidc-bg-popover);
  border-color:var(--aidc-border-default);
  box-shadow:var(--aidc-shadow-popover)
}

body:has([data-project-details]) .gen-date-popover .gen-dr-text,
body:has([data-project-details]) .gen-date-popover .dr-text,
body [data-project-details] .gen-dr-text,
body:has([data-project-details]) .cal-select,
body:has([data-project-details]) .cal-year,
body [data-project-details] .cal-select,
body [data-project-details] .cal-year,
body [data-project-details] .activity-input,
body [data-project-details] .activity-select,
body [data-project-details] .activity-filters .aidc-select__btn{
  background:var(--aidc-bg-elevated);
  border-color:var(--aidc-border-default);
  color:var(--aidc-text-primary)
}

body [data-project-details] .activity-input:focus,
body [data-project-details] .activity-select:focus,
body:has([data-project-details]) .gen-date-popover .gen-dr-text:focus,
body:has([data-project-details]) .gen-date-popover .dr-text:focus,
body [data-project-details] .gen-dr-text:focus{
  border-color:var(--aidc-action-focus);
  box-shadow:0 0 0 3px var(--aidc-action-focus-ring);
  outline:none
}

body:has([data-project-details]) .cal-title,
body [data-project-details] .cal-title{
  color:var(--aidc-text-primary)
}

body:has([data-project-details]) .cal-dow,
body [data-project-details] .cal-dow,
body:has([data-project-details]) .gen-date-popover label,
body [data-project-details] .gen-date-popover label{
  color:var(--aidc-text-muted)
}

body:has([data-project-details]) .cal-day,
body [data-project-details] .cal-day{
  background:transparent;
  border-color:var(--aidc-border-subtle);
  color:var(--aidc-text-secondary)
}
body:has([data-project-details]) .cal-day:hover,
body [data-project-details] .cal-day:hover{
  background:var(--aidc-btn-secondary-bg-hover);
  border-color:var(--aidc-border-strong);
  color:var(--aidc-text-primary)
}
body:has([data-project-details]) .cal-day.today,
body [data-project-details] .cal-day.today{
  box-shadow:0 0 0 1px color-mix(in srgb,var(--aidc-action-primary-from) 42%,transparent)
}
body:has([data-project-details]) .cal-day.selected,
body [data-project-details] .cal-day.selected{
  background:color-mix(in srgb,var(--aidc-action-primary-from) 14%,transparent);
  border-color:color-mix(in srgb,var(--aidc-action-primary-from) 36%,transparent);
  color:var(--aidc-text-primary)
}

body [data-project-details] .btn-primary,
body [data-project-details] .btn-primary-lg{
  background:linear-gradient(135deg,var(--aidc-action-primary-from),var(--aidc-action-primary-to));
  color:var(--aidc-text-inverse);
  border-color:transparent;
  box-shadow:0 0 18px var(--aidc-action-primary-glow)
}

body [data-project-details] .gen-grid,
body [data-project-details] .ag-activity-list{
  scrollbar-color:var(--aidc-border-default) transparent
}
body [data-project-details] .gen-grid::-webkit-scrollbar-track,
body [data-project-details] .ag-activity-list::-webkit-scrollbar-track{
  background:transparent
}
body [data-project-details] .gen-grid::-webkit-scrollbar-thumb,
body [data-project-details] .ag-activity-list::-webkit-scrollbar-thumb{
  background:var(--aidc-border-default)
}

body [data-project-details] .gen-thumb{
  background:var(--aidc-bg-elevated);
  border-color:var(--aidc-border-subtle);
  box-shadow:var(--aidc-shadow-popover)
}
body [data-project-details] .gen-thumb:hover{border-color:var(--aidc-border-strong)}
body [data-project-details] .gen-thumb.selected,
body [data-project-details] .gen-grid.show-select .gen-thumb.fav{
  border-color:var(--aidc-action-primary-from);
  box-shadow:0 0 0 2px color-mix(in srgb,var(--aidc-action-primary-from) 36%,transparent)
}
body [data-project-details] .gen-thumb.fav{
  border-color:var(--aidc-amber-500);
  box-shadow:0 0 0 2px color-mix(in srgb,var(--aidc-amber-500) 36%,transparent)
}
body [data-project-details] .thumb-meta{color:var(--aidc-text-secondary)}
body [data-project-details] .thumb-tag{
  background:color-mix(in srgb,var(--aidc-cyan-500) 12%,transparent);
  border-color:color-mix(in srgb,var(--aidc-cyan-500) 34%,transparent);
  color:var(--aidc-cyan-500)
}

body:has([data-project-details]) .rv2-card-menu,
body [data-project-details] .rv2-card-menu{
  background:var(--aidc-bg-popover);
  border-color:var(--aidc-border-default);
  box-shadow:var(--aidc-shadow-popover)
}
body:has([data-project-details]) .rv2-card-menu__list li,
body [data-project-details] .rv2-card-menu__list li{color:var(--aidc-text-secondary)}
body:has([data-project-details]) .rv2-card-menu__list li:hover,
body [data-project-details] .rv2-card-menu__list li:hover{
  background:var(--aidc-btn-secondary-bg-hover);
  color:var(--aidc-text-primary)
}
body:has([data-project-details]) .rv2-card-menu__list li[data-action="delete"],
body [data-project-details] .rv2-card-menu__list li[data-action="delete"]{
  color:var(--aidc-red-500)
}

body [data-project-details] .fav-toggle,
body [data-project-details] .card-actions button{
  background:color-mix(in srgb,var(--aidc-bg-popover) 88%,transparent);
  border-color:var(--aidc-border-default);
  color:var(--aidc-text-primary)
}
body [data-project-details] .fav-toggle.active{color:var(--aidc-amber-500)}

body [data-project-details] .aidc-modal-overlay,
body:has([data-project-details]) .aidc-modal-overlay{background:var(--aidc-backdrop)}
body [data-project-details] .aidc-modal,
body:has([data-project-details]) .aidc-modal{
  background:var(--aidc-bg-modal);
  border-color:var(--aidc-border-default);
  box-shadow:var(--aidc-shadow-modal);
  color:var(--aidc-text-primary)
}
body [data-project-details] .aidc-modal__item,
body:has([data-project-details]) .aidc-modal__item,
body [data-project-details] .aidc-modal__btn,
body:has([data-project-details]) .aidc-modal__btn{
  background:var(--aidc-btn-secondary-bg);
  border-color:var(--aidc-border-default);
  color:var(--aidc-text-primary)
}
body [data-project-details] .aidc-modal__item:hover,
body:has([data-project-details]) .aidc-modal__item:hover,
body [data-project-details] .aidc-modal__btn:hover,
body:has([data-project-details]) .aidc-modal__btn:hover{
  background:var(--aidc-btn-secondary-bg-hover);
  border-color:var(--aidc-border-strong)
}
body [data-project-details] .aidc-modal__item.is-active,
body:has([data-project-details]) .aidc-modal__item.is-active{
  background:color-mix(in srgb,var(--aidc-action-primary-from) 12%,transparent);
  border-color:color-mix(in srgb,var(--aidc-action-primary-from) 36%,transparent)
}
body [data-project-details] .aidc-modal__input,
body:has([data-project-details]) .aidc-modal__input{
  background:var(--aidc-bg-elevated);
  border-color:var(--aidc-border-default);
  color:var(--aidc-text-primary)
}



/* Reference Prompt visual adapter.
   Higher specificity is intentional because module CSS is linked after core.css
   on generator pages. Layout ownership remains in the module stylesheet.
*/

body .refp-shell {
  background: var(--aidc-bg-card);
  border-color: var(--aidc-border-subtle);
  color: var(--aidc-text-primary);
}

body .refp-title { color: var(--aidc-text-primary); }

body .refp-drop,
body .refp-loader,
body .rp-mj-extra,
body .rp-mj-extra__slot {
  background: color-mix(in srgb,var(--aidc-bg-card) 92%,white 8%);
  border-color: var(--aidc-border-default);
  color: var(--aidc-text-secondary);
}

body .refp-drop:hover,
body .rp-mj-extra__slot:hover {
  background: color-mix(in srgb,var(--aidc-bg-card) 88%,white 12%);
  border-color: var(--aidc-border-strong);
  box-shadow: none;
}


/* Midjourney sref / oref controls share the canonical theme tokens. The module
   stylesheet still contains legacy dark fallback colors; these declarations
   must win in both light and dark generator workspaces. */
body .refp-shell .rp-mj-extra {
  background: var(--aidc-bg-card);
  color: var(--aidc-text-primary);
  border-color: var(--aidc-border-default);
}
body .refp-shell .rp-mj-extra__title,
body .refp-shell .rp-mj-extra__label {
  color: var(--aidc-text-primary);
  -webkit-text-fill-color: var(--aidc-text-primary);
  opacity: 1;
}
body .refp-shell .rp-mj-extra__icon,
body .refp-shell .rp-mj-extra__sublabel,
body .refp-shell .rp-mj-extra__slider-label,
body .refp-shell .rp-mj-extra__hint {
  color: var(--aidc-text-secondary);
  -webkit-text-fill-color: var(--aidc-text-secondary);
  opacity: 1;
}
body .refp-shell .rp-mj-extra__slider-value {
  color: var(--aidc-text-primary);
  -webkit-text-fill-color: var(--aidc-text-primary);
  font-weight: 600;
}
body .refp-shell .rp-mj-extra__slot {
  border-color: var(--aidc-border-default);
  background: var(--aidc-bg-elevated);
  color: var(--aidc-text-primary);
}
body .refp-shell .rp-mj-extra__slot:hover,
body .refp-shell .rp-mj-extra__slot.is-dragover {
  border-color: var(--aidc-action-focus);
  background: var(--aidc-btn-secondary-bg-hover);
}
body .refp-shell .rp-mj-extra__slot.has-file {
  border-color: var(--aidc-action-primary-from);
}
body .refp-shell .rp-mj-extra__add-btn {
  background: var(--aidc-btn-secondary-bg);
  border-color: var(--aidc-btn-secondary-border);
  color: var(--aidc-text-primary);
  -webkit-text-fill-color: var(--aidc-text-primary);
}
body .refp-shell .rp-mj-extra__add-btn:hover,
body .refp-shell .rp-mj-extra__add-btn:focus-visible {
  border-color: var(--aidc-action-focus);
  background: var(--aidc-btn-secondary-bg-hover);
  color: var(--aidc-text-primary);
  -webkit-text-fill-color: var(--aidc-text-primary);
}
body .refp-shell .rp-mj-extra__range {
  background: linear-gradient(90deg,
    color-mix(in srgb, var(--aidc-action-primary-from) 35%, var(--aidc-bg-elevated)),
    color-mix(in srgb, var(--aidc-action-primary-to) 55%, var(--aidc-bg-elevated)));
  accent-color: var(--aidc-action-primary-from);
}
body .refp-shell .rp-mj-extra__range::-webkit-slider-thumb {
  background: var(--aidc-action-primary-from);
  border-color: var(--aidc-bg-card);
  box-shadow: 0 0 0 1px var(--aidc-border-strong);
}
body .refp-shell .rp-mj-extra__range::-moz-range-thumb {
  background: var(--aidc-action-primary-from);
  border-color: var(--aidc-bg-card);
  box-shadow: 0 0 0 1px var(--aidc-border-strong);
}
body .refp-shell .rp-mj-extra__slider-wrap.is-disabled,
body .refp-shell .rp-mj-extra__slot.is-disabled {
  opacity: .62;
}
body .refp-shell .rp-mj-extra__error {
  color: var(--aidc-action-danger-from);
  -webkit-text-fill-color: var(--aidc-action-danger-from);
}

body .refp-drop strong,
body .refp-uploading-text { color: var(--aidc-text-primary); }

body .refp-drop small,
body .refp-label,
body .refp-hint,
body .refp-count,
body .rp-mj-extra__title { color: var(--aidc-text-muted); }

body .refp-spinner {
  border-color: var(--aidc-border-default);
  border-top-color: var(--aidc-action-primary-from);
}

body .refp-uploading,
body .refp-thumb-loading {
  background: color-mix(in srgb,var(--aidc-bg-popover) 88%,transparent);
}

body .refp-item {
  background: var(--aidc-bg-elevated);
  border-color: var(--aidc-border-default);
}

/* Canonical reference-card label contract.
   Every model reuses these same visual roles. Model runtimes may choose the
   semantic label text (@Image1 vs Image 1), but must not own colors/backgrounds.
   Specificity + !important intentionally beat historical runtime-injected dark
   palettes so browser, PWA and Telegram WebApp stay identical. */
body .refp-shell .refp-reference-tag {
  background: var(--aidc-bg-card) !important;
  color: var(--aidc-text-primary) !important;
  -webkit-text-fill-color: var(--aidc-text-primary) !important;
  border-color: color-mix(in srgb,var(--aidc-action-primary-from) 42%,var(--aidc-border-default)) !important;
  box-shadow: var(--aidc-shadow-card) !important;
  text-shadow: none !important;
  opacity: 1 !important;
}
body .refp-shell .refp-reference-tag:hover,
body .refp-shell .refp-reference-tag:focus-visible {
  background: var(--aidc-bg-elevated) !important;
  color: var(--aidc-text-primary) !important;
  -webkit-text-fill-color: var(--aidc-text-primary) !important;
  border-color: var(--aidc-action-focus) !important;
  outline: none !important;
}

/* Canonical media-reference caption/action contract. `.refp-audio-*` is the
   historical class family used for both audio and video clip cards. Keep layout
   in the module; all visual state belongs here for every video model. */
body .refp-shell .refp-audio {
  background: var(--aidc-bg-elevated) !important;
  color: var(--aidc-text-primary) !important;
  box-shadow: none !important;
}
body .refp-shell .refp-audio-name {
  color: var(--aidc-text-primary) !important;
  -webkit-text-fill-color: var(--aidc-text-primary) !important;
  text-shadow: none !important;
  opacity: 1 !important;
}
body .refp-shell .refp-audio-meta {
  color: var(--aidc-text-secondary) !important;
  -webkit-text-fill-color: var(--aidc-text-secondary) !important;
  text-shadow: none !important;
  opacity: 1 !important;
}
body .refp-shell .refp-audio-edit {
  background: var(--aidc-btn-secondary-bg) !important;
  color: var(--aidc-text-primary) !important;
  -webkit-text-fill-color: var(--aidc-text-primary) !important;
  border-color: var(--aidc-btn-secondary-border) !important;
  box-shadow: none !important;
  text-shadow: none !important;
  opacity: 1 !important;
}
body .refp-shell .refp-audio-edit:hover,
body .refp-shell .refp-audio-edit:focus-visible {
  background: var(--aidc-btn-secondary-bg-hover) !important;
  color: var(--aidc-text-primary) !important;
  -webkit-text-fill-color: var(--aidc-text-primary) !important;
  border-color: var(--aidc-border-strong) !important;
  outline: none !important;
}

/* Generic reference help/label copy. H3 writes plain Image/Video/Audio labels
   into this node; other models may reuse it. Visuals stay model-agnostic. */
body .refp-shell .refp-reference-guide {
  color: var(--aidc-text-secondary) !important;
  -webkit-text-fill-color: var(--aidc-text-secondary) !important;
  opacity: 1 !important;
}
body .refp-shell .refp-reference-guide strong {
  color: var(--aidc-text-primary) !important;
  -webkit-text-fill-color: var(--aidc-text-primary) !important;
}
body .refp-shell .refp-reference-guide code {
  color: var(--aidc-text-primary) !important;
  -webkit-text-fill-color: var(--aidc-text-primary) !important;
  background: var(--aidc-bg-elevated) !important;
  border: 1px solid var(--aidc-border-subtle) !important;
  border-radius: 5px;
  padding: 1px 4px;
}

body .refp-index,
body .refp-preview-note {
  background: color-mix(in srgb,var(--aidc-bg-popover) 88%,transparent);
  border-color: var(--aidc-border-default);
  color: var(--aidc-text-secondary);
}

body .refp-remove,
body .refp-replace {
  background: color-mix(in srgb,var(--aidc-bg-popover) 88%,transparent);
  border-color: var(--aidc-border-default);
  color: var(--aidc-text-primary);
}

body .refp-remove:hover,
body .refp-replace:hover {
  background: var(--aidc-btn-secondary-bg-hover);
}

/* One visual contract for the shared reference-gallery action in every model. */
body .refp-shell .refp-gallery-preview {
  background: color-mix(in srgb,var(--aidc-bg-popover) 88%,transparent);
  border-color: var(--aidc-border-default);
  color: var(--aidc-text-primary);
  -webkit-text-fill-color: var(--aidc-text-primary);
  box-shadow: none;
}
body .refp-shell .refp-gallery-preview:hover,
body .refp-shell .refp-gallery-preview:focus-visible {
  background: var(--aidc-btn-secondary-bg-hover);
  border-color: var(--aidc-action-focus);
  color: var(--aidc-text-primary);
  -webkit-text-fill-color: var(--aidc-text-primary);
  outline: none;
}
body .refp-shell .refp-gallery-preview svg {
  color: currentColor;
  stroke: currentColor;
}

/* A visibly independent reference scrollbar in light and dark themes. */
body .refp-references-viewport {
  scrollbar-color: var(--aidc-border-strong) transparent;
}
body .refp-references-viewport::-webkit-scrollbar { width: 7px; }
body .refp-references-viewport::-webkit-scrollbar-track { background: transparent; }
body .refp-references-viewport::-webkit-scrollbar-thumb {
  border-radius: 6px;
  background: var(--aidc-border-strong);
}

body .refp-textarea {
  background: var(--aidc-bg-elevated);
  border-color: var(--aidc-border-default);
  color: var(--aidc-text-primary);
}

body .refp-textarea:focus {
  background: var(--aidc-bg-elevated);
  border-color: var(--aidc-action-focus);
  box-shadow: 0 0 0 3px var(--aidc-action-focus-ring);
}

body .refp-expand-modal { background: var(--aidc-backdrop); }

body .refp-expand-modal__container {
  background: var(--aidc-bg-modal);
  border-color: var(--aidc-border-default);
  box-shadow: var(--aidc-shadow-modal);
}

body .refp-expand-modal__header,
body .refp-expand-modal__footer,
body .refp-list-toolbar { border-color: var(--aidc-border-subtle); }

body .refp-expand-modal__title,
body .refp-expand-modal__textarea { color: var(--aidc-text-primary); }

body .refp-expand-modal__textarea::placeholder,
body .refp-expand-modal__counter { color: var(--aidc-text-muted); }

body .refp-expand-modal__close {
  background: var(--aidc-btn-secondary-bg);
  border-color: var(--aidc-border-default);
  color: var(--aidc-text-secondary);
}

body .refp-expand-modal__close:hover {
  background: var(--aidc-btn-secondary-bg-hover);
  border-color: var(--aidc-border-strong);
  color: var(--aidc-text-primary);
  box-shadow: none;
}

body .refp-expand-modal__done {
  background: linear-gradient(135deg,var(--aidc-action-primary-from),var(--aidc-action-primary-to));
  border-color: var(--aidc-border-strong);
  color: var(--aidc-text-inverse);
  box-shadow: 0 0 18px var(--aidc-action-primary-glow);
}

body .refp-expand-modal__done:hover {
  filter: brightness(1.08);
  color: var(--aidc-text-inverse);
}

body .refp-btn,
body .refp-manage-errors {
  background: var(--aidc-btn-secondary-bg);
  border-color: var(--aidc-border-default);
  color: var(--aidc-text-primary);
  box-shadow: none;
}

body .refp-btn:hover,
body .refp-manage-errors:hover {
  background: var(--aidc-btn-secondary-bg-hover);
  border-color: var(--aidc-border-strong);
  box-shadow: none;
}

body .refp-clear-all {
  background: color-mix(in srgb,var(--aidc-red-500) 10%,transparent);
  border-color: var(--aidc-action-danger-border);
  color: color-mix(in srgb,var(--aidc-red-500) 72%,white 28%);
}

body .refp-clear-all:hover {
  background: color-mix(in srgb,var(--aidc-red-500) 18%,transparent);
  color: color-mix(in srgb,var(--aidc-red-500) 48%,white 52%);
}

body .refp-item-error {
  color: color-mix(in srgb,var(--aidc-red-500) 52%,white 48%);
  background: color-mix(in srgb,var(--aidc-red-500) 8%,transparent);
  border-color: var(--aidc-action-danger-border);
}

body .refp-item.refp-item--incompatible {
  outline: 2px solid var(--aidc-action-danger-from);
  outline-offset: -2px;
}

body .refp-incompatible-reason {
  position: absolute;
  top: 44px;
  left: 4px;
  right: 4px;
  z-index: 3;
  padding: 3px 5px;
  border: 1px solid var(--aidc-action-danger-border);
  border-radius: 6px;
  color: var(--aidc-action-danger-from);
  background: var(--aidc-bg-card);
  font-size: 11px;
  line-height: 1.3;
  pointer-events: none;
}

body .refp-retry {
  background: var(--aidc-btn-secondary-bg);
  border-color: var(--aidc-border-default);
  color: var(--aidc-text-primary);
}

body .refp-retry:hover {
  background: var(--aidc-btn-secondary-bg-hover);
  border-color: var(--aidc-border-strong);
}

/* Runtime media-group cards (Seedance / Hailuo H3) inject a dark palette from JS.
   The semantic adapter owns their visual theme on both desktop and WebApp. */
body .refp-media-group {
  background: var(--aidc-bg-card) !important;
  border-color: var(--aidc-border-default) !important;
  color: var(--aidc-text-primary) !important;
  box-shadow: none !important;
}
body .refp-media-group:hover,
body .refp-media-group.is-dragover {
  background: var(--aidc-bg-elevated) !important;
  border-color: var(--aidc-action-focus) !important;
}
body .refp-media-group__title {
  color: var(--aidc-text-primary) !important;
  -webkit-text-fill-color: var(--aidc-text-primary) !important;
}
body .refp-media-group__tag {
  color: var(--aidc-action-primary-to) !important;
  -webkit-text-fill-color: var(--aidc-action-primary-to) !important;
}
body .refp-media-group__hint {
  color: var(--aidc-text-secondary) !important;
  -webkit-text-fill-color: var(--aidc-text-secondary) !important;
  opacity: 1 !important;
}
body .refp-media-group__action,
body .refp-media-group .refp-pick-resources {
  background: var(--aidc-btn-secondary-bg) !important;
  border-color: var(--aidc-btn-secondary-border) !important;
  color: var(--aidc-text-primary) !important;
  -webkit-text-fill-color: var(--aidc-text-primary) !important;
  box-shadow: none !important;
}
body .refp-media-group__action:hover,
body .refp-media-group .refp-pick-resources:hover {
  background: var(--aidc-btn-secondary-bg-hover) !important;
  border-color: var(--aidc-border-strong) !important;
}

/* Seedance guide is runtime-injected. It still consumes the same semantic
   reference palette; only its richer guide geometry is Seedance-specific. */
body .seedance-ref-guide {
  background: var(--aidc-bg-card) !important;
  border-color: var(--aidc-border-default) !important;
  color: var(--aidc-text-secondary) !important;
  box-shadow: none !important;
}
body .seedance-ref-guide summary {
  color: var(--aidc-text-primary) !important;
  -webkit-text-fill-color: var(--aidc-text-primary) !important;
}
body .seedance-ref-guide summary::before {
  border-color: var(--aidc-border-strong) !important;
  color: var(--aidc-action-primary-to) !important;
}
body .seedance-ref-guide[open] summary {
  border-color: var(--aidc-border-subtle) !important;
}
body .seedance-ref-guide__body,
body .seedance-ref-guide__hint {
  color: var(--aidc-text-secondary) !important;
  -webkit-text-fill-color: var(--aidc-text-secondary) !important;
  opacity: 1 !important;
}
body .seedance-ref-guide__body strong,
body .seedance-ref-guide__example strong {
  color: var(--aidc-text-primary) !important;
  -webkit-text-fill-color: var(--aidc-text-primary) !important;
}
body .seedance-ref-guide__tag {
  background: color-mix(in srgb,var(--aidc-action-primary-from) 9%,var(--aidc-bg-elevated)) !important;
  border-color: color-mix(in srgb,var(--aidc-action-primary-from) 34%,var(--aidc-border-default)) !important;
  color: var(--aidc-action-primary-to) !important;
  -webkit-text-fill-color: var(--aidc-action-primary-to) !important;
}
body .seedance-ref-guide__example {
  background: var(--aidc-bg-elevated) !important;
  border-color: var(--aidc-action-focus) !important;
  color: var(--aidc-text-secondary) !important;
}
body .seedance-ref-guide__example code {
  color: var(--aidc-text-primary) !important;
  -webkit-text-fill-color: var(--aidc-text-primary) !important;
}
body .seedance-ref-guide__insert {
  background: var(--aidc-btn-secondary-bg) !important;
  border-color: var(--aidc-btn-secondary-border) !important;
  color: var(--aidc-text-primary) !important;
  -webkit-text-fill-color: var(--aidc-text-primary) !important;
}
body .seedance-ref-guide__insert:hover:not(:disabled) {
  background: var(--aidc-btn-secondary-bg-hover) !important;
  border-color: var(--aidc-border-strong) !important;
}



/* Shared Reference Prompt controls contract.
   Applies to every model that consumes the common reference-prompt module.
   Model runtimes own capabilities/text only; prompt helper visuals are global. */

body .refp-shell .refp-textarea::placeholder {
  color: var(--aidc-text-muted) !important;
  -webkit-text-fill-color: var(--aidc-text-muted) !important;
  opacity: 1 !important;
}

body .refp-shell .refp-textarea-shell .refp-translate-en-btn {
  background: var(--aidc-btn-secondary-bg) !important;
  border-color: var(--aidc-btn-secondary-border) !important;
  color: var(--aidc-text-primary) !important;
  -webkit-text-fill-color: var(--aidc-text-primary) !important;
  box-shadow: none !important;
  text-shadow: none !important;
  opacity: 1 !important;
}

body .refp-shell .refp-textarea-shell .refp-translate-en-btn:hover:not(:disabled),
body .refp-shell .refp-textarea-shell .refp-translate-en-btn:focus-visible {
  background: var(--aidc-btn-secondary-bg-hover) !important;
  border-color: var(--aidc-border-strong) !important;
  color: var(--aidc-text-primary) !important;
  -webkit-text-fill-color: var(--aidc-text-primary) !important;
  outline: none !important;
}

body .refp-shell .refp-textarea-shell .refp-translate-en-btn:focus-visible {
  box-shadow: 0 0 0 3px var(--aidc-action-focus-ring) !important;
}

body .refp-shell .refp-textarea-shell .refp-translate-en-btn:disabled {
  background: var(--aidc-btn-disabled-bg) !important;
  border-color: var(--aidc-btn-disabled-border) !important;
  color: var(--aidc-btn-disabled-text) !important;
  -webkit-text-fill-color: var(--aidc-btn-disabled-text) !important;
  opacity: 1 !important;
}

body .refp-shell .refp-translation-preview {
  background: var(--aidc-bg-card) !important;
  border-color: var(--aidc-border-default) !important;
  color: var(--aidc-text-primary) !important;
  box-shadow: none !important;
}

body .refp-shell .refp-translation-preview__title {
  color: var(--aidc-text-primary) !important;
  -webkit-text-fill-color: var(--aidc-text-primary) !important;
}

body .refp-shell .refp-translation-preview__text,
body .refp-shell .refp-translation-preview__note,
body .refp-shell .refp-prompt-limit {
  color: var(--aidc-text-secondary) !important;
  -webkit-text-fill-color: var(--aidc-text-secondary) !important;
  opacity: 1 !important;
}

body .refp-shell .refp-prompt-limit.is-warning {
  color: var(--aidc-status-warning) !important;
  -webkit-text-fill-color: var(--aidc-status-warning) !important;
}

body .refp-shell .refp-prompt-limit.is-error {
  color: var(--aidc-red-500) !important;
  -webkit-text-fill-color: var(--aidc-red-500) !important;
}


/* Prompt actions also occur outside refp-shell in the WebApp's joined card. */
body .refp-prompt .refp-label-actions :is(.smart-prompt-btn, .refp-icon-btn) {
  background: var(--aidc-btn-secondary-bg) !important;
  border-color: var(--aidc-btn-secondary-border) !important;
  color: var(--aidc-text-primary) !important;
  -webkit-text-fill-color: var(--aidc-text-primary) !important;
  text-shadow: none !important;
  box-shadow: none !important;
}
body .refp-prompt .refp-label-actions :is(.smart-prompt-btn, .refp-icon-btn):hover {
  background: var(--aidc-btn-secondary-bg-hover) !important;
  border-color: var(--aidc-border-strong) !important;
}
body .refp-prompt .refp-label-actions :is(.smart-prompt-btn, .refp-icon-btn) span {
  color: inherit !important;
  -webkit-text-fill-color: currentColor !important;
}
/* Wide-screen prompt editor placement contract.
   The reference-prompt module still owns the editor DOM and narrow-screen modal
   behaviour. On desktop generator workspaces, reuse that editor as a side
   surface anchored exactly to the live Project Timeline panel so model settings,
   reference controls and their independent scroll regions remain interactive. */

@media (min-width: 1280px) {
  @supports (anchor-name: --aidc-project-timeline) {
    :where(body.page-image, body.page-video, body.page-audio, body.page-3d) [data-project-timeline] {
      anchor-name: --aidc-project-timeline;
    }

    :where(body.page-image, body.page-video, body.page-audio, body.page-3d) .refp-expand-modal {
      position: fixed;
      position-anchor: --aidc-project-timeline;
      inset: auto;
      top: anchor(--aidc-project-timeline top);
      left: anchor(--aidc-project-timeline left);
      width: anchor-size(--aidc-project-timeline width);
      height: anchor-size(--aidc-project-timeline height);
      max-width: none;
      max-height: none;
      margin: 0;
      padding: 0;
      display: block;
      pointer-events: none;
      background: transparent !important;
      backdrop-filter: none !important;
      -webkit-backdrop-filter: none !important;
    }

    :where(body.page-image, body.page-video, body.page-audio, body.page-3d) .refp-expand-modal__container {
      width: 100%;
      height: 100%;
      max-width: none;
      max-height: none;
      margin: 0;
      box-sizing: border-box;
      border-radius: 16px;
      pointer-events: auto;
      animation: none;
    }
  }
}


/* Canonical AI generation-submit CTA: opt-in via .aidc-generation-cta.
 * Used by AI Interior, AI Fashion and future embedded service generators.
 * Only generation/submission actions opt in; ordinary Next/Save/Split controls
 * keep their own semantic button styling. No runtime text mutations required.
 * Dark theme: branded pink, readable white text, white lightning.
 * Light theme: retain the platform's quiet primary surface; keep the bolt.
 */

.aidc-generation-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--aidc-control-gap, 8px);
  text-align: center;
}

/* A single accessible text label comes from the existing DOM.
 * The decorative bolt is CSS-only, so labels/prices survive rerenders, quotes
 * and translations unchanged. Interior already has a bolt between label/cost. */
.aidc-generation-cta:not(.interior-submit)::before {
  content: '';
  display: inline-block;
  flex: 0 0 16px;
  width: 16px;
  height: 16px;
  background: currentColor;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M13.2 2.5a1 1 0 0 1 .8.98v5.77h5.08a1 1 0 0 1 .82 1.58l-8.4 11.93a1 1 0 0 1-1.8-.58v-5.77H4.82a1 1 0 0 1-.82-1.58l8.4-11.93a1 1 0 0 1 .8-.4z'/%3E%3C/svg%3E") center / contain no-repeat;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M13.2 2.5a1 1 0 0 1 .8.98v5.77h5.08a1 1 0 0 1 .82 1.58l-8.4 11.93a1 1 0 0 1-1.8-.58v-5.77H4.82a1 1 0 0 1-.82-1.58l8.4-11.93a1 1 0 0 1 .8-.4z'/%3E%3C/svg%3E") center / contain no-repeat;
  pointer-events: none;
}
.aidc-generation-cta:not(.interior-submit) > svg:first-child {
  display: none !important; /* legacy sparkle: don't render two icons */
}
.aidc-generation-cta:not(.interior-submit).fh-generate-btn {
  display: inline-flex;
}

/* The same semantic owner must also override legacy view-sheet gradients in
 * light mode, including the route's gray disabled labels. */
html[data-aidc-color-mode="light"] body .aidc-generation-cta,
html[data-aidc-color-mode="light"] body #interior-submit.aidc-generation-cta {
  background: var(--aidc-btn-primary-bg) !important;
  border-color: var(--aidc-btn-primary-border) !important;
  color: var(--aidc-btn-primary-text) !important;
  -webkit-text-fill-color: var(--aidc-btn-primary-text) !important;
}
html[data-aidc-color-mode="light"] body .aidc-generation-cta:disabled,
html[data-aidc-color-mode="light"] body .aidc-generation-cta[aria-disabled="true"],
html[data-aidc-color-mode="light"] body #interior-submit.aidc-generation-cta:disabled {
  background: var(--aidc-btn-secondary-bg) !important;
  border-color: var(--aidc-btn-secondary-border) !important;
  color: var(--aidc-text-primary) !important;
  -webkit-text-fill-color: var(--aidc-text-primary) !important;
  box-shadow: none !important;
  opacity: 1 !important;
}
html[data-aidc-color-mode="light"] body .aidc-generation-cta :is(span,small,strong),
html[data-aidc-color-mode="light"] body #interior-submit.aidc-generation-cta :is(span,small,strong) {
  color: inherit !important;
  -webkit-text-fill-color: currentColor !important;
}
html[data-aidc-color-mode="light"] body .aidc-generation-cta .interior-submit-token-icon,
html[data-aidc-color-mode="light"] body #interior-submit.aidc-generation-cta .interior-submit-token-icon {
  background: currentColor !important;
}

/* This higher-specificity dark contract wins over route-owned gray disabled
 * backgrounds. Disabled stays visibly pink, but is still genuinely disabled,
 * non-hoverable and clearly less prominent than the active submit. */
html:not([data-aidc-color-mode="light"]) body .aidc-generation-cta,
html:not([data-aidc-color-mode="light"]) body #interior-submit.aidc-generation-cta,
html:not([data-aidc-color-mode="light"]) body .ms-shell .ms-cta {
  background: var(--aidc-btn-primary-bg) !important;
  border: 1px solid var(--aidc-btn-primary-border) !important;
  color: var(--aidc-btn-primary-text) !important;
  -webkit-text-fill-color: var(--aidc-btn-primary-text) !important;
  opacity: 1 !important;
  text-shadow: none !important;
  filter: none !important;
}
html:not([data-aidc-color-mode="light"]) body .aidc-generation-cta :is(span,small,strong),
html:not([data-aidc-color-mode="light"]) body #interior-submit.aidc-generation-cta :is(span,small,strong),
html:not([data-aidc-color-mode="light"]) body .ms-shell .ms-cta :is(span,small,strong) {
  color: var(--aidc-btn-primary-text) !important;
  -webkit-text-fill-color: var(--aidc-btn-primary-text) !important;
}
html:not([data-aidc-color-mode="light"]) body .aidc-generation-cta .interior-submit-token-icon,
html:not([data-aidc-color-mode="light"]) body #interior-submit.aidc-generation-cta .interior-submit-token-icon,
html:not([data-aidc-color-mode="light"]) body .ms-shell .ms-cta-icon {
  background: var(--aidc-btn-primary-text) !important;
}
html:not([data-aidc-color-mode="light"]) body .aidc-generation-cta:disabled,
html:not([data-aidc-color-mode="light"]) body #interior-submit.aidc-generation-cta:disabled,
html:not([data-aidc-color-mode="light"]) body .aidc-generation-cta[aria-disabled="true"],
html:not([data-aidc-color-mode="light"]) body .ms-shell .ms-cta:disabled {
  background: var(--aidc-btn-primary-bg) !important;
  border-color: var(--aidc-btn-primary-border) !important;
  color: var(--aidc-btn-primary-text) !important;
  -webkit-text-fill-color: var(--aidc-btn-primary-text) !important;
  opacity: .7 !important;
  filter: saturate(.78) !important;
  box-shadow: none !important;
  cursor: not-allowed !important;
  transform: none !important;
}
html:not([data-aidc-color-mode="light"]) body .aidc-generation-cta:hover:not(:disabled),
html:not([data-aidc-color-mode="light"]) body #interior-submit.aidc-generation-cta:hover:not(:disabled),
html:not([data-aidc-color-mode="light"]) body .ms-shell .ms-cta:hover:not(:disabled) {
  background: var(--aidc-btn-primary-bg-hover) !important;
  color: var(--aidc-btn-primary-text) !important;
  -webkit-text-fill-color: var(--aidc-btn-primary-text) !important;
}
.aidc-generation-cta.fh-generate-btn--loading::before {
  animation: aidc-generation-cta-pulse 1.15s ease-in-out infinite;
}
@keyframes aidc-generation-cta-pulse {
  50% { opacity: .45; }
}
@media (prefers-reduced-motion: reduce) {
  .aidc-generation-cta.fh-generate-btn--loading::before { animation: none; }
}


/* Model Settings visual adapter.
   Higher specificity is intentional: module CSS is often linked after core.css,
   so this adapter must keep visual ownership independent of source order.
*/

body .ms-shell{background:var(--aidc-bg-generator-card);border-color:var(--aidc-border-subtle);color:var(--aidc-text-primary)}
body .ms-shell .ms-title{color:var(--aidc-text-primary)}
body .ms-shell .ms-label,body .ms-shell .ms-subtext{color:var(--aidc-text-muted)}

body .ms-shell .ms-tip{background:var(--aidc-btn-secondary-bg);color:var(--aidc-text-primary)}
body .ms-shell .ms-tip:hover{background:var(--aidc-btn-secondary-bg-hover)}
body .ms-shell .ms-tip-bubble{background:var(--aidc-bg-popover);color:var(--aidc-text-secondary);border-color:var(--aidc-border-default);box-shadow:var(--aidc-shadow-popover)}

body .ms-shell .ms-select,
body .ms-shell .ms-input,
body .ms-shell .ms-text-input,
body .ms-shell .ms-seed-control,
body .ms-shell .ms-seed-row,
body .ms-shell .ms-field .ms-input:disabled,
body .ms-shell .ms-field .ms-input[disabled]{background:var(--aidc-bg-elevated);border-color:var(--aidc-border-default);color:var(--aidc-text-primary);box-shadow:none}

body .ms-shell .ms-input::placeholder,
body .ms-shell .ms-text-input::placeholder,
body .ms-shell .ms-seed-input::placeholder{color:var(--aidc-text-muted)}

body .ms-shell .ms-seed-input,
body .ms-shell .ms-seed-random,
body .ms-shell .ms-seed-row .ms-chip-inline{color:var(--aidc-text-primary)}
body .ms-shell .ms-seed-random,
body .ms-shell .ms-seed-row .ms-chip-inline{border-color:var(--aidc-border-subtle)}
body .ms-shell .ms-seed-random:hover,
body .ms-shell .ms-seed-row .ms-chip-inline:hover{background:var(--aidc-btn-secondary-bg-hover);color:var(--aidc-text-primary)}

body .ms-shell .ms-select:focus,
body .ms-shell .ms-input:focus,
body .ms-shell .ms-text-input:focus,
body .ms-shell .ms-seed-control:focus-within,
body .ms-shell .ms-seed-row:focus-within{border-color:var(--aidc-action-focus);box-shadow:0 0 0 3px var(--aidc-action-focus-ring);background:var(--aidc-bg-elevated)}

body .ms-shell .ms-field{background:var(--aidc-bg-card);border-color:var(--aidc-border-subtle)}

body .ms-shell .ms-select option{background:var(--aidc-bg-popover);color:var(--aidc-text-primary)}
body .ms-shell .ms-select option:checked,
body .ms-shell .ms-select option:hover,
body .ms-shell .ms-select:focus option:checked{background:color-mix(in srgb,var(--aidc-action-primary-from) 12%,var(--aidc-bg-popover) 88%)!important;color:var(--aidc-text-primary)}
body .ms-shell .ms-select::after{background:var(--aidc-text-muted)}

body .ms-shell .aidc-select__btn{background:var(--aidc-bg-elevated);border-color:var(--aidc-border-default);color:var(--aidc-text-primary)}
body .ms-shell .aidc-select__btn:hover,
body .ms-shell .aidc-select__btn:focus-visible{background:var(--aidc-btn-secondary-bg-hover);border-color:var(--aidc-border-strong);outline:none}
body .ms-shell .aidc-select__menu{background:var(--aidc-bg-popover);border-color:var(--aidc-border-default);box-shadow:var(--aidc-shadow-popover)}
body .ms-shell .aidc-select__option{background:transparent;color:var(--aidc-text-secondary)}
body .ms-shell .aidc-select__option:hover,
body .ms-shell .aidc-select__option:focus-visible{background:var(--aidc-btn-secondary-bg-hover);color:var(--aidc-text-primary)}
body .ms-shell .aidc-select__option.is-selected,
body .ms-shell .aidc-select__option[aria-selected="true"]{background:color-mix(in srgb,var(--aidc-action-primary-from) 12%,transparent);color:var(--aidc-text-primary)}

body .ms-shell .ms-chip,
body .ms-shell .ms-toggle{background:var(--aidc-btn-secondary-bg);border-color:var(--aidc-border-default);color:var(--aidc-text-secondary)}
body .ms-shell .ms-chip:hover,
body .ms-shell .ms-toggle:hover{background:var(--aidc-btn-secondary-bg-hover);border-color:var(--aidc-border-strong);color:var(--aidc-text-primary)}
body .ms-shell .ms-chip.is-active,
body .ms-shell .ms-toggle.is-on{background:color-mix(in srgb,var(--aidc-action-primary-from) 12%,transparent);border-color:color-mix(in srgb,var(--aidc-action-primary-from) 36%,transparent);color:var(--aidc-text-primary)}

body .ms-shell .ms-toggle-knob{background:var(--aidc-border-strong)}
body .ms-shell .ms-toggle-knob::after{background:var(--aidc-text-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--aidc-bg-page) 72%,transparent)}
body .ms-shell .ms-toggle.is-on .ms-toggle-knob{background:var(--aidc-action-primary-from)}
body .ms-shell .ms-toggle.is-on .ms-toggle-knob::after{background:var(--aidc-text-inverse)}

body .ms-shell .ms-value{color:var(--aidc-text-secondary)}
body .ms-shell .ms-slider{background:linear-gradient(90deg,color-mix(in srgb,var(--aidc-cyan-500) 42%,transparent),color-mix(in srgb,var(--aidc-action-primary-from) 36%,transparent))}
body .ms-shell .ms-slider::-webkit-slider-thumb{background:var(--aidc-action-primary-from);border-color:var(--aidc-bg-page);box-shadow:0 0 0 2px var(--aidc-action-focus-ring)}
body .ms-shell .ms-slider::-moz-range-thumb{background:var(--aidc-action-primary-from);border-color:var(--aidc-bg-page);box-shadow:0 0 0 2px var(--aidc-action-focus-ring)}

body .ms-shell .ms-empty{background:var(--aidc-bg-card);border-color:var(--aidc-border-default);color:var(--aidc-text-secondary)}

body .ms-shell .ms-cta{background:linear-gradient(135deg,var(--aidc-action-primary-from),var(--aidc-action-primary-to));border-color:var(--aidc-border-strong);color:var(--aidc-text-inverse);box-shadow:0 0 22px var(--aidc-action-primary-glow)}
body .ms-shell .ms-cta:hover{box-shadow:0 0 28px var(--aidc-action-primary-glow);filter:brightness(1.08)}
body .ms-shell .ms-cta:disabled{background:var(--aidc-btn-secondary-bg);border-color:var(--aidc-border-default);color:var(--aidc-text-muted);box-shadow:none;filter:none}
body .ms-shell .ms-cta-icon{background:currentColor}
body .ms-shell .ms-cta-tokens{color:inherit}
body .ms-shell .ms-academy{color:var(--aidc-text-secondary)}
body .ms-shell .ms-academy:hover{color:var(--aidc-text-primary)}

body .ms-shell .ms-dropdown__toggle,
body .ms-shell .ms-field .ms-dropdown__toggle{background:var(--aidc-bg-elevated);border-color:var(--aidc-border-default);color:var(--aidc-text-primary)}
body .ms-shell .ms-dropdown__toggle:hover{background:var(--aidc-btn-secondary-bg-hover);border-color:var(--aidc-border-strong)}
body .ms-shell .ms-dropdown__toggle::after{background:var(--aidc-text-muted)}
body .ms-shell .ms-dropdown__menu{background:var(--aidc-bg-popover);border-color:var(--aidc-border-default);box-shadow:var(--aidc-shadow-popover)}
body .ms-shell .ms-dropdown__item{background:transparent;color:var(--aidc-text-secondary)}
body .ms-shell .ms-dropdown__item:hover,
body .ms-shell .ms-dropdown__item:focus-visible{background:var(--aidc-btn-secondary-bg-hover);color:var(--aidc-text-primary)}
body .ms-shell .ms-dropdown__item.is-active,
body .ms-shell .ms-dropdown__item[aria-selected="true"]{background:color-mix(in srgb,var(--aidc-action-primary-from) 12%,transparent);border-color:color-mix(in srgb,var(--aidc-action-primary-from) 36%,transparent);color:var(--aidc-text-primary)}
body .ms-shell .ms-dropdown__item.ms-plan-locked,
body .ms-shell .ms-dropdown__item.ms-option-locked,
body .ms-shell .ms-dropdown__item.ms-mode-restricted{color:var(--aidc-text-muted)}

body .ms-shell .ms-upgrade-banner{background:var(--aidc-status-warning-bg);border-color:var(--aidc-status-warning-border);color:var(--aidc-status-warning-text)}
body .ms-shell .ms-upgrade-banner .ms-upgrade-icon .ms-lock-icon{stroke:var(--aidc-amber-500)}
body .ms-shell .ms-upgrade-banner .ms-upgrade-link{color:var(--aidc-amber-500)}
body .ms-shell .ms-upgrade-banner .ms-upgrade-link:hover{color:var(--aidc-status-warning-text)}
body .ms-shell .ms-cta.ms-cta-locked{background:var(--aidc-btn-secondary-bg)!important;border-color:var(--aidc-border-default)!important;color:var(--aidc-text-muted)!important;box-shadow:none!important}

body .ms-shell .ms-divider::before,
body .ms-shell .ms-divider::after{background:var(--aidc-border-subtle)}
body .ms-shell .ms-divider__label{color:var(--aidc-text-muted)}

html[data-aidc-color-mode="light"] body .ms-shell .ms-label,
html[data-aidc-color-mode="light"] body .ms-shell .ms-subtext,
html[data-aidc-color-mode="light"] body .ms-shell .ms-academy{
  color:var(--aidc-text-secondary)!important
}

html[data-aidc-color-mode="light"] body .ms-shell .ms-cta{
  background:var(--aidc-btn-primary-bg)!important;
  border-color:var(--aidc-btn-primary-border)!important;
  color:var(--aidc-btn-primary-text)!important;
  box-shadow:var(--aidc-btn-primary-shadow)!important;
  filter:none!important
}
html[data-aidc-color-mode="light"] body .ms-shell .ms-cta:hover:not(:disabled){
  background:var(--aidc-btn-primary-bg-hover)!important;
  border-color:var(--aidc-btn-primary-border-hover)!important;
  color:var(--aidc-btn-primary-text)!important;
  box-shadow:none!important;
  filter:none!important
}



/* Runtime-owned Model Settings surfaces.
   Static .ms-shell controls are owned by model-settings-theme.css. This adapter
   covers DOM/styles created dynamically by model runtimes and media editors so
   those surfaces consume the same semantic theme contract in browser + WebApp. */

/* Legacy H3 runtime still maintains its historical price node for backwards
   compatibility, but it is no longer a visual owner. Hiding it at stylesheet
   parse time removes the page-load flash before the authoritative reference
   pricing runtime is mounted. */
body .ms-h3-live-price {
  display: none !important;
}

/* Single visual owner for H3 pricing. */
body .ms-h3-reference-price {
  margin-top: 10px;
  padding: 10px 12px;
  border: 1px solid var(--aidc-border-default) !important;
  border-radius: 10px;
  background: var(--aidc-bg-card) !important;
  color: var(--aidc-text-secondary) !important;
  box-shadow: none !important;
  font-size: 13px;
  line-height: 1.45;
  -webkit-text-fill-color: var(--aidc-text-secondary) !important;
}
body .ms-h3-reference-price[hidden] {
  display: none !important;
}
body .ms-h3-reference-price__total {
  color: var(--aidc-text-primary) !important;
  -webkit-text-fill-color: var(--aidc-text-primary) !important;
  font-weight: 700;
  line-height: 1.4;
}
body .ms-h3-reference-price__breakdown,
body .ms-h3-reference-price__rules {
  display: grid;
  gap: 4px;
  margin-top: 8px;
}
body .ms-h3-reference-price__breakdown {
  padding: 8px 9px;
  border: 1px solid var(--aidc-border-subtle);
  border-radius: var(--aidc-radius-control);
  background: var(--aidc-bg-elevated);
  color: var(--aidc-text-secondary) !important;
  -webkit-text-fill-color: var(--aidc-text-secondary) !important;
}
body .ms-h3-reference-price__breakdown strong,
body .ms-h3-reference-price__rules strong {
  color: var(--aidc-text-primary) !important;
  -webkit-text-fill-color: var(--aidc-text-primary) !important;
}
body .ms-h3-reference-price__rules {
  padding-top: 8px;
  border-top: 1px solid var(--aidc-border-subtle);
  color: var(--aidc-text-secondary) !important;
  -webkit-text-fill-color: var(--aidc-text-secondary) !important;
  font-size: 12px;
  line-height: 1.45;
}

/* Guest settings contains one legacy inline #aaa hint. Keep its hierarchy
   explicit instead of relying on a dark-only literal. */
body .ms-shell .ms-guest-stub > div:first-child {
  color: var(--aidc-text-primary) !important;
  -webkit-text-fill-color: var(--aidc-text-primary) !important;
}
body .ms-shell .ms-guest-stub > div:last-child {
  color: var(--aidc-text-secondary) !important;
  -webkit-text-fill-color: var(--aidc-text-secondary) !important;
}

/* Shared Seedance/H3 audio-video clip editor is generated at runtime. The JS
   keeps geometry and playback behaviour; theme surfaces, borders and text are
   normalized here through design tokens. */
body .seedance-audio-editor {
  background: var(--aidc-backdrop) !important;
  color: var(--aidc-text-primary) !important;
}
body .seedance-audio-editor .seedance-audio-editor__panel {
  background: var(--aidc-bg-modal) !important;
  border-color: var(--aidc-border-default) !important;
  color: var(--aidc-text-primary) !important;
  box-shadow: var(--aidc-shadow-modal) !important;
}
body .seedance-audio-editor .seedance-audio-editor__panel h3,
body .seedance-audio-editor .seedance-audio-editor__field label {
  color: var(--aidc-text-primary) !important;
  -webkit-text-fill-color: var(--aidc-text-primary) !important;
}
body .seedance-audio-editor .seedance-audio-editor__panel p {
  color: var(--aidc-text-secondary) !important;
  -webkit-text-fill-color: var(--aidc-text-secondary) !important;
}
body .seedance-audio-editor audio,
body .seedance-audio-editor video {
  background: var(--aidc-media-overlay-bg) !important;
  border: 1px solid var(--aidc-media-overlay-border);
  border-radius: var(--aidc-radius-control);
}
body .seedance-audio-editor .seedance-audio-editor__number {
  background: var(--aidc-bg-elevated) !important;
  border-color: var(--aidc-border-default) !important;
  color: var(--aidc-text-primary) !important;
  -webkit-text-fill-color: var(--aidc-text-primary) !important;
  border-radius: var(--aidc-radius-control);
}
body .seedance-audio-editor .seedance-audio-editor__number:focus {
  border-color: var(--aidc-action-focus) !important;
  box-shadow: 0 0 0 3px var(--aidc-action-focus-ring) !important;
  outline: none !important;
}
body .seedance-audio-editor input[type="range"] {
  accent-color: var(--aidc-action-primary-from);
}
body .seedance-audio-editor .seedance-audio-editor__summary {
  background: var(--aidc-bg-card) !important;
  border: 1px solid var(--aidc-border-subtle);
  border-radius: var(--aidc-radius-control);
  color: var(--aidc-text-secondary) !important;
  -webkit-text-fill-color: var(--aidc-text-secondary) !important;
}
body .seedance-audio-editor .seedance-audio-editor__confirm {
  background: var(--aidc-btn-primary-bg) !important;
  border-color: var(--aidc-btn-primary-border) !important;
  color: var(--aidc-btn-primary-text) !important;
  -webkit-text-fill-color: var(--aidc-btn-primary-text) !important;
  border-radius: var(--aidc-radius-button);
  box-shadow: var(--aidc-btn-primary-shadow) !important;
}
body .seedance-audio-editor .seedance-audio-editor__confirm:hover:not(:disabled) {
  background: var(--aidc-btn-primary-bg-hover) !important;
  border-color: var(--aidc-btn-primary-border-hover) !important;
}
body .seedance-audio-editor .seedance-audio-editor__cancel {
  background: var(--aidc-btn-secondary-bg) !important;
  border-color: var(--aidc-btn-secondary-border) !important;
  color: var(--aidc-text-secondary) !important;
  -webkit-text-fill-color: var(--aidc-text-secondary) !important;
  border-radius: var(--aidc-radius-button);
}
body .seedance-audio-editor .seedance-audio-editor__cancel:hover {
  background: var(--aidc-btn-secondary-bg-hover) !important;
  border-color: var(--aidc-border-strong) !important;
  color: var(--aidc-text-primary) !important;
  -webkit-text-fill-color: var(--aidc-text-primary) !important;
}

/* In light mode helper copy must never retain legacy low-contrast pale text. */
html[data-aidc-color-mode="light"] body .ms-h3-reference-price,
html[data-aidc-color-mode="light"] body .seedance-audio-editor :where(p,.seedance-audio-editor__summary) {
  color: var(--aidc-text-secondary) !important;
  -webkit-text-fill-color: var(--aidc-text-secondary) !important;
  opacity: 1 !important;
}


/* Kling O3 standalone multi-shot editor. Provider semantics stay in its JS
   module; these rules only reuse the canonical ModelSettings visual tokens. */
body .ms-kling-o3-shots{
  margin-top:12px;
  padding:12px;
  border:1px solid var(--aidc-border-subtle);
  border-radius:var(--aidc-radius-md,12px);
  background:var(--aidc-bg-elevated);
  color:var(--aidc-text-primary);
}
body .ms-kling-o3-shots[hidden]{display:none!important}
body .ms-kling-o3-shots__head{display:flex;flex-direction:column;gap:3px;margin-bottom:10px}
body .ms-kling-o3-shots__title{font-weight:650;font-size:13px}
body .ms-kling-o3-shots__hint{font-size:12px;color:var(--aidc-text-muted)}
body .ms-kling-o3-shots__list{display:flex;flex-direction:column;gap:8px}
body .ms-kling-o3-shot{
  display:grid;
  grid-template-columns:28px minmax(0,1fr) 76px 32px;
  gap:8px;
  align-items:center;
}
body .ms-kling-o3-shot__number{
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  border-radius:999px;
  background:var(--aidc-bg-subtle);
  color:var(--aidc-text-secondary);
  font-size:12px;
}
body .ms-kling-o3-shot__prompt{min-width:0;width:100%}
body .ms-kling-o3-shot__duration{width:76px}
body .ms-kling-o3-shot__remove{
  width:32px;
  height:32px;
  border:1px solid var(--aidc-border-subtle);
  border-radius:8px;
  background:transparent;
  color:var(--aidc-text-secondary);
  cursor:pointer;
  font-size:20px;
  line-height:1;
}
body .ms-kling-o3-shot__remove:disabled{opacity:.4;cursor:default}
body .ms-kling-o3-shots__footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-top:10px;
}
body .ms-kling-o3-shots__status{font-size:12px;color:var(--aidc-status-warning-text)}
body .ms-kling-o3-shots__status[data-valid="1"]{color:var(--aidc-status-success-text)}
@media (max-width:640px){
  body .ms-kling-o3-shot{grid-template-columns:24px minmax(0,1fr) 68px 30px;gap:6px}
  body .ms-kling-o3-shot__number{width:24px;height:24px}
  body .ms-kling-o3-shot__duration{width:68px}
  body .ms-kling-o3-shots__footer{align-items:flex-start;flex-direction:column}
}


/* Kling O3 Elements — standalone provider UI on shared ModelSettings tokens. */
body .ms-kling-o3-elements{
  margin-top:12px;
  padding:12px;
  border:1px solid var(--aidc-border-subtle);
  border-radius:var(--aidc-radius-md,12px);
  background:var(--aidc-bg-elevated);
  color:var(--aidc-text-primary);
}
body .ms-kling-o3-elements[hidden]{display:none!important}
body .ms-kling-o3-elements__head{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:stretch;
  gap:6px 8px;
  margin-bottom:10px;
}
body .ms-kling-o3-elements__title{grid-column:1/-1;font-size:13px;font-weight:650}
body .ms-kling-o3-elements__head > .ms-chip{white-space:nowrap;align-self:stretch}
body .ms-kling-o3-elements__head > .ms-kling-o3-elements__hint{min-width:0;margin:0;display:flex;align-items:center}
body .ms-kling-o3-elements__guide{
  width:100%;
  margin-bottom:10px;
  padding:10px;
  text-align:left;
  cursor:pointer;
  border:1px solid var(--aidc-border-subtle);
  border-radius:var(--aidc-radius-control);
  background:var(--aidc-bg-card);
  color:var(--aidc-text-primary);
  font-size:13px;
  line-height:1.5;
  font-weight:650;
}
body .ms-kling-o3-elements__guide:focus-visible{
  outline:2px solid var(--aidc-action-focus);
  outline-offset:2px;
  border-radius:var(--aidc-radius-control);
}
body .ms-kling-o3-elements__guide-dialog{
  width:min(720px,calc(100% - 32px));
  max-width:none;
  max-height:calc(100dvh - 32px);
  padding:0;
  margin:auto;
  box-sizing:border-box;
  overflow:hidden;
  border:1px solid var(--aidc-border-default);
  border-radius:var(--aidc-radius-control);
  background:var(--aidc-bg-modal);
  color:var(--aidc-text-primary);
  box-shadow:var(--aidc-shadow-modal);
}
body .ms-kling-o3-elements__guide-dialog[open]{display:flex;flex-direction:column}
body .ms-kling-o3-elements__guide-dialog::backdrop{background:var(--aidc-backdrop)}
body .ms-kling-o3-elements__guide-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:16px 20px;
  border-bottom:1px solid var(--aidc-border-subtle);
}
body .ms-kling-o3-elements__guide-heading h2{margin:0;font-size:20px;line-height:1.3}
body .ms-kling-o3-elements__guide-heading .ms-kling-o3-element__remove{width:36px;height:36px;flex-basis:36px}
body .ms-kling-o3-elements__guide-body{padding:20px;overflow:auto;overflow-wrap:anywhere;font-size:15px;line-height:1.6}
body .ms-kling-o3-elements__guide-body p{margin:0 0 10px}
body .ms-kling-o3-elements__guide-body p:last-child{margin-bottom:0}
body .ms-kling-o3-elements__guide-body ol{margin:0 0 10px;padding-left:20px}
body .ms-kling-o3-elements__guide-body li + li{margin-top:6px}
body .ms-kling-o3-elements__guide-body blockquote{
  margin:0 0 10px;
  padding:8px 10px;
  border-left:2px solid var(--aidc-action-focus);
  background:var(--aidc-bg-subtle);
}
body .ms-kling-o3-elements__hint,
body .ms-kling-o3-elements__empty,
body .ms-kling-o3-element__assets{
  color:var(--aidc-text-muted);
  font-size:12px;
  line-height:1.4;
}
body .ms-kling-o3-elements__list{display:flex;flex-direction:column;gap:10px}
body .ms-kling-o3-element{
  padding:10px;
  border:1px solid var(--aidc-border-subtle);
  border-radius:10px;
  background:var(--aidc-bg-subtle);
}
body .ms-kling-o3-element__top,
body .ms-kling-o3-element__row{
  display:flex;
  align-items:center;
  gap:8px;
}
body .ms-kling-o3-element__top{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) var(--ms-control-h);
  align-items:stretch;
  margin-bottom:8px;
}
body .ms-kling-o3-element__top > :is(.ms-input,.ms-chip){height:var(--ms-control-h);min-height:var(--ms-control-h);margin:0;min-width:0}
body .ms-kling-o3-elements .ms-kling-o3-element__insert{flex-direction:column;overflow:hidden;padding:2px 6px;font-size:12px;line-height:1.1}
body .ms-kling-o3-element__insert > span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body .ms-kling-o3-element__row{margin-top:8px;align-items:stretch;flex-wrap:wrap}
body .ms-kling-o3-element__name{min-width:0;flex:1 1 180px}
body .ms-kling-o3-elements .ms-input,
body .ms-kling-o3-elements .ms-select,
body .ms-kling-o3-elements .ms-chip,
body .ms-kling-o3-elements .ms-kling-o3-element__action{
  min-height:var(--ms-control-h);
  box-sizing:border-box;
}
body .ms-kling-o3-elements .ms-chip,
body .ms-kling-o3-elements .ms-kling-o3-element__action{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--aidc-btn-secondary-border);
  border-radius:10px;
  background:var(--aidc-btn-secondary-bg);
  color:var(--aidc-text-primary);
  -webkit-text-fill-color:var(--aidc-text-primary);
  box-shadow:none;
  line-height:1.2;
}
body .ms-kling-o3-elements .ms-chip:hover,
body .ms-kling-o3-elements .ms-kling-o3-element__action:hover{
  border-color:var(--aidc-border-strong);
  background:var(--aidc-btn-secondary-bg-hover);
}
body .ms-kling-o3-element__row > .ms-select,
body .ms-kling-o3-element__row > .ms-kling-o3-element__action{
  flex:1 1 150px;
  height:var(--ms-control-h);
}
body .ms-kling-o3-element__description{
  width:100%;
  resize:vertical;
  font-family:inherit;
  line-height:1.45;
}
body .ms-kling-o3-element__assets{
  white-space:normal;
}
body .ms-kling-o3-element__assets-frame{margin-top:6px;min-width:0}
body .ms-kling-o3-element__asset{
  display:inline-flex;
  align-items:center;
  gap:5px;
  min-width:0;
  max-width:100%;
  padding:3px 4px 3px 8px;
  border:1px solid var(--aidc-border-subtle);
  border-radius:8px;
  background:var(--aidc-bg-card);
}
body .ms-kling-o3-element__asset-label{
  min-width:0;
  max-width:180px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body .ms-kling-o3-element__asset-preview{flex:0 0 26px}
body .ms-kling-o3-element__remove{
  width:var(--ms-control-h);
  height:var(--ms-control-h);
  flex:0 0 var(--ms-control-h);
  border:1px solid var(--aidc-border-subtle);
  border-radius:8px;
  background:transparent;
  color:var(--aidc-text-secondary);
  cursor:pointer;
  font-size:20px;
  line-height:1;
}
@media (max-width:640px){
  body .ms-kling-o3-element__row .ms-kling-o3-element__action{width:100%}
}

body .ms-kling-o3-element__clip{
  margin-top:8px;
  padding:8px;
  border:1px solid var(--aidc-border-subtle);
  border-radius:8px;
}
body .ms-kling-o3-element__clip-label{
  margin-bottom:6px;
  font-size:12px;
  color:var(--aidc-text-muted);
}
body .ms-kling-o3-element__clip-fields{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}
body .ms-kling-o3-element__clip-fields label{
  display:flex;
  flex-direction:column;
  gap:4px;
  font-size:11px;
  color:var(--aidc-text-secondary);
}
body .ms-kling-o3-element__clip[data-valid="0"]{
  border-color:var(--aidc-status-warning-border,var(--aidc-border-subtle));
}
@media (max-width:640px){
  body .ms-kling-o3-element__clip-fields{grid-template-columns:1fr}
}


body .ms-kling-o3-price{
  margin-top:10px;
  padding:10px 12px;
  border:1px solid var(--aidc-border-subtle);
  border-radius:10px;
  background:var(--aidc-bg-elevated);
  color:var(--aidc-text-secondary);
  font-size:13px;
  line-height:1.45;
}
body .ms-kling-o3-price[hidden]{display:none!important}



/* Generation panel visual adapter.
   Layout and responsive behavior stay in generation-panel.css.
*/

body .generation-panel {
  background: var(--aidc-bg-generator-shell) !important;
  border-color: var(--aidc-border-subtle);
  box-shadow: var(--aidc-shadow-popover);
}

body .generation-panel .generation-panel__header h2 {
  color: var(--aidc-text-primary);
}

body .generation-panel .genprep-tabs {
  border-bottom-color: var(--aidc-border-subtle);
}

body .generation-panel .genprep-tab {
  background: var(--aidc-btn-secondary-bg);
  border-color: var(--aidc-border-default);
  color: var(--aidc-text-secondary);
  box-shadow: none;
}

body .generation-panel .genprep-tab:hover {
  background: var(--aidc-btn-secondary-bg-hover);
  border-color: var(--aidc-border-strong);
  color: var(--aidc-text-primary);
}

body .generation-panel .genprep-tab.is-active {
  background: color-mix(in srgb,var(--aidc-action-primary-from) 12%,transparent);
  border-color: color-mix(in srgb,var(--aidc-action-primary-from) 36%,transparent);
  color: var(--aidc-text-primary);
  box-shadow: none;
}

body .generation-panel .genprep-tab:focus-visible {
  box-shadow: 0 0 0 3px var(--aidc-action-focus-ring);
}

body .generation-panel .generation-panel__content {
  scrollbar-color: var(--aidc-border-default) transparent;
}

body .generation-panel .generation-panel__content::-webkit-scrollbar-thumb {
  background: var(--aidc-border-default);
}

body .genprep-refs-drawer {
  background: var(--aidc-bg-generator-shell);
  color: var(--aidc-text-primary);
  border-color: var(--aidc-border-default);
  box-shadow: var(--aidc-shadow-popover);
}
body .genprep-refs-drawer > .genprep-panel { scrollbar-color: var(--aidc-border-default) transparent; }
body .genprep-submit-status {
  background: var(--aidc-bg-elevated);
  color: var(--aidc-text-primary);
  border-color: var(--aidc-border-strong);
}
body .genprep-refs-drawer__close,
body .genprep-collapse-btn {
  background: var(--aidc-btn-secondary-bg);
  color: var(--aidc-text-secondary);
  border-color: var(--aidc-border-default);
}
body .genprep-refs-drawer__close:hover,
body .genprep-collapse-btn:hover {
  background: var(--aidc-btn-secondary-bg-hover);
  color: var(--aidc-text-primary);
}
body .genprep-refs-drawer__close:focus-visible { box-shadow: 0 0 0 3px var(--aidc-action-focus-ring); }
body .genprep-collapse-btn:focus-visible { box-shadow: 0 0 0 3px var(--aidc-action-focus-ring); }



/* Smart Prompt visual adapter.
   Higher specificity keeps theme ownership when module CSS loads later.
*/

body .sp-backdrop { background: var(--aidc-backdrop) !important; }

body .sp-modal {
  background: var(--aidc-bg-modal) !important;
  border-color: var(--aidc-border-default) !important;
  box-shadow: var(--aidc-shadow-modal) !important;
  color: var(--aidc-text-primary) !important;
}

body .sp-header {
  background: var(--aidc-bg-modal) !important;
  border-bottom-color: var(--aidc-border-subtle) !important;
}

body .sp-header__title,
body .sp-preset__name { color: var(--aidc-text-primary) !important; }

body .sp-header__close {
  background: var(--aidc-btn-secondary-bg) !important;
  border-color: var(--aidc-border-default) !important;
  color: var(--aidc-text-secondary) !important;
}
body .sp-header__close:hover {
  background: var(--aidc-btn-secondary-bg-hover) !important;
  border-color: var(--aidc-border-strong) !important;
  color: var(--aidc-text-primary) !important;
}

body .sp-tab,
body .sp-chip {
  background: var(--aidc-btn-secondary-bg) !important;
  border-color: var(--aidc-border-default) !important;
  color: var(--aidc-text-secondary) !important;
  box-shadow: none !important;
}

body .sp-tab:hover,
body .sp-chip:hover {
  background: var(--aidc-btn-secondary-bg-hover) !important;
  border-color: var(--aidc-border-strong) !important;
  color: var(--aidc-text-primary) !important;
}

body .sp-tab.is-active,
body .sp-chip.is-selected {
  background: var(--aidc-workspace-selection-bg) !important;
  border-color: var(--aidc-workspace-selection-border) !important;
  color: var(--aidc-action-primary-to) !important;
  box-shadow: none !important;
}

body .sp-tab__badge {
  background: var(--aidc-btn-secondary-bg-hover) !important;
  color: var(--aidc-text-secondary) !important;
}
body .sp-tab.is-active .sp-tab__badge {
  background: color-mix(in srgb,var(--aidc-action-primary-from) 14%,var(--aidc-bg-card) 86%) !important;
  color: var(--aidc-action-primary-to) !important;
}

body .sp-preset {
  background: var(--aidc-bg-card) !important;
  border-color: var(--aidc-border-default) !important;
  color: var(--aidc-text-secondary) !important;
  box-shadow: none !important;
}
body .sp-preset:hover {
  background: var(--aidc-bg-popover) !important;
  border-color: var(--aidc-border-strong) !important;
}
body .sp-preset.is-selected {
  background: color-mix(in srgb,var(--aidc-action-primary-from) 8%,var(--aidc-bg-card) 92%) !important;
  border-color: var(--aidc-workspace-selection-border) !important;
  box-shadow: inset 0 0 0 1px color-mix(in srgb,var(--aidc-action-primary-from) 12%,transparent) !important;
}

body .sp-section-title,
body .sp-custom-input__label { color: var(--aidc-text-secondary) !important; }
body .sp-preset__prompt,
body .sp-preset__desc { color: var(--aidc-text-secondary) !important; }
body .sp-preset__effect { color: var(--aidc-action-primary-to) !important; }

body .sp-custom-input,
body .sp-footer,
body .sp-actions,
body .sp-compose,
body .sp-composer {
  background: var(--aidc-bg-panel) !important;
  border-color: var(--aidc-border-default) !important;
  color: var(--aidc-text-secondary) !important;
}
body .sp-custom-input__field,
body .sp-modal textarea,
body .sp-modal input[type="text"],
body .sp-modal input[type="search"] {
  background: var(--aidc-bg-elevated) !important;
  border-color: var(--aidc-border-strong) !important;
  color: var(--aidc-text-primary) !important;
}
body .sp-custom-input__field::placeholder,
body .sp-modal textarea::placeholder,
body .sp-modal input::placeholder { color: var(--aidc-text-muted) !important; }
body .sp-custom-input__field:focus,
body .sp-modal textarea:focus,
body .sp-modal input:focus {
  border-color: var(--aidc-action-focus) !important;
  box-shadow: 0 0 0 3px var(--aidc-action-focus-ring) !important;
  outline: none !important;
}

body .sp-chip--negative.is-selected {
  background: var(--aidc-status-danger-bg) !important;
  border-color: var(--aidc-action-danger-border) !important;
  color: var(--aidc-red-500) !important;
}

body .sp-custom-chip {
  background: var(--aidc-workspace-selection-bg) !important;
  border-color: var(--aidc-workspace-selection-border) !important;
  color: var(--aidc-action-primary-to) !important;
}
body .sp-custom-chip__remove {
  background: var(--aidc-btn-secondary-bg) !important;
  color: var(--aidc-text-muted) !important;
}
body .sp-custom-chip__remove:hover {
  background: var(--aidc-status-danger-bg) !important;
  color: var(--aidc-red-500) !important;
}

/* Runtime implementations have used several names for the final apply button.
   Keep the visual contract semantic rather than depending on one version. */
body .sp-modal :where(
  .sp-apply,
  .sp-submit,
  .sp-add-to-prompt,
  .sp-actions__primary,
  button[type="submit"],
  button[data-action="apply"],
  button[data-action="add-to-prompt"]
) {
  background: linear-gradient(135deg,var(--aidc-action-primary-from),var(--aidc-action-primary-to)) !important;
  border: 1px solid transparent !important;
  color: var(--aidc-text-inverse) !important;
  box-shadow: 0 0 16px var(--aidc-action-primary-glow) !important;
}

html[data-aidc-color-mode="light"] body .sp-modal :where(
  .sp-apply,
  .sp-submit,
  .sp-add-to-prompt,
  .sp-actions__primary,
  button[type="submit"],
  button[data-action="apply"],
  button[data-action="add-to-prompt"]
) {
  background: color-mix(in srgb,var(--aidc-action-primary-from) 9%,var(--aidc-bg-card) 91%) !important;
  border-color: color-mix(in srgb,var(--aidc-action-primary-from) 58%,transparent) !important;
  color: var(--aidc-action-primary-to) !important;
  box-shadow: none !important;
}

body .sp-modal button:disabled,
body .sp-modal [aria-disabled="true"] {
  background: var(--aidc-btn-secondary-bg) !important;
  border-color: var(--aidc-border-default) !important;
  color: var(--aidc-text-muted) !important;
  box-shadow: none !important;
  opacity: .58 !important;
}


/* Shared Smart Prompt color contract — everything below consumes the
   application palette and therefore updates when Theme Settings publishes
   new colors or the user switches between dark and light modes.
   The modal and example gallery are siblings appended directly to <body>.
   Keep the higher specificity and !important: legacy smart-prompt.css is
   also injected lazily after the route adapter on desktop. */

/* Main Smart Prompt: remaining legacy labels/actions/footer surfaces. */
body .sp-modal .sp-tabs-wrap,
body .sp-modal .sp-tabs,
body .sp-modal .sp-body {
  background: var(--aidc-bg-modal) !important;
  color: var(--aidc-text-primary) !important;
}
body .sp-modal .sp-section-title,
body .sp-modal .sp-footer__preview-label,
body .sp-modal .sp-custom-input__hint,
body .sp-modal .sp-hints,
body .sp-modal .sp-hints strong {
  color: var(--aidc-text-secondary) !important;
}
body .sp-modal .sp-footer__negative-label {
  color: var(--aidc-red-500) !important;
}
body .sp-modal .sp-hints {
  background: var(--aidc-bg-card) !important;
  border-color: var(--aidc-border-default) !important;
}
/* Secondary example links use the system's cyan, visibly different from the
   pink effect description. A small mix with the active text tone guarantees
   readable contrast on both dark and light Smart Prompt cards. */
body .sp-modal .sp-preset__examples,
body .sp-modal .sp-preset__examples:hover,
body .sp-modal .sp-preset__examples:focus-visible {
  color: color-mix(in srgb, var(--aidc-cyan-500) 84%, var(--aidc-text-primary) 16%) !important;
  -webkit-text-fill-color: color-mix(in srgb, var(--aidc-cyan-500) 84%, var(--aidc-text-primary) 16%) !important;
}
body .sp-modal .sp-preset__examples:hover,
body .sp-modal .sp-preset__examples:focus-visible {
  text-decoration: underline;
}
body .sp-modal .sp-lang-toggle {
  background: var(--aidc-btn-secondary-bg) !important;
  border: 1px solid var(--aidc-border-default);
}
body .sp-modal .sp-lang-toggle__btn {
  background: transparent !important;
  color: var(--aidc-text-secondary) !important;
}
body .sp-modal .sp-lang-toggle__btn:hover,
body .sp-modal .sp-lang-toggle__btn:focus-visible {
  color: var(--aidc-text-primary) !important;
  background: var(--aidc-btn-secondary-bg-hover) !important;
}
body .sp-modal .sp-lang-toggle__btn.is-active {
  color: var(--aidc-text-primary) !important;
  background: var(--aidc-bg-card) !important;
}
body .sp-modal .sp-footer__preview,
body .sp-modal .sp-footer__negative-preview {
  background: var(--aidc-bg-elevated) !important;
  border-color: var(--aidc-border-default) !important;
  color: var(--aidc-text-primary) !important;
}
body .sp-modal .sp-footer__preview::placeholder,
body .sp-modal .sp-footer__negative-preview::placeholder {
  color: var(--aidc-text-muted) !important;
}
body .sp-modal .sp-footer__actions .sp-btn--ghost {
  background: var(--aidc-btn-secondary-bg) !important;
  border-color: var(--aidc-btn-secondary-border) !important;
  color: var(--aidc-text-primary) !important;
}
/* Disabled controls remain legible, but cannot be mistaken for active CTAs. */
body .sp-modal .sp-footer__actions .sp-btn--primary:disabled {
  background: var(--aidc-btn-disabled-bg) !important;
  border: 1px solid var(--aidc-btn-disabled-border) !important;
  color: var(--aidc-btn-disabled-text) !important;
  opacity: 1 !important;
}
body .sp-modal .sp-footer__actions .sp-btn--primary:not(:disabled) {
  background: var(--aidc-btn-primary-bg) !important;
  border: 1px solid var(--aidc-btn-primary-border) !important;
  color: var(--aidc-btn-primary-text) !important;
}
body .sp-modal .sp-footer__actions .sp-btn--primary:not(:disabled):hover {
  background: var(--aidc-btn-primary-bg-hover) !important;
  border-color: var(--aidc-btn-primary-border-hover) !important;
}
body.tg .sp-modal .sp-footer {
  background: var(--aidc-bg-panel) !important;
  border-top-color: var(--aidc-border-default) !important;
}
body.tg .sp-tabs-arrow {
  background: var(--aidc-bg-popover) !important;
  border-color: var(--aidc-border-default) !important;
  color: var(--aidc-text-primary) !important;
}
body.tg .sp-tabs-arrow:active {
  background: var(--aidc-btn-secondary-bg-hover) !important;
}

/* All "View examples" galleries, including Photographers.
   A gallery is not a media lightbox: its chrome, sidebar, empty states and
   captions should reflect the selected application color mode. */
body .spg-backdrop {
  background: var(--aidc-backdrop) !important;
}
body .spg-panel {
  background: var(--aidc-bg-modal) !important;
  border-color: var(--aidc-border-default) !important;
  color: var(--aidc-text-primary) !important;
  box-shadow: var(--aidc-shadow-modal) !important;
}
body .spg-header,
body .spg-grid {
  background: var(--aidc-bg-modal) !important;
  color: var(--aidc-text-primary) !important;
}
body .spg-header {
  border-bottom-color: var(--aidc-border-subtle) !important;
}
body .spg-header__title,
body .spg-sidebar__name {
  color: var(--aidc-text-primary) !important;
  -webkit-text-fill-color: var(--aidc-text-primary) !important;
}
body .spg-header__subtitle,
body .spg-sidebar__meta,
body .spg-sidebar__bio,
body .spg-sidebar__text,
body .spg-loading,
body .spg-empty__text,
body .spg-empty__hint {
  color: var(--aidc-text-secondary) !important;
  -webkit-text-fill-color: var(--aidc-text-secondary) !important;
  opacity: 1 !important;
}
body .spg-sidebar__label {
  color: var(--aidc-text-muted) !important;
  -webkit-text-fill-color: var(--aidc-text-muted) !important;
}
body .spg-header__close {
  background: var(--aidc-btn-secondary-bg) !important;
  border-color: var(--aidc-btn-secondary-border) !important;
  color: var(--aidc-text-primary) !important;
}
body .spg-header__close:hover,
body .spg-header__close:focus-visible {
  background: var(--aidc-btn-secondary-bg-hover) !important;
  border-color: var(--aidc-border-strong) !important;
  color: var(--aidc-text-primary) !important;
}
body .spg-sidebar {
  background: var(--aidc-bg-panel) !important;
  border-left-color: var(--aidc-border-default) !important;
  border-top-color: var(--aidc-border-default) !important;
  color: var(--aidc-text-primary) !important;
}
body .spg-sidebar__style {
  background: var(--aidc-workspace-selection-bg) !important;
  border-color: var(--aidc-workspace-selection-border) !important;
  color: var(--aidc-action-primary-to) !important;
  -webkit-text-fill-color: var(--aidc-action-primary-to) !important;
}
body .spg-sidebar__tag {
  background: var(--aidc-bg-card) !important;
  border-color: var(--aidc-border-default) !important;
  color: var(--aidc-text-secondary) !important;
}
body .spg-sidebar__source,
body .spg-sidebar__source:hover,
body .spg-sidebar__source:focus-visible {
  color: var(--aidc-action-primary-to) !important;
  -webkit-text-fill-color: var(--aidc-action-primary-to) !important;
}
body .spg-sidebar__source:hover,
body .spg-sidebar__source:focus-visible {
  text-decoration: underline;
}
body .spg-item {
  background: var(--aidc-bg-card) !important;
  border-color: var(--aidc-border-default) !important;
  box-shadow: none !important;
}
body .spg-item:hover,
body .spg-item:focus-visible {
  border-color: var(--aidc-workspace-selection-border) !important;
}
body .spg-empty__icon {
  color: var(--aidc-text-muted) !important;
  opacity: 1 !important;
}
body .spg-grid,
body .spg-sidebar,
body .sp-modal .sp-body {
  scrollbar-color: var(--aidc-scrollbar-thumb) var(--aidc-scrollbar-track);
}
body :is(.spg-grid, .spg-sidebar, .sp-body)::-webkit-scrollbar-thumb {
  background: var(--aidc-scrollbar-thumb) !important;
}
/* Images and videos keep their own high-contrast overlays and fullscreen
   lightbox treatment so neither theme can wash out the media itself. */



body .spt-modal__backdrop{background:var(--aidc-backdrop)}
body .spt-modal__dialog{background:var(--aidc-bg-modal);border-color:var(--aidc-border-default);box-shadow:var(--aidc-shadow-modal);color:var(--aidc-text-primary)}
body .spt-modal__header,body .spt-modal__footer{border-color:var(--aidc-border-subtle)}
body .spt-modal__title{color:var(--aidc-text-primary)}
body .spt-modal__close{background:transparent;color:var(--aidc-text-muted)}
body .spt-modal__close:hover{background:var(--aidc-btn-secondary-bg-hover);color:var(--aidc-text-primary)}
body .spt-modal__label{color:var(--aidc-text-muted)}
body .spt-modal__input,body .spt-modal__textarea{background:var(--aidc-bg-elevated);border-color:var(--aidc-border-default);color:var(--aidc-text-primary)}
body .spt-modal__input::placeholder,body .spt-modal__textarea::placeholder{color:var(--aidc-text-muted)}
body .spt-modal__input:focus,body .spt-modal__textarea:focus{border-color:var(--aidc-action-focus);box-shadow:0 0 0 3px var(--aidc-action-focus-ring)}
body .spt-modal__folder-item{background:var(--aidc-btn-secondary-bg);border-color:var(--aidc-border-default);color:var(--aidc-text-secondary)}
body .spt-modal__folder-item:hover{background:var(--aidc-btn-secondary-bg-hover);border-color:var(--aidc-border-strong);color:var(--aidc-text-primary)}
body .spt-modal__folder-item.is-active{background:color-mix(in srgb,var(--aidc-action-primary-from) 12%,transparent);border-color:color-mix(in srgb,var(--aidc-action-primary-from) 36%,transparent);color:var(--aidc-text-primary)}
body .spt-modal__folder-icon{color:var(--aidc-text-muted)}
body .spt-modal__folder-item.is-active .spt-modal__folder-icon{color:var(--aidc-action-primary-from)}
body .spt-modal__create-folder{color:var(--aidc-action-primary-from)}
body .spt-modal__create-folder:hover{color:var(--aidc-action-primary-to)}
body .spt-modal__btn--ghost{background:var(--aidc-btn-secondary-bg);color:var(--aidc-text-secondary);border:1px solid var(--aidc-border-default)}
body .spt-modal__btn--ghost:hover{background:var(--aidc-btn-secondary-bg-hover);color:var(--aidc-text-primary)}
body .spt-modal__btn--primary{background:linear-gradient(135deg,var(--aidc-action-primary-from),var(--aidc-action-primary-to));color:var(--aidc-text-inverse);box-shadow:0 0 16px var(--aidc-action-primary-glow)}
body .spt-modal__btn--primary:hover{filter:brightness(1.08)}




/* Platform-wide modal/popover visual contract.
   Geometry stays with each component; this file owns semantic surfaces,
   text contrast and control states for overlays rendered anywhere in the app. */

:where(
  .aidc-dialog,
  .aidc-cdlg__panel,
  .aidc-rp-panel,
  .catalog-picker-dialog,
  .tplpk-modal__dialog,
  .tree-modal,
  [data-aidc-modal-contract]
){
  --aidc-modal-surface:var(--aidc-bg-modal);
  --aidc-modal-surface-elevated:var(--aidc-bg-popover);
  --aidc-modal-text:var(--aidc-text-primary);
  --aidc-modal-text-secondary:var(--aidc-text-secondary);
  --aidc-modal-text-muted:var(--aidc-text-muted);
  --aidc-modal-border:var(--aidc-border-default);
  --aidc-modal-border-subtle:var(--aidc-border-subtle);
  --aidc-modal-control-bg:var(--aidc-btn-secondary-bg);
  --aidc-modal-control-bg-hover:var(--aidc-btn-secondary-bg-hover);
  --aidc-modal-control-border:var(--aidc-btn-secondary-border);
  --aidc-modal-control-text:var(--aidc-text-secondary);
  --aidc-modal-control-text-hover:var(--aidc-text-primary);
  color:var(--aidc-modal-text)!important;
  color-scheme:light dark;
}

:where(
  .aidc-dialog,
  .aidc-cdlg__panel,
  .aidc-rp-panel,
  .catalog-picker-dialog,
  .tplpk-modal__dialog,
  .tree-modal,
  [data-aidc-modal-contract]
) :where(h1,h2,h3,h4,strong,.modal-title,.dialog-title){
  color:var(--aidc-modal-text)!important;
  -webkit-text-fill-color:var(--aidc-modal-text)!important;
}

:where(
  .aidc-dialog,
  .aidc-cdlg__panel,
  .aidc-rp-panel,
  .catalog-picker-dialog,
  .tplpk-modal__dialog,
  .tree-modal,
  [data-aidc-modal-contract]
) :where(p,small,label,.hint,.muted,.meta){
  color:var(--aidc-modal-text-secondary)!important;
  -webkit-text-fill-color:var(--aidc-modal-text-secondary)!important;
}

/* Shared popover surfaces used by filters/calendars inside modal families. */
:where(
  .rp-dropdown__menu,
  .rp-folder-dd__menu,
  .rp-date-popover,
  .rp-project-popover,
  .tplpk-dropdown__menu,
  .tplpk-modal__date-popover,
  .tplpk-cal-panel,
  .aidc-popover,
  [data-aidc-popover-contract]
){
  background:var(--aidc-bg-popover)!important;
  border-color:var(--aidc-border-default)!important;
  color:var(--aidc-text-primary)!important;
  box-shadow:var(--aidc-shadow-popover)!important;
}

/* Calendar typography. This deliberately covers the two current calendar
   implementations so every host/modal receives identical light/dark contrast. */
:where(.rp-date-popover,.tplpk-modal__date-popover,.tplpk-cal-panel,[data-aidc-calendar])
:where(.rp-date-field-label,.cal-dow,.rp-cal-dow,.tplpk-date__row label){
  color:var(--aidc-text-muted)!important;
  -webkit-text-fill-color:var(--aidc-text-muted)!important;
  opacity:1!important;
}

:where(.rp-date-popover,.tplpk-modal__date-popover,.tplpk-cal-panel,[data-aidc-calendar])
:where(.rp-date-field-val,.rp-cal-monthyear,.cal-title){
  color:var(--aidc-text-primary)!important;
  -webkit-text-fill-color:var(--aidc-text-primary)!important;
  opacity:1!important;
}

:where(.rp-date-popover,.tplpk-cal-panel,[data-aidc-calendar])
:where(.rp-cal-day,.cal-day){
  background:transparent!important;
  border-color:var(--aidc-border-subtle)!important;
  color:var(--aidc-text-secondary)!important;
  -webkit-text-fill-color:var(--aidc-text-secondary)!important;
  opacity:1!important;
}

:where(.rp-date-popover,.tplpk-cal-panel,[data-aidc-calendar])
:where(.rp-cal-day,.cal-day):not(.muted):hover{
  background:var(--aidc-btn-secondary-bg-hover)!important;
  border-color:var(--aidc-border-strong)!important;
  color:var(--aidc-text-primary)!important;
  -webkit-text-fill-color:var(--aidc-text-primary)!important;
}

:where(.rp-date-popover,.tplpk-cal-panel,[data-aidc-calendar])
:where(.rp-cal-day,.cal-day).muted{
  color:var(--aidc-text-muted)!important;
  -webkit-text-fill-color:var(--aidc-text-muted)!important;
  opacity:.62!important;
}

:where(.rp-date-popover,.tplpk-cal-panel,[data-aidc-calendar])
:where(.rp-cal-day.today,.cal-day.today){
  color:var(--aidc-action-primary-to)!important;
  -webkit-text-fill-color:var(--aidc-action-primary-to)!important;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--aidc-action-primary-from) 45%,transparent)!important;
}

:where(.rp-date-popover,.tplpk-cal-panel,[data-aidc-calendar])
:where(.rp-cal-day.selected,.rp-cal-day.is-selected,.cal-day.selected,.cal-day.is-selected){
  background:var(--aidc-control-selected-bg)!important;
  border-color:var(--aidc-workspace-selection-border)!important;
  color:var(--aidc-text-primary)!important;
  -webkit-text-fill-color:var(--aidc-text-primary)!important;
}

:where(.rp-date-popover,.tplpk-cal-panel,[data-aidc-calendar])
:where(.rp-cal-day.in-range,.cal-day.in-range){
  background:color-mix(in srgb,var(--aidc-action-primary-from) 10%,var(--aidc-bg-popover) 90%)!important;
  color:var(--aidc-text-primary)!important;
  -webkit-text-fill-color:var(--aidc-text-primary)!important;
}

/* Secondary icon/text controls across shared modal families. */
:where(
  .aidc-rp-close,
  .rp-cal-btn,
  .rp-dropdown__trigger,
  .rp-folder-dd__trigger,
  .rp-date-reset,
  .rp-cal-nav button,
  .tplpk-modal__close,
  .tplpk-modal__date-btn,
  .tplpk-date__cal-btn,
  .tplpk-date__reset,
  .tplpk-cal-panel .cal-btn-nav,
  .catalog-picker-close,
  .catalog-picker-reset-button,
  .aidc-dialog__btn--cancel,
  .aidc-cdlg__cancel
){
  background:var(--aidc-btn-secondary-bg)!important;
  border-color:var(--aidc-btn-secondary-border)!important;
  color:var(--aidc-text-secondary)!important;
  -webkit-text-fill-color:var(--aidc-text-secondary)!important;
  box-shadow:none!important;
}

:where(
  .aidc-rp-close,
  .rp-cal-btn,
  .rp-dropdown__trigger,
  .rp-folder-dd__trigger,
  .rp-date-reset,
  .rp-cal-nav button,
  .tplpk-modal__close,
  .tplpk-modal__date-btn,
  .tplpk-date__cal-btn,
  .tplpk-date__reset,
  .tplpk-cal-panel .cal-btn-nav,
  .catalog-picker-close,
  .catalog-picker-reset-button,
  .aidc-dialog__btn--cancel,
  .aidc-cdlg__cancel
):hover{
  background:var(--aidc-btn-secondary-bg-hover)!important;
  border-color:var(--aidc-border-strong)!important;
  color:var(--aidc-text-primary)!important;
  -webkit-text-fill-color:var(--aidc-text-primary)!important;
}

/* Primary modal actions use the quiet primary tokens in light mode and the
   branded gradient in dark mode. */
:where(.rp-date-apply,.tplpk-date__apply,.aidc-rp-confirm,.aidc-dialog__btn--ok,.aidc-cdlg__ok){
  background:linear-gradient(135deg,var(--aidc-action-primary-from),var(--aidc-action-primary-to))!important;
  border-color:transparent!important;
  color:var(--aidc-text-inverse)!important;
  -webkit-text-fill-color:var(--aidc-text-inverse)!important;
}

html[data-aidc-color-mode="light"] :where(.rp-date-apply,.tplpk-date__apply,.aidc-rp-confirm,.aidc-dialog__btn--ok,.aidc-cdlg__ok){
  background:var(--aidc-btn-primary-bg)!important;
  border-color:var(--aidc-btn-primary-border)!important;
  color:var(--aidc-btn-primary-text)!important;
  -webkit-text-fill-color:var(--aidc-btn-primary-text)!important;
  box-shadow:none!important;
}

/* Media-overlay controls should still follow the active application theme.
   In light mode use a light translucent surface and dark icon; in dark mode
   keep the inverse media chrome. */
.rp-preview-btn,
.rp-favorite-mark{
  background:var(--aidc-media-overlay-bg)!important;
  border-color:var(--aidc-media-overlay-border)!important;
  color:var(--aidc-text-on-media)!important;
  -webkit-text-fill-color:var(--aidc-text-on-media)!important;
}

html[data-aidc-color-mode="light"] .rp-preview-btn,
html[data-aidc-color-mode="light"] .rp-favorite-mark{
  background:color-mix(in srgb,var(--aidc-bg-elevated) 90%,transparent)!important;
  border-color:var(--aidc-border-strong)!important;
  color:var(--aidc-text-primary)!important;
  -webkit-text-fill-color:var(--aidc-text-primary)!important;
  box-shadow:0 2px 8px color-mix(in srgb,var(--aidc-text-primary) 12%,transparent)!important;
}

:where(.rp-preview-btn,.rp-favorite-mark) svg{color:inherit!important;fill:currentColor!important;stroke:currentColor!important}


body .tplpk-modal__backdrop{background:var(--aidc-backdrop)}
body .tplpk-modal__dialog{background:var(--aidc-bg-modal);border-color:var(--aidc-border-default);box-shadow:var(--aidc-shadow-modal);color:var(--aidc-text-primary)}
body .tplpk-modal__header,body .tplpk-modal__filters,body .tplpk-modal__date-popover,body .tplpk-modal__footer{border-color:var(--aidc-border-subtle)}
body .tplpk-modal__title{color:var(--aidc-text-primary)}

body .tplpk-modal__close,
body .tplpk-modal__date-btn,
body .tplpk-date__cal-btn,
body .tplpk-date__reset,
body .tplpk-cal-panel .cal-btn-nav,
body .tplpk-modal__view-btn,
body .tplpk-modal__btn--ghost{
  background:var(--aidc-btn-secondary-bg);
  border-color:var(--aidc-border-default);
  color:var(--aidc-text-secondary)
}

body .tplpk-modal__close:hover,
body .tplpk-modal__date-btn:hover,
body .tplpk-date__cal-btn:hover,
body .tplpk-date__reset:hover,
body .tplpk-cal-panel .cal-btn-nav:hover,
body .tplpk-modal__view-btn:hover,
body .tplpk-modal__btn--ghost:hover{
  background:var(--aidc-btn-secondary-bg-hover);
  border-color:var(--aidc-border-strong);
  color:var(--aidc-text-primary)
}

body .tplpk-modal__search,
body .tplpk-dropdown__trigger,
body .tplpk-date__input{
  background:var(--aidc-bg-elevated);
  border-color:var(--aidc-border-default);
  color:var(--aidc-text-primary)
}

body .tplpk-modal__search::placeholder,
body .tplpk-date__input::placeholder,
body .tplpk-modal__search-icon,
body .tplpk-date__row label,
body .tplpk-modal__loading,
body .tplpk-modal__empty,
body .tplpk-modal__count,
body .tplpk-card__footer,
body .tplpk-list-row__folder,
body .tplpk-list-row__date{color:var(--aidc-text-muted)}

body .tplpk-modal__search:focus,
body .tplpk-date__input:focus,
body .tplpk-dropdown.is-open .tplpk-dropdown__trigger{
  border-color:var(--aidc-action-focus);
  box-shadow:0 0 0 3px var(--aidc-action-focus-ring);
  background:var(--aidc-bg-elevated)
}

body .tplpk-dropdown__trigger:hover{background:color-mix(in srgb,var(--aidc-bg-elevated) 94%,white 6%);border-color:var(--aidc-border-strong)}
body .tplpk-dropdown__menu{background:var(--aidc-bg-popover);border-color:var(--aidc-border-default);box-shadow:var(--aidc-shadow-popover);scrollbar-color:var(--aidc-border-default) transparent}
body .tplpk-dropdown__menu::-webkit-scrollbar-thumb{background:var(--aidc-border-default)}
body .tplpk-dropdown__item{background:transparent;color:var(--aidc-text-secondary)}
body .tplpk-dropdown__item:hover{background:var(--aidc-btn-secondary-bg-hover);color:var(--aidc-text-primary)}
body .tplpk-dropdown__item.is-selected{background:color-mix(in srgb,var(--aidc-action-primary-from) 12%,transparent);color:var(--aidc-text-primary)}

body .tplpk-modal__date-btn.is-active,
body .tplpk-modal__view-btn.is-active{
  background:color-mix(in srgb,var(--aidc-action-primary-from) 12%,transparent);
  border-color:color-mix(in srgb,var(--aidc-action-primary-from) 36%,transparent);
  color:var(--aidc-action-primary-from)
}

body .tplpk-modal__date-popover{background:color-mix(in srgb,var(--aidc-bg-card) 92%,white 8%)}
body .tplpk-date__apply{background:linear-gradient(135deg,var(--aidc-action-primary-from),var(--aidc-action-primary-to));color:var(--aidc-text-inverse)}
body .tplpk-date__apply:hover{filter:brightness(1.08)}

body .tplpk-cal-panel{background:var(--aidc-bg-popover);border-color:var(--aidc-border-default);box-shadow:var(--aidc-shadow-popover)}
body .tplpk-cal-panel .cal-title{color:var(--aidc-text-primary)}
body .tplpk-cal-panel .cal-dow{color:var(--aidc-text-muted)}
body .tplpk-cal-panel .cal-day{background:transparent;border-color:var(--aidc-border-subtle);color:var(--aidc-text-secondary)}
body .tplpk-cal-panel .cal-day:hover{background:var(--aidc-btn-secondary-bg-hover);border-color:var(--aidc-border-strong);color:var(--aidc-text-primary)}
body .tplpk-cal-panel .cal-day.muted{color:var(--aidc-text-muted)}
body .tplpk-cal-panel .cal-day.today{box-shadow:0 0 0 1px color-mix(in srgb,var(--aidc-action-primary-from) 42%,transparent)}
body .tplpk-cal-panel .cal-day.is-selected,
body .tplpk-cal-panel .cal-day.selected{background:color-mix(in srgb,var(--aidc-action-primary-from) 14%,transparent);border-color:color-mix(in srgb,var(--aidc-action-primary-from) 36%,transparent);color:var(--aidc-text-primary)}
body .tplpk-cal-panel .cal-footer{border-top-color:var(--aidc-border-subtle)}
body .tplpk-cal-panel .cal-footer__btn{color:var(--aidc-text-muted)}
body .tplpk-cal-panel .cal-footer__btn:hover{background:var(--aidc-btn-secondary-bg-hover);color:var(--aidc-text-primary)}
body .tplpk-cal-panel .cal-footer__btn--accent{color:var(--aidc-action-primary-from)}
body .tplpk-cal-panel .cal-footer__btn--accent:hover{background:color-mix(in srgb,var(--aidc-action-primary-from) 10%,transparent);color:var(--aidc-action-primary-to)}

body .tplpk-card,
body .tplpk-list-row{
  background:var(--aidc-bg-card);
  border-color:var(--aidc-border-subtle)
}

body .tplpk-card:hover,
body .tplpk-list-row:hover{
  background:color-mix(in srgb,var(--aidc-bg-card) 94%,white 6%);
  border-color:var(--aidc-border-strong);
  box-shadow:none
}

body .tplpk-card__title,
body .tplpk-list-row__title{color:var(--aidc-text-primary)}

body .tplpk-card__body,
body .tplpk-list-row__text{color:var(--aidc-text-secondary)}

body .tplpk-card__fav,
body .tplpk-card__fav svg,
body .tplpk-list-row__fav{color:var(--aidc-amber-500);fill:var(--aidc-amber-500)}

body .tplpk-card__action,
body .tplpk-list-row__action{
  background:var(--aidc-btn-secondary-bg);
  border-color:var(--aidc-border-default);
  color:var(--aidc-text-secondary)
}

body .tplpk-card__action:hover,
body .tplpk-list-row__action:hover{
  background:var(--aidc-btn-secondary-bg-hover);
  border-color:var(--aidc-border-strong);
  color:var(--aidc-text-primary)
}

body .tplpk-card__action--primary{
  background:linear-gradient(135deg,var(--aidc-action-primary-from),var(--aidc-action-primary-to));
  border-color:transparent;
  color:var(--aidc-text-inverse)
}
body .tplpk-card__action--primary:hover{filter:brightness(1.08)}

body .tplpk-modal__body{scrollbar-color:var(--aidc-border-default) transparent}
body .tplpk-modal__body::-webkit-scrollbar-thumb{background:var(--aidc-border-default)}
body .tplpk-modal__body::-webkit-scrollbar-thumb:hover{background:var(--aidc-border-strong)}





/* Mobile gallery action sheet. The base lightbox stylesheet still contains
   legacy dark literals; this contract owns the sheet chrome in both themes. */
.aidc-lb__sheetBackdrop{
  background:var(--aidc-backdrop)!important;
}
.aidc-lb__sheetCard{
  background:var(--aidc-bg-panel)!important;
  border-color:var(--aidc-border-default)!important;
  color:var(--aidc-text-primary)!important;
  box-shadow:var(--aidc-shadow-modal)!important;
}
.aidc-lb__sheetGrab{
  background:var(--aidc-border-strong)!important;
  opacity:1!important;
}
.aidc-lb__sheetHead{
  background:var(--aidc-bg-panel)!important;
  border-color:var(--aidc-border-default)!important;
  color:var(--aidc-text-primary)!important;
}
.aidc-lb__sheetTitle{
  color:var(--aidc-text-primary)!important;
  -webkit-text-fill-color:var(--aidc-text-primary)!important;
  opacity:1!important;
}
.aidc-lb__sheetList{
  background:var(--aidc-bg-panel)!important;
}

/* Runtime uses .aidc-sheetitem. Keep the historical .aidc-lb__sheetBtn alias
   covered so old callers cannot regress the palette. */
.aidc-sheetitem,
.aidc-lb__sheetBtn{
  box-sizing:border-box!important;
  width:100%!important;
  min-height:52px!important;
  padding:0 16px!important;
  border-radius:14px!important;
  border:1px solid var(--aidc-border-default)!important;
  background:var(--aidc-btn-secondary-bg)!important;
  color:var(--aidc-text-primary)!important;
  -webkit-text-fill-color:var(--aidc-text-primary)!important;
  box-shadow:none!important;
  opacity:1!important;
}
.aidc-sheetitem:hover,
.aidc-sheetitem:focus-visible,
.aidc-lb__sheetBtn:hover,
.aidc-lb__sheetBtn:focus-visible{
  background:var(--aidc-btn-secondary-bg-hover)!important;
  border-color:var(--aidc-border-strong)!important;
  color:var(--aidc-text-primary)!important;
  outline:none!important;
}
.aidc-sheetitem__txt{
  color:inherit!important;
  -webkit-text-fill-color:inherit!important;
  opacity:1!important;
}
.aidc-sheetitem__ico{
  width:34px!important;
  height:34px!important;
  min-width:34px!important;
  border-radius:10px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  background:color-mix(in srgb,var(--aidc-action-primary-from) 10%,var(--aidc-bg-elevated) 90%)!important;
  border:1px solid color-mix(in srgb,var(--aidc-action-primary-from) 28%,var(--aidc-border-default) 72%)!important;
  color:var(--aidc-text-secondary)!important;
  opacity:1!important;
}
.aidc-sheetitem__ico .aidc-lb__btn-icon,
.aidc-lb__sheetBtn :is(svg,.aidc-lb__btn-icon){
  color:var(--aidc-text-secondary)!important;
  opacity:1!important;
}
.aidc-sheetitem.is-disabled,
.aidc-sheetitem:disabled,
.aidc-lb__sheetBtn:disabled{
  color:var(--aidc-text-muted)!important;
  -webkit-text-fill-color:var(--aidc-text-muted)!important;
  opacity:.62!important;
}
.aidc-sheetitem.is-danger,
.aidc-lb__sheetBtn.is-danger{
  background:var(--aidc-status-danger-bg)!important;
  border-color:var(--aidc-action-danger-border)!important;
  color:var(--aidc-red-500)!important;
  -webkit-text-fill-color:var(--aidc-red-500)!important;
}
.aidc-sheetitem.is-danger .aidc-sheetitem__ico,
.aidc-lb__sheetBtn.is-danger :is(svg,.aidc-lb__btn-icon){
  background:color-mix(in srgb,var(--aidc-red-500) 10%,var(--aidc-bg-elevated) 90%)!important;
  border-color:var(--aidc-action-danger-border)!important;
  color:var(--aidc-red-500)!important;
}

html[data-aidc-color-mode="light"] .aidc-lb__sheetCard,
html[data-aidc-color-mode="light"] .aidc-lb__sheetHead,
html[data-aidc-color-mode="light"] .aidc-lb__sheetList{
  background:var(--aidc-bg-panel)!important;
  color:var(--aidc-text-primary)!important;
}
html[data-aidc-color-mode="light"] .aidc-sheetitem,
html[data-aidc-color-mode="light"] .aidc-lb__sheetBtn{
  background:var(--aidc-bg-elevated)!important;
  border-color:var(--aidc-border-strong)!important;
  color:var(--aidc-text-primary)!important;
  -webkit-text-fill-color:var(--aidc-text-primary)!important;
}
html[data-aidc-color-mode="light"] .aidc-sheetitem:hover,
html[data-aidc-color-mode="light"] .aidc-sheetitem:focus-visible,
html[data-aidc-color-mode="light"] .aidc-lb__sheetBtn:hover,
html[data-aidc-color-mode="light"] .aidc-lb__sheetBtn:focus-visible{
  background:var(--aidc-btn-secondary-bg-hover)!important;
}
html[data-aidc-color-mode="light"] .aidc-sheetitem.is-danger,
html[data-aidc-color-mode="light"] .aidc-lb__sheetBtn.is-danger{
  background:var(--aidc-status-danger-bg)!important;
  color:var(--aidc-red-500)!important;
  -webkit-text-fill-color:var(--aidc-red-500)!important;
}

/* Final mobile/TG ownership. lightbox.css contains an `html.tg .aidc-sheetitem`
   dark-only rule. Keep this selector deliberately more specific so a route or
   late-loaded WebView stylesheet cannot return the Actions sheet to dark mode. */
html.tg[data-aidc-color-mode="light"] body .aidc-lb__sheetCard,
html.tg[data-aidc-color-mode="light"] body .aidc-lb__sheetHead,
html.tg[data-aidc-color-mode="light"] body .aidc-lb__sheetList{
  background:var(--aidc-bg-panel)!important;
  border-color:var(--aidc-border-default)!important;
  color:var(--aidc-text-primary)!important;
}
html.tg[data-aidc-color-mode="light"] body .aidc-lb__sheetTitle{
  color:var(--aidc-text-primary)!important;
  -webkit-text-fill-color:var(--aidc-text-primary)!important;
}
html.tg[data-aidc-color-mode="light"] body :is(.aidc-sheetitem,.aidc-lb__sheetBtn){
  min-height:54px!important;
  height:54px!important;
  padding:0 16px!important;
  border-radius:14px!important;
  background:var(--aidc-bg-elevated)!important;
  border-color:var(--aidc-border-default)!important;
  color:var(--aidc-text-primary)!important;
  -webkit-text-fill-color:var(--aidc-text-primary)!important;
  box-shadow:none!important;
  opacity:1!important;
}
html.tg[data-aidc-color-mode="light"] body :is(.aidc-sheetitem,.aidc-lb__sheetBtn) :is(.aidc-sheetitem__txt,span,strong){
  color:inherit!important;
  -webkit-text-fill-color:inherit!important;
  opacity:1!important;
}
html.tg[data-aidc-color-mode="light"] body .aidc-sheetitem__ico{
  width:34px!important;
  height:34px!important;
  min-width:34px!important;
  background:var(--aidc-btn-secondary-bg)!important;
  border-color:var(--aidc-border-default)!important;
  color:var(--aidc-text-secondary)!important;
}
html.tg[data-aidc-color-mode="light"] body .aidc-sheetitem__ico :is(svg,path,rect,circle,polyline,line){
  color:inherit!important;
  stroke:currentColor!important;
  opacity:1!important;
}
html.tg[data-aidc-color-mode="light"] body :is(.aidc-sheetitem,.aidc-lb__sheetBtn):is(:hover,:focus-visible){
  background:var(--aidc-btn-secondary-bg-hover)!important;
  border-color:var(--aidc-border-strong)!important;
}
html.tg[data-aidc-color-mode="light"] body :is(.aidc-sheetitem,.aidc-lb__sheetBtn).is-danger{
  background:var(--aidc-status-danger-bg)!important;
  border-color:var(--aidc-action-danger-border)!important;
  color:var(--aidc-red-500)!important;
  -webkit-text-fill-color:var(--aidc-red-500)!important;
}


/* Lightbox semantic chrome. Media itself is never recolored. */
.aidc-lb__backdrop{background:var(--aidc-backdrop)!important}
.aidc-lb__shell{background:var(--aidc-bg-panel)!important;border-color:var(--aidc-border-default)!important;color:var(--aidc-text-primary)!important;box-shadow:var(--aidc-shadow-modal)!important}
.aidc-lb__main{background:var(--aidc-workspace-bg)!important;border-color:var(--aidc-border-subtle)!important}
.aidc-lb__panel{background:var(--aidc-bg-card)!important;border-color:var(--aidc-border-default)!important;color:var(--aidc-text-primary)!important}

.aidc-lb__close,.aidc-lb__nav,.aidc-lb__share,.aidc-lb__back,.aidc-lb__iconbtn,.aidc-lb__btn,.aidc-lb__mode-btn,.aidc-lb__wabtn,.aidc-lb__zoomcontrols button,.aidc-lb__zoomcontrols .aidc-btn{background:var(--aidc-lightbox-action-bg)!important;border-color:var(--aidc-lightbox-action-border)!important;color:var(--aidc-lightbox-action-text)!important;box-shadow:none!important}
.aidc-lb__close:hover,.aidc-lb__nav:hover,.aidc-lb__share:hover,.aidc-lb__back:hover,.aidc-lb__iconbtn:hover,.aidc-lb__btn:hover,.aidc-lb__mode-btn:hover,.aidc-lb__wabtn:hover,.aidc-lb__zoomcontrols button:hover,.aidc-lb__zoomcontrols .aidc-btn:hover{background:var(--aidc-lightbox-action-bg-hover)!important;border-color:var(--aidc-border-strong)!important;color:var(--aidc-lightbox-action-text-hover)!important;box-shadow:none!important}
.aidc-lb__mode-btn[data-act="favorite"].is-on{border-color:color-mix(in srgb,var(--aidc-status-warning) 48%,transparent)!important;box-shadow:inset 5px 0 0 var(--aidc-status-warning)!important}
.aidc-lb__mode-btn[data-act="favorite"].is-on .aidc-lb__btn-icon{background-color:var(--aidc-status-warning)!important}
.aidc-lb__zoomcontrols{--icon-color:var(--aidc-lightbox-zoom-control-text)!important;background:var(--aidc-lightbox-zoom-control-bg)!important;border:1px solid var(--aidc-lightbox-zoom-control-border)!important;border-radius:14px!important;padding:5px!important;box-shadow:none!important;color:var(--aidc-lightbox-zoom-control-text)!important;-webkit-text-fill-color:var(--aidc-lightbox-zoom-control-text)!important}
.aidc-lb__zoomcontrols :where(.aidc-lb__iconbtn,button,.aidc-btn){--icon-color:var(--aidc-lightbox-zoom-control-text)!important;color:var(--aidc-lightbox-zoom-control-text)!important;-webkit-text-fill-color:var(--aidc-lightbox-zoom-control-text)!important;opacity:1!important}
.aidc-lb__zoom-icon{background-color:var(--aidc-lightbox-zoom-control-text)!important;color:var(--aidc-lightbox-zoom-control-text)!important;opacity:1!important;filter:none!important}
.aidc-lb__zoomcontrols img{filter:none!important;opacity:.9!important}

.aidc-lb__ava{background-color:var(--aidc-btn-secondary-bg)!important;border-color:var(--aidc-border-default)!important;color:var(--aidc-text-primary)!important}
.aidc-lb__aname strong,.aidc-lb__v,.aidc-lb__kvrow,.aidc-lb__row,.aidc-lb__row strong,.aidc-lb__catalog-heading h4,.aidc-lb__section strong,.aidc-lb__section b{color:var(--aidc-lightbox-comment-title)!important;-webkit-text-fill-color:var(--aidc-lightbox-comment-title)!important}
.aidc-lb__aname span,.aidc-lb__placeholder,.aidc-lb__k,.aidc-lb__row span,.aidc-lb__section h4,.aidc-lb__section small{color:var(--aidc-lightbox-comment-muted)!important;-webkit-text-fill-color:var(--aidc-lightbox-comment-muted)!important}
.aidc-lb__catalog-description,.aidc-lb__section p,.aidc-lb__section li,.aidc-lb__section .value,.aidc-lb__comments,.aidc-lb__comment,.aidc-lb__comment-text{color:var(--aidc-lightbox-comment-body)!important;-webkit-text-fill-color:var(--aidc-lightbox-comment-body)!important;opacity:1!important}

.aidc-lb__tabs{border-color:var(--aidc-border-subtle)!important}
.aidc-lb__tab{background:var(--aidc-lightbox-action-bg)!important;border-color:var(--aidc-lightbox-action-border)!important;color:var(--aidc-lightbox-action-text)!important}
.aidc-lb__tab:hover,.aidc-lb__tab:focus-visible{background:var(--aidc-lightbox-action-bg-hover)!important;color:var(--aidc-lightbox-action-text-hover)!important;outline:none!important}
.aidc-lb__tab.is-active,.aidc-lb__tab[aria-selected="true"]{background:var(--aidc-lightbox-action-active-bg)!important;border-color:var(--aidc-lightbox-action-active-border)!important;color:var(--aidc-lightbox-action-active-text)!important;box-shadow:none!important}

.aidc-lb__section{background:var(--aidc-bg-elevated)!important;border-color:var(--aidc-border-default)!important}
.aidc-lb__prompt{background:var(--aidc-dialog-input-bg)!important;border-color:var(--aidc-dialog-input-border)!important;color:var(--aidc-lightbox-comment-body)!important;-webkit-text-fill-color:var(--aidc-lightbox-comment-body)!important;opacity:1!important;scrollbar-color:var(--aidc-scrollbar-thumb) transparent!important}
.aidc-lb__prompt :where(p,span,div,a){color:inherit!important;-webkit-text-fill-color:inherit!important;opacity:1!important}
.aidc-lb__prompt::-webkit-scrollbar-thumb{background:var(--aidc-scrollbar-thumb)!important}
.aidc-lb__prompt-toggle{color:var(--aidc-lightbox-comment-muted)!important}
.aidc-lb__prompt-toggle:hover,.aidc-lb__prompt-toggle:focus-visible{color:var(--aidc-text-primary)!important;outline:none!important}
.aidc-lb__tools .aidc-lb__iconbtn[aria-label]::after,.aidc-lb__canvas-tip::after{background:var(--aidc-bg-popover)!important;border:1px solid var(--aidc-border-default)!important;color:var(--aidc-text-primary)!important;box-shadow:var(--aidc-shadow-popover)!important}

.aidc-lb__ref{background:var(--aidc-workspace-stage-bg)!important;border-color:var(--aidc-border-default)!important}
.aidc-lb__ref:hover,.aidc-lb__ref:focus-visible{border-color:var(--aidc-workspace-selection-border)!important;box-shadow:0 0 0 3px var(--aidc-action-focus-ring)!important;outline:none!important}
.aidc-chip{background:var(--aidc-btn-secondary-bg)!important;border-color:var(--aidc-border-default)!important;color:var(--aidc-text-secondary)!important}
.aidc-chip:hover,.aidc-chip:focus-visible{background:var(--aidc-btn-secondary-bg-hover)!important;border-color:var(--aidc-border-strong)!important;color:var(--aidc-text-primary)!important;box-shadow:none!important;outline:none!important}

.aidc-lb__actions{background:var(--aidc-bg-card)!important;border-color:var(--aidc-border-default)!important;backdrop-filter:none!important}
/* Legacy lightbox.css still contains a late !important dark gradient. Keep the
   semantic adapter authoritative regardless of stylesheet load order. */
.aidc-lb .aidc-lb__actions{background:var(--aidc-bg-card)!important;border-color:var(--aidc-border-default)!important;backdrop-filter:none!important}
.aidc-lb__primary{background:linear-gradient(135deg,var(--aidc-action-primary-from),var(--aidc-action-primary-to))!important;border-color:transparent!important;color:var(--aidc-text-inverse)!important;box-shadow:0 0 18px var(--aidc-action-primary-glow)!important}
.aidc-lb__btn--danger{background:var(--aidc-status-danger-bg)!important;border-color:var(--aidc-action-danger-border)!important;color:var(--aidc-red-500)!important}
.aidc-lb__wabottom{background:var(--aidc-bg-popover)!important;border-color:var(--aidc-border-default)!important;box-shadow:var(--aidc-shadow-popover)!important}

.aidc-lb__panel input,.aidc-lb__panel textarea,.aidc-lb__panel select{background:var(--aidc-dialog-input-bg)!important;border-color:var(--aidc-dialog-input-border)!important;color:var(--aidc-text-primary)!important}
.aidc-lb__panel input::placeholder,.aidc-lb__panel textarea::placeholder{color:var(--aidc-text-muted)!important}
.aidc-lb__panel input:focus,.aidc-lb__panel textarea:focus,.aidc-lb__panel select:focus{border-color:var(--aidc-action-focus)!important;box-shadow:0 0 0 3px var(--aidc-action-focus-ring)!important;outline:none!important}
.aidc-tag{background:var(--aidc-bg-popover)!important;border-color:var(--aidc-border-default)!important;color:var(--aidc-text-secondary)!important}
.aidc-tag--accent{border-color:color-mix(in srgb,var(--aidc-cyan-500) 38%,transparent)!important;color:var(--aidc-cyan-500)!important}

.aidc-lb__overlayCard{background:var(--aidc-bg-panel)!important;border-color:var(--aidc-border-default)!important;color:var(--aidc-text-primary)!important}
.aidc-lb__overlayHead{background:var(--aidc-bg-popover)!important;border-color:var(--aidc-border-default)!important}
.aidc-lb__overlayTitle{color:var(--aidc-text-primary)!important;opacity:1!important}
.aidc-lb__overlayBody{color:var(--aidc-text-primary)!important}
.aidc-lb__sectionTitle{color:var(--aidc-text-primary)!important;opacity:1!important}
.aidc-lb__mono,.aidc-lb__empty,.aidc-lb__hint{color:var(--aidc-lightbox-comment-body)!important;-webkit-text-fill-color:var(--aidc-lightbox-comment-body)!important;opacity:1!important}
.aidc-lb__panel :where(.aidc-lb__comments-title,.aidc-lb__comments-empty,.aidc-lb__comment-empty,.aidc-lb__comment-hint,.aidc-lb__comments h4,.aidc-lb__comments p,.aidc-lb__comments small){color:var(--aidc-lightbox-comment-body)!important;-webkit-text-fill-color:var(--aidc-lightbox-comment-body)!important;opacity:1!important}
.aidc-lb__panel :where(.aidc-lb__comments-title,.aidc-lb__comments h3,.aidc-lb__comments strong){color:var(--aidc-lightbox-comment-title)!important;-webkit-text-fill-color:var(--aidc-lightbox-comment-title)!important;opacity:1!important}

html[data-aidc-color-mode="light"] .aidc-lb__shell{background:color-mix(in srgb,var(--aidc-bg-page) 70%,var(--aidc-bg-elevated) 30%)!important}
html[data-aidc-color-mode="light"] .aidc-lb__panel{background:var(--aidc-bg-panel)!important}
html[data-aidc-color-mode="light"] .aidc-lb__main{background:var(--aidc-lightbox-stage-bg)!important}
html[data-aidc-color-mode="light"] .aidc-lb__section{background:var(--aidc-bg-elevated)!important}
html[data-aidc-color-mode="light"] .aidc-lb__panel :where(.aidc-lb__k,.aidc-lb__row span,.aidc-lb__section h4,.aidc-lb__section small,.aidc-lb__comments-title,.aidc-lb__comments-empty,.aidc-lb__comment-empty,.aidc-lb__comment-hint){color:var(--aidc-lightbox-comment-body)!important;-webkit-text-fill-color:var(--aidc-lightbox-comment-body)!important;opacity:1!important}
html[data-aidc-color-mode="light"] .aidc-lb .aidc-lb__actions{background:var(--aidc-bg-panel)!important;border-color:var(--aidc-border-default)!important;backdrop-filter:none!important}
html[data-aidc-color-mode="light"] .aidc-lb__primary{background:color-mix(in srgb,var(--aidc-action-primary-from) 9%,var(--aidc-bg-card) 91%)!important;border:1px solid color-mix(in srgb,var(--aidc-action-primary-from) 58%,transparent)!important;color:var(--aidc-action-primary-to)!important;box-shadow:none!important;filter:none!important}
html[data-aidc-color-mode="light"] .aidc-lb__btn:not(.aidc-lb__btn--danger),html[data-aidc-color-mode="light"] .aidc-lb__mode-btn,html[data-aidc-color-mode="light"] .aidc-lb__zoomcontrols button{background:var(--aidc-btn-secondary-bg)!important;border-color:var(--aidc-border-strong)!important;color:var(--aidc-text-primary)!important;-webkit-text-fill-color:var(--aidc-text-primary)!important}
html[data-aidc-color-mode="light"] .aidc-lb__wabottom .aidc-btn--glass{background:var(--aidc-btn-secondary-bg)!important;border-color:var(--aidc-border-strong)!important;color:var(--aidc-text-primary)!important;-webkit-text-fill-color:var(--aidc-text-primary)!important;opacity:1!important}
html[data-aidc-color-mode="light"] .aidc-lb__wabottom .aidc-btn--primary{background:linear-gradient(135deg,var(--aidc-action-primary-from),var(--aidc-action-primary-to))!important;border-color:transparent!important;color:var(--aidc-text-inverse)!important;-webkit-text-fill-color:var(--aidc-text-inverse)!important;opacity:1!important}
html[data-aidc-color-mode="light"] .aidc-lb__overlayCard,html[data-aidc-color-mode="light"] .aidc-lb__overlayBody{background:var(--aidc-bg-panel)!important;color:var(--aidc-text-primary)!important}
html[data-aidc-color-mode="light"] .aidc-lb__overlayHead{background:var(--aidc-bg-popover)!important;color:var(--aidc-text-primary)!important}
html[data-aidc-color-mode="light"] .aidc-lb__overlayTitle,html[data-aidc-color-mode="light"] .aidc-lb__sectionTitle{color:var(--aidc-text-primary)!important;-webkit-text-fill-color:var(--aidc-text-primary)!important;opacity:1!important}
html[data-aidc-color-mode="light"] .aidc-lb__overlayBody :where(.aidc-lb__empty,.aidc-lb__hint,.aidc-lb__mono){color:var(--aidc-lightbox-comment-body)!important;-webkit-text-fill-color:var(--aidc-lightbox-comment-body)!important;opacity:1!important}


.aidc-lb__prompt::-webkit-scrollbar-thumb:hover{background:var(--aidc-scrollbar-thumb-hover)!important}
.aidc-lb__btn--danger:hover{background:var(--aidc-status-danger-bg)!important;border-color:var(--aidc-red-500)!important;color:var(--aidc-red-500)!important}

.aidc-lb__thread,.aidc-lb__threadStack,.aidc-lb__popover{
  background:var(--aidc-bg-panel)!important;
  border-color:var(--aidc-border-default)!important;
  color:var(--aidc-text-primary)!important
}
.aidc-lb__threadTxt,.aidc-lb__threadBody,.aidc-lb__threadMsg,
.aidc-lb__msg,.aidc-lb__msgText,.aidc-lb__popoverHead{
  color:var(--aidc-text-primary)!important;
  -webkit-text-fill-color:var(--aidc-text-primary)!important
}
.aidc-lb__threadMeta,.aidc-lb__threadMsg span,.aidc-lb__threadToggle,
.aidc-lb__role,.aidc-lb__msgMeta{
  color:var(--aidc-text-secondary)!important;
  -webkit-text-fill-color:var(--aidc-text-secondary)!important
}
.aidc-lb__popover textarea{
  background:var(--aidc-bg-elevated)!important;
  color:var(--aidc-text-primary)!important;
  border-color:var(--aidc-border-default)!important
}
.aidc-lb__popover textarea::placeholder{color:var(--aidc-text-muted)!important}

.aidc-lb__popoverClose,.aidc-lb__popoverDelete,.aidc-lb__msgDelete,.aidc-lb__send{
  color:var(--aidc-text-primary)!important;--icon-color:var(--aidc-text-primary);
  background:var(--aidc-bg-elevated)!important;border-color:var(--aidc-border-default)!important
}

.aidc-lb__project-link{color:var(--aidc-action-primary-to);text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.aidc-lb__project-link:focus-visible{outline:2px solid var(--aidc-action-focus);outline-offset:3px;border-radius:2px}



/* 3D interface visual adapter.
   Media readability gradients remain in 3d.css.
 */

body .aidc-3d-form{color:var(--aidc-text-primary)}
body .aidc-3d-form h2{color:var(--aidc-text-primary)}
body .aidc-3d-form .aidc-3d-hint{color:var(--aidc-text-muted)}
body .aidc-3d-row label,
body .aidc-3d-token-left,
body .aidc-3d-only-pro>.aidc-3d-row-label{color:var(--aidc-text-secondary)}

body .aidc-3d-row select,
body .aidc-3d-row input[type="number"],
body .aidc-3d-row input[type="text"],
body .aidc-3d-row textarea{
  background:var(--aidc-bg-elevated);
  border-color:var(--aidc-border-default);
  color:var(--aidc-text-primary)
}

body .aidc-3d-row select:focus,
body .aidc-3d-row input:focus,
body .aidc-3d-row textarea:focus{
  border-color:var(--aidc-action-focus);
  box-shadow:0 0 0 3px var(--aidc-action-focus-ring);
  background:var(--aidc-bg-elevated)
}

body .aidc-3d-form select.aidc-3d-select{background-image:none}
body .aidc-3d-view-slot{background:var(--aidc-bg-card);border-color:var(--aidc-border-default)}
body .aidc-3d-view-slot:hover{border-color:color-mix(in srgb,var(--aidc-action-primary-from) 42%,transparent)}
body .aidc-3d-view-slot.has-image{border-color:var(--aidc-border-default)}
body .aidc-3d-view-slot.is-required:not(.has-image){border-color:var(--aidc-action-danger-border)}
body .aidc-3d-view-slot .aidc-3d-view-label{background:color-mix(in srgb,var(--aidc-bg-popover) 82%,transparent);color:var(--aidc-text-secondary)}
body .aidc-3d-view-slot .aidc-3d-view-clear{background:color-mix(in srgb,var(--aidc-bg-popover) 88%,transparent);color:var(--aidc-text-primary)}
body .aidc-3d-view-slot .aidc-3d-ref-preview{
  position:absolute!important;
  left:4px!important;
  bottom:26px!important;
  top:auto!important;
  right:auto!important;
  z-index:4;
}
body .aidc-3d-modal-ref-preview{
  position:absolute!important;
  left:2px!important;
  bottom:2px!important;
  top:auto!important;
  right:auto!important;
  z-index:4;
  transform:scale(.78);
  transform-origin:left bottom;
}
body .aidc-3d-view-placeholder,body .aidc-3d-view-placeholder svg{color:var(--aidc-text-muted)}
body .aidc-3d-view-slot:hover .aidc-3d-view-placeholder,body .aidc-3d-view-slot:hover .aidc-3d-view-placeholder svg{color:var(--aidc-action-primary-from)}

body .aidc-3d-token-display{background:var(--aidc-bg-card);border-color:var(--aidc-border-subtle)}
body .aidc-3d-token-display .aidc-3d-token-label{color:var(--aidc-text-muted)}
body .aidc-3d-token-display .aidc-3d-token-value{color:var(--aidc-text-primary)}
body .aidc-3d-token-left svg{color:var(--aidc-amber-500)}

body .aidc-3d-btn{
  background:linear-gradient(135deg,var(--aidc-action-primary-from),var(--aidc-action-primary-to));
  color:var(--aidc-text-inverse);
  box-shadow:0 0 20px var(--aidc-action-primary-glow)
}
body .aidc-3d-btn:hover{box-shadow:0 0 28px var(--aidc-action-primary-glow)}
body .aidc-3d-btn:disabled{background:var(--aidc-btn-secondary-bg);color:var(--aidc-text-muted);border-color:var(--aidc-border-default);box-shadow:none}
body .aidc-3d-btn__spark{background:color-mix(in srgb,var(--aidc-text-inverse) 18%,transparent)}
body .aidc-3d-btn__spark svg{color:var(--aidc-text-inverse)}
body .aidc-3d-btn__cost{background:color-mix(in srgb,var(--aidc-bg-page) 32%,transparent);border-color:var(--aidc-border-default);color:var(--aidc-text-inverse)}
body .aidc-3d-btn.aidc-3d-btn-secondary{background:var(--aidc-btn-secondary-bg);border-color:var(--aidc-border-default);color:var(--aidc-text-secondary)}
body .aidc-3d-btn.aidc-3d-btn-secondary:hover{background:var(--aidc-btn-secondary-bg-hover);color:var(--aidc-text-primary)}

body .aidc-3d-status.is-info{background:color-mix(in srgb,var(--aidc-cyan-500) 10%,transparent);color:color-mix(in srgb,var(--aidc-cyan-500) 62%,white 38%);border-color:color-mix(in srgb,var(--aidc-cyan-500) 32%,transparent)}
body .aidc-3d-status.is-error{background:color-mix(in srgb,var(--aidc-red-500) 10%,transparent);color:color-mix(in srgb,var(--aidc-red-500) 64%,white 36%);border-color:var(--aidc-action-danger-border)}
body .aidc-3d-status.is-success{background:color-mix(in srgb,var(--aidc-green-500) 10%,transparent);color:color-mix(in srgb,var(--aidc-green-500) 62%,white 38%);border-color:color-mix(in srgb,var(--aidc-green-500) 32%,transparent)}

body .aidc-3d-modal-overlay{background:var(--aidc-backdrop)}
body .aidc-3d-modal{background:var(--aidc-bg-modal);border-color:var(--aidc-border-default);box-shadow:var(--aidc-shadow-modal)}
body .aidc-3d-modal__header,body .aidc-3d-modal__body .aidc-3d-viewer-toolbar{background:var(--aidc-bg-panel);border-color:var(--aidc-border-subtle)}
body .aidc-3d-modal__title{color:var(--aidc-text-primary)}
body .aidc-3d-modal__close{color:var(--aidc-text-secondary)}
body .aidc-3d-modal__close:hover{color:var(--aidc-text-primary);background:var(--aidc-btn-secondary-bg-hover)}
body .aidc-3d-modal__viewer,body .aidc-3d-viewer-wrap{background:var(--aidc-bg-page);border-color:var(--aidc-border-default)}

body .aidc-3d-progress{background:var(--aidc-bg-card);border-color:var(--aidc-border-subtle)}
body .aidc-3d-progress__label{color:var(--aidc-text-secondary)}
body .aidc-3d-progress__bar{background:var(--aidc-btn-secondary-bg-hover)}
body .aidc-3d-progress__fill{background:linear-gradient(90deg,var(--aidc-cyan-500),var(--aidc-action-primary-to))}
body .aidc-3d-log-stream{background:var(--aidc-bg-elevated);border-color:var(--aidc-border-subtle)}
body .aidc-3d-log-stream__title{color:var(--aidc-text-muted)}
body .aidc-3d-log-stream__list{color:var(--aidc-text-secondary)}
body .aidc-3d-log-line--warn{color:color-mix(in srgb,var(--aidc-amber-500) 72%,white 28%)}
body .aidc-3d-log-line--error{color:color-mix(in srgb,var(--aidc-red-500) 64%,white 36%)}

body .aidc-3d-check{accent-color:var(--aidc-action-primary-from)}
body .aidc-3d-form--panel textarea{scrollbar-color:var(--aidc-border-default) transparent}
body .aidc-3d-form--panel textarea::-webkit-scrollbar-thumb{background:var(--aidc-border-default)}
body .aidc-3d-multiview-toggle{background:var(--aidc-bg-card);border-color:var(--aidc-border-subtle)}

/* 3D asset cards: keep thumbnail readability overlays in 3d.css,
   but route interactive chrome and semantic actions through shared tokens. */
body .rv2-card__badge--3d{background:linear-gradient(135deg,var(--aidc-cyan-500),var(--aidc-action-primary-to));color:var(--aidc-text-inverse)}
body .rv2-card__qbtn--viewer,body .rv2-card__qbtn--3d{color:var(--aidc-text-secondary);border-color:var(--aidc-border-default)}
body .rv2-card__qbtn--viewer:hover,body .rv2-card__qbtn--3d:hover{color:var(--aidc-text-primary);background:var(--aidc-btn-secondary-bg-hover);border-color:var(--aidc-border-strong)}
body .rv2-card__qbtn[data-action="3d-download-zip"]:hover{background:color-mix(in srgb,var(--aidc-green-500) 14%,transparent);border-color:color-mix(in srgb,var(--aidc-green-500) 34%,transparent)}
body .rv2-card__qbtn[data-action="3d-smart-topology"]:hover{background:color-mix(in srgb,var(--aidc-violet-500) 14%,transparent);border-color:color-mix(in srgb,var(--aidc-violet-500) 34%,transparent)}
body .rv2-card__qbtn[data-action="3d-part-split"]:hover{background:color-mix(in srgb,var(--aidc-amber-500) 14%,transparent);border-color:color-mix(in srgb,var(--aidc-amber-500) 34%,transparent)}

/* Light 3D finalization. */
html[data-aidc-color-mode="light"] body :where(.aidc-3d-form .aidc-3d-hint,.aidc-3d-token-display .aidc-3d-token-label,.aidc-3d-log-stream__title,.aidc-3d-view-placeholder,.aidc-3d-view-placeholder svg){
  color:var(--aidc-text-secondary)!important;
  opacity:1!important
}
html[data-aidc-color-mode="light"] body .aidc-3d-btn:not(.aidc-3d-btn-secondary){
  background:var(--aidc-btn-primary-bg)!important;
  border:1px solid var(--aidc-btn-primary-border)!important;
  color:var(--aidc-btn-primary-text)!important;
  box-shadow:none!important;
  filter:none!important
}
html[data-aidc-color-mode="light"] body .aidc-3d-btn:not(.aidc-3d-btn-secondary):hover:not(:disabled){
  background:var(--aidc-btn-primary-bg-hover)!important;
  border-color:var(--aidc-btn-primary-border-hover)!important;
  color:var(--aidc-btn-primary-text)!important;
  box-shadow:none!important
}
html[data-aidc-color-mode="light"] body .aidc-3d-btn__spark,
html[data-aidc-color-mode="light"] body .aidc-3d-btn__cost{background:transparent!important;border-color:var(--aidc-border-default)!important;color:var(--aidc-btn-primary-text)!important}
html[data-aidc-color-mode="light"] body .aidc-3d-btn__spark svg{color:var(--aidc-btn-primary-text)!important}
html[data-aidc-color-mode="light"] body .aidc-3d-status.is-info{color:var(--aidc-cyan-500)!important}
html[data-aidc-color-mode="light"] body .aidc-3d-status.is-error{color:var(--aidc-red-500)!important}
html[data-aidc-color-mode="light"] body .aidc-3d-status.is-success{color:var(--aidc-green-500)!important}
html[data-aidc-color-mode="light"] body .aidc-3d-log-line--warn{color:var(--aidc-status-warning-text)!important}
html[data-aidc-color-mode="light"] body .aidc-3d-log-line--error{color:var(--aidc-red-500)!important}

/* Custom 3D controls use ms-dropdown markup, not native selects. */
body.page-3d .aidc-3d-dropdown .ms-dropdown__toggle,
body.page-3d .aidc-3d-dropdown .ms-dropdown__menu,
body.page-3d .aidc-3d-dropdown .ms-dropdown__item {
  background:var(--aidc-bg-elevated)!important;
  color:var(--aidc-text-primary)!important;
  -webkit-text-fill-color:var(--aidc-text-primary)!important;
  border-color:var(--aidc-border-default)!important;
  box-shadow:none!important;
}
body.page-3d .aidc-3d-dropdown .ms-dropdown__item:hover {
  background:var(--aidc-btn-secondary-bg-hover)!important;
}
body.page-3d .aidc-3d-slider-value,
body.page-3d .aidc-3d-slider-label label,
body.page-3d .aidc-3d-multiview-toggle label {
  color:var(--aidc-text-primary)!important;
}
body.page-3d .aidc-3d-slider-addon,
body.page-3d .aidc-3d-helper-btn {
  color:var(--aidc-text-primary)!important;
}
body.page-3d .aidc-3d-helper-btn {
  background:var(--aidc-btn-secondary-bg)!important;
  border-color:var(--aidc-border-default)!important;
}
body.page-3d .aidc-3d-view-slot .aidc-3d-view-label {
  color:var(--aidc-text-primary)!important;
  background:var(--aidc-bg-elevated)!important;
  -webkit-text-fill-color:var(--aidc-text-primary)!important;
}
body.page-3d .aidc-3d-helper-row > div > div {
  color:var(--aidc-text-secondary)!important;
}

body.page-3d .aidc-3d-dropdown .ms-dropdown__toggle::after {
  color:var(--aidc-text-secondary)!important;
  border-color:var(--aidc-text-secondary)!important;
}
html[data-aidc-color-mode="light"] body.page-3d .aidc-3d-form .ms-cta {
  background:var(--aidc-btn-primary-bg)!important;
  color:var(--aidc-btn-primary-text)!important;
  border:1px solid var(--aidc-btn-primary-border)!important;
  box-shadow:none!important;
}
html[data-aidc-color-mode="light"] body.page-3d .aidc-3d-form .ms-cta * {
  color:var(--aidc-btn-primary-text)!important;
}


/* Empty-folder guide visuals live in the shared generator-guide component loaded
   from generation-panel.css. This route adapter must not own a second copy. */

body.page-image [data-project-timeline] .prompt-bubble,
body.page-video [data-project-timeline] .prompt-bubble,
body.page-audio [data-project-timeline] .prompt-bubble,
body.page-3d [data-project-timeline] .prompt-bubble{
  font-size:15px;
  font-weight:450;
  color:var(--aidc-text-primary)!important
}

/* Runtime helper copy elsewhere in preparation panel follows the same contrast. */
html[data-aidc-color-mode="light"] body.page-image .generation-panel :where(p,li,small,.muted,.hint,.help-text,.guide-text),
html[data-aidc-color-mode="light"] body.page-video .generation-panel :where(p,li,small,.muted,.hint,.help-text,.guide-text),
html[data-aidc-color-mode="light"] body.page-audio .generation-panel :where(p,li,small,.muted,.hint,.help-text,.guide-text),
html[data-aidc-color-mode="light"] body.page-3d .generation-panel :where(p,li,small,.muted,.hint,.help-text,.guide-text){
  color:var(--aidc-text-secondary)!important;
  -webkit-text-fill-color:var(--aidc-text-secondary)!important;
  opacity:1!important
}
html[data-aidc-color-mode="light"] :where(body.page-image,body.page-video,body.page-audio,body.page-3d) .generation-panel :where(h3,h4,strong,b,.help-title,.guide-title){
  color:var(--aidc-text-primary)!important;
  -webkit-text-fill-color:var(--aidc-text-primary)!important;
  opacity:1!important
}

/* Prompt toolbar / Smart Prompt trigger. */
html[data-aidc-color-mode="light"] :where(body.page-image,body.page-video,body.page-audio,body.page-3d) .refp-shell :where(button,.refp-btn,[role="button"]){color:var(--aidc-text-secondary)!important}
html[data-aidc-color-mode="light"] :where(body.page-image,body.page-video,body.page-audio,body.page-3d) .refp-shell :where(button,.refp-btn,[role="button"]):hover{color:var(--aidc-text-primary)!important}
html[data-aidc-color-mode="light"] :where(body.page-image,body.page-video,body.page-audio,body.page-3d) .refp-shell :where([class*="smart"],[data-action*="smart"]){color:var(--aidc-action-primary-to)!important}

/* Timeline filter counters may be runtime spans with several historical class names. */
html[data-aidc-color-mode="light"] [data-project-timeline] .chip.filter :where(.count,.counter,.badge,[class*="count"]),
html[data-aidc-color-mode="light"] [data-project-timeline] .timeline-filter :where(.count,.counter,.badge,[class*="count"]){
  background:var(--aidc-bg-elevated)!important;
  border:1px solid var(--aidc-border-default)!important;
  color:var(--aidc-text-primary)!important
}
html[data-aidc-color-mode="light"] [data-project-timeline] .chip.filter.active :where(.count,.counter,.badge,[class*="count"]){
  background:var(--aidc-control-selected-bg)!important;
  border-color:var(--aidc-control-selected-border)!important;
  color:var(--aidc-action-primary-to)!important
}
