/* Shared palette layer; loaded after round-two styles on all 11354 shells. */
:root {
  --accent-light:#2e604a;
  --accent-light-hover:#214936;
  --accent-dark:#9bc9aa;
  --accent-dark-hover:#badfc4;
  --accent-swatch:#2e604a;
  --accent-canvas:var(--accent-light-canvas,#e1e9df);
  --accent-paper:var(--accent-light-paper,#f7f9f5);
  --accent-deep:var(--accent-light-deep,#e7eee4);
  --accent-raised:var(--accent-light-raised,#f0f5ec);
  --accent-soft-surface:var(--accent-light-soft,#dfe9dc);
  --accent-line:var(--accent-light-line,#b8c9b8);
  --accent-ui:var(--accent-light);
  --accent-ui-hover:var(--accent-light-hover);
  --accent-on:#fffdf7;
  --accent-soft:color-mix(in srgb,var(--accent-ui) 10%,var(--accent-paper));
  --accent-border:color-mix(in srgb,var(--accent-ui) 37%,var(--accent-paper));
  --r2-green:var(--accent-ui);
  --forest-green:var(--accent-ui);
  --forest-green-deep:var(--accent-ui-hover);
  --ui-primary:var(--accent-ui);
  --ui-primary-hover:var(--accent-ui-hover);
  --ui-on-primary:var(--accent-on);
  --primary:var(--accent-ui);
  --primary-hover:var(--accent-ui-hover);
  --primary-soft:var(--accent-soft);
  --primary-border:var(--accent-border);
  --r2-canvas:var(--accent-canvas);
  --r2-paper:var(--accent-paper);
  --r2-paper-deep:var(--accent-deep);
  --r2-paper-raised:var(--accent-raised);
  --r2-line:var(--accent-line);
  --r2-line-strong:color-mix(in srgb,var(--accent-line) 74%,var(--accent-ui));
  --forest-canvas:var(--accent-canvas);
  --forest-paper:var(--accent-paper);
  --forest-paper-deep:var(--accent-deep);
  --forest-line:var(--accent-line);
  --ui-bg:var(--accent-canvas);
  --ui-surface:var(--accent-paper);
  --ui-soft:var(--accent-soft-surface);
  --ui-border:var(--accent-line);
  --ui-border-strong:var(--r2-line-strong);
  --bg:var(--accent-canvas);
  --surface:var(--accent-paper);
  --border:var(--accent-line);
}
:root[data-color-theme='dark'] {
  --accent-canvas:var(--accent-dark-canvas,#19201d);
  --accent-paper:var(--accent-dark-paper,#29322d);
  --accent-deep:var(--accent-dark-deep,#222a25);
  --accent-raised:var(--accent-dark-raised,#374039);
  --accent-soft-surface:var(--accent-dark-soft,#3c453e);
  --accent-line:var(--accent-dark-line,#687269);
  --accent-ui:var(--accent-dark);
  --accent-ui-hover:var(--accent-dark-hover);
  --accent-on:#1f1c1a;
  --accent-soft:color-mix(in srgb,var(--accent-ui) 15%,var(--accent-paper));
  --accent-border:color-mix(in srgb,var(--accent-ui) 42%,var(--accent-paper));
  --r2-green:var(--accent-ui);
  --forest-green:var(--accent-ui);
  --forest-green-deep:var(--accent-ui-hover);
  --ui-primary:var(--accent-ui);
  --ui-primary-hover:var(--accent-ui-hover);
  --ui-on-primary:var(--accent-on);
  --primary:var(--accent-ui);
  --primary-hover:var(--accent-ui-hover);
  --primary-soft:var(--accent-soft);
  --primary-border:var(--accent-border);
  --r2-canvas:var(--accent-canvas);
  --r2-paper:var(--accent-paper);
  --r2-paper-deep:var(--accent-deep);
  --r2-paper-raised:var(--accent-raised);
  --r2-line:var(--accent-line);
  --r2-line-strong:color-mix(in srgb,var(--accent-line) 78%,var(--accent-ui));
  --forest-canvas:var(--accent-canvas);
  --forest-paper:var(--accent-paper);
  --forest-paper-deep:var(--accent-deep);
  --forest-line:var(--accent-line);
  --ui-bg:var(--accent-canvas);
  --ui-surface:var(--accent-paper);
  --ui-soft:var(--accent-soft-surface);
  --ui-border:var(--accent-line);
  --ui-border-strong:var(--r2-line-strong);
  --bg:var(--accent-canvas);
  --surface:var(--accent-paper);
  --border:var(--accent-line);
}
:is(#workspace,#account-shell,#admin-intake)[data-app-shell] {
  --forest-canvas:var(--accent-canvas);
  --forest-paper:var(--accent-paper);
  --forest-paper-deep:var(--accent-deep);
  --forest-line:var(--accent-line);
  --ui-bg:var(--accent-canvas);
  --ui-surface:var(--accent-paper);
  --ui-soft:var(--accent-soft-surface);
  --ui-border:var(--accent-line);
  --ui-border-strong:var(--r2-line-strong);
  --bg:var(--accent-canvas);
  --surface:var(--accent-paper);
  --border:var(--accent-line);
  --r2-green:var(--accent-ui);
  --forest-green:var(--accent-ui);
  --forest-green-deep:var(--accent-ui-hover);
  --ui-primary:var(--accent-ui);
  --ui-primary-hover:var(--accent-ui-hover);
  --ui-on-primary:var(--accent-on);
  --primary:var(--accent-ui);
  --primary-hover:var(--accent-ui-hover);
  --primary-soft:var(--accent-soft);
  --primary-border:var(--accent-border);
}
#admin-intake[data-app-shell] {
  --ai-canvas:var(--accent-canvas);
  --ai-paper:var(--accent-paper);
  --ai-paper-deep:var(--accent-deep);
  --ai-line:var(--accent-line);
  --ai-green:var(--ui-success);
  --ai-green-deep:var(--ui-success);
}
#workspace :is(#ws-new,#ws-dashboard,#ws-notifications),
#admin-intake :is(#ai-announcements,#ai-comments,#ai-host,#ai-dashboard,#ai-site,#ai-service,#ai-users) {
  --primary:var(--accent-ui);
  --primary-hover:var(--accent-ui-hover);
  --primary-soft:var(--accent-soft);
  --primary-border:var(--accent-border);
}
:root[data-color-theme='dark'] :is(#workspace,#account-shell,#admin-intake)[data-app-shell] {
  --forest-canvas:var(--accent-canvas);
  --forest-paper:var(--accent-paper);
  --forest-paper-deep:var(--accent-deep);
  --forest-line:var(--accent-line);
  --ui-bg:var(--accent-canvas);
  --ui-surface:var(--accent-paper);
  --ui-soft:var(--accent-soft-surface);
  --ui-border:var(--accent-line);
  --ui-border-strong:var(--r2-line-strong);
  --bg:var(--accent-canvas);
  --surface:var(--accent-paper);
  --border:var(--accent-line);
  --r2-green:var(--accent-ui);
  --forest-green:var(--accent-ui);
  --forest-green-deep:var(--accent-ui-hover);
  --ui-primary:var(--accent-ui);
  --ui-primary-hover:var(--accent-ui-hover);
  --ui-on-primary:var(--accent-on);
  --primary:var(--accent-ui);
  --primary-hover:var(--accent-ui-hover);
  --primary-soft:var(--accent-soft);
  --primary-border:var(--accent-border);
}
:root[data-color-theme='dark'] #admin-intake[data-app-shell] {
  --ai-canvas:var(--accent-canvas);
  --ai-paper:var(--accent-paper);
  --ai-paper-deep:var(--accent-deep);
  --ai-line:var(--accent-line);
  --ai-green:var(--ui-success);
  --ai-green-deep:var(--ui-success);
}
:root[data-color-theme='dark'] #workspace :is(#ws-new,#ws-dashboard,#ws-notifications),
:root[data-color-theme='dark'] #admin-intake :is(#ai-announcements,#ai-comments,#ai-host,#ai-dashboard,#ai-site,#ai-service,#ai-users) {
  --primary:var(--accent-ui);
  --primary-hover:var(--accent-ui-hover);
  --primary-soft:var(--accent-soft);
  --primary-border:var(--accent-border);
}

/* Brand interactions follow the palette; success, warning and error remain semantic. */
:root[data-color-theme] body.beui :is(.button,.text-button,button,a,input,textarea,select,summary):focus-visible,
:root[data-color-theme] body.beui :is(#workspace,#admin-intake,#account-shell,.admin-login-layout) :is(button,a,input,textarea,select,summary):focus-visible,
.admin-login-page :focus-visible {outline-color:var(--accent-ui)}
body.beui .button.primary,
:root[data-color-theme='dark'] body.beui .button.primary {
  background:var(--accent-ui);border-color:var(--accent-ui);color:var(--accent-on);
}
body.beui .button.primary:hover:not(:disabled),
:root[data-color-theme='dark'] body.beui .button.primary:hover:not(:disabled) {
  background:var(--accent-ui-hover);border-color:var(--accent-ui-hover);color:var(--accent-on);
}
#workspace #ws-compose-steps button[aria-current=step],
:root[data-color-theme='dark'] #workspace #ws-compose-steps button[aria-current=step] {
  background:transparent;border-color:var(--accent-ui);color:var(--accent-ui);
  box-shadow:none;
}
#workspace .ws-uploader-badge:not(.badge),
#workspace .ws-gallery-cards .ws-app-symbol {background:var(--accent-soft);color:var(--accent-ui)}
#admin-intake #ai-dashboard>.ai-heading {
  border-color:var(--accent-border);
}
.account-page .auth-tabs button[aria-current=page],
:root[data-color-theme='dark'] .account-page .auth-tabs button[aria-current=page] {
  color:var(--accent-ui);border-color:var(--accent-border);
}
#admin-intake .ai-section-nav [aria-current=page],
#admin-intake .ai-section-nav [aria-pressed=true] {
  color:var(--accent-ui);border-color:var(--accent-border);background:var(--accent-soft);
}
.admin-login-header>a:first-child {color:var(--accent-ui)}

/* Palette sits beside the existing mode control, including on the login page. */
.theme-palette {position:relative;flex:none}
.theme-palette-trigger {
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  width:44px;min-width:44px;min-height:44px;padding:0;
  border:1px solid transparent;border-radius:8px;
  background:transparent;color:var(--ui-fg,#273a36);
  box-shadow:none;font:inherit;font-size:13px;font-weight:550;cursor:pointer;
}
.theme-palette-trigger:hover,.theme-palette-trigger[aria-expanded=true] {
  background:var(--accent-soft);border-color:var(--accent-border)
}
.theme-palette-trigger-dot {
  display:inline-block;width:20px;height:20px;flex:none;border:2px solid var(--ui-surface,#fffdf7);
  border-radius:50%;background:var(--accent-swatch);box-shadow:0 0 0 1px var(--ui-border,#d6dbd2);
}
.theme-palette-panel {
  position:absolute;right:0;top:calc(100% + 8px);z-index:90;
  box-sizing:border-box;width:min(350px,calc(100vw - 24px));padding:17px;
  max-height:calc(100dvh - 92px - env(safe-area-inset-bottom,0px));overflow-y:auto;overscroll-behavior:contain;
  border:1px solid var(--ui-border,#d6dbd2);border-radius:12px;
  background:var(--ui-surface,#fffdf7);color:var(--ui-fg,#273a36);
  box-shadow:var(--ui-shadow-overlay);
}
.theme-palette-panel[hidden] {display:none!important}
.theme-palette-heading {margin:0;font-size:16px;font-weight:750}
.theme-palette-hint {margin:2px 0 14px;color:var(--ui-muted,#586a64);font-size:12px}
.theme-palette-presets {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.theme-palette-preset {
  display:grid;justify-items:center;gap:5px;min-width:0;min-height:64px;padding:7px 4px;
  border:1px solid var(--ui-border,#d6dbd2);border-radius:10px;
  background:transparent;color:var(--ui-fg,#273a36);font:inherit;font-size:11px;cursor:pointer;
}
.theme-palette-preset:hover,.theme-palette-preset[aria-pressed=true] {
  border-color:var(--accent-ui);background:var(--accent-soft);
}
.theme-palette-swatch {width:25px;height:25px;border-radius:50%;border:2px solid var(--ui-surface,#fffdf7);box-shadow:0 0 0 1px var(--ui-border,#d6dbd2)}
[data-accent-preset=moss] .theme-palette-swatch {background:#2e604a}
[data-accent-preset=lake] .theme-palette-swatch {background:#2e687f}
[data-accent-preset=terracotta] .theme-palette-swatch {background:#aa593d}
[data-accent-preset=amber] .theme-palette-swatch {background:#9a661c}
[data-accent-preset=dusk] .theme-palette-swatch {background:#725d79}
[data-accent-preset=maple] .theme-palette-swatch {background:#a74442}
[data-accent-preset=pine] .theme-palette-swatch {background:#286c69}
.theme-palette-custom {margin-top:13px;padding-top:12px;border-top:1px solid var(--ui-border,#d6dbd2)}
.theme-palette-panel[data-custom-active=true] .theme-palette-custom {border-top-color:var(--accent-ui)}
.theme-palette-custom label {display:block;margin-bottom:6px;font-size:12px;font-weight:700}
.theme-palette-fields {display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:8px}
body.beui .theme-palette-fields input[type=color],
.theme-palette-fields input[type=color] {
  width:44px;min-width:44px;height:44px;padding:3px;border-radius:9px;cursor:pointer;
}
body.beui .theme-palette-fields input[type=text],
.theme-palette-fields input[type=text] {width:100%;height:44px;min-height:44px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.theme-palette-apply,.theme-palette-reset {
  min-height:44px;min-width:44px;padding:7px 11px;border:1px solid var(--ui-primary);border-radius:8px;
  background:var(--ui-primary);color:var(--ui-on-primary);font:inherit;font-size:13px;font-weight:550;cursor:pointer;box-shadow:none;
}
.theme-palette-apply:hover {background:var(--ui-primary-hover);border-color:var(--ui-primary-hover)}
.theme-palette-reset {display:block;width:auto;margin:5px 0 0 auto;border-color:transparent;background:transparent;color:var(--ui-muted);font-weight:500}
.theme-palette-reset:hover {background:var(--ui-soft);color:var(--ui-fg)}
.theme-palette-error {min-height:18px;margin:4px 0;color:var(--ui-danger,#a5413d);font-size:11px}
.theme-palette-hex[aria-invalid=true] {border-color:var(--ui-danger,#a5413d)!important}
.theme-palette-trigger-text {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@media(max-width:600px) {
  .theme-palette-panel {
    position:fixed;top:72px;left:12px;right:12px;width:auto;
    max-height:calc(100dvh - 84px - env(safe-area-inset-bottom,0px));overflow:auto;
  }
}
