


/* 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%);
}
