/* Garden poster palette only. Original layout, type and illustration rules live in site.css/workbench.css. */
:root {
  --bg:#faf8f2;
  --paper:var(--bg);
  --page:var(--bg);
  --surface:#fffdf7;
  --ink:#343b32;
  --text:var(--ink);
  --muted:#656d5d;
  --accent:#667654;
  --accent-hover:#536344;
  --accent-strong:var(--accent-hover);
  --hover:var(--accent-hover);
  --on-accent:#fffdf7;
  --soft:#eef0e5;
  --accent-soft:#e5eadb;
  --moss:var(--accent);
  --moss-soft:var(--soft);
  --line:#dfe1d3;
  --border:var(--line);
  --line-strong:#bdc7ad;
  --mist:var(--line-strong);
  --field:#848b77;
  --field-border:var(--field);
  --field-bg:var(--surface);
  --brass:#80602f;
  --brass-soft:#f4e8d4;
  --amber:var(--brass-soft);
  --rose:#f1e6d8;
  --violet:#ebece3;
  --blue:#e6ece5;
  --berry:var(--brass);
  --berry-soft:var(--brass-soft);
  --focus:#8a6b39;
  --good:#4f7049;
  --warning:#8c672f;
  --danger:#a8473b;
}
:root[data-theme=dark] {
  --bg:#1e241e;
  --surface:#283026;
  --ink:#f0f0e5;
  --muted:#bcc5af;
  --accent:#bfcea9;
  --accent-hover:#d4e0c0;
  --on-accent:#242c1f;
  --soft:#343e2d;
  --accent-soft:#374431;
  --line:#444d3e;
  --line-strong:#68775a;
  --field:#89957d;
  --brass:#ddbd83;
  --brass-soft:#443a28;
  --rose:#41382c;
  --violet:#373e32;
  --blue:#323e35;
  --focus:#dbc38f;
  --good:#b7cba3;
  --warning:#ddbd83;
  --danger:#f0aa96;
  --paper:var(--bg);
  --page:var(--bg);
  --text:var(--ink);
  --accent-strong:var(--accent-hover);
  --hover:var(--accent-hover);
  --moss:var(--accent);
  --moss-soft:var(--soft);
  --border:var(--line);
  --mist:var(--line-strong);
  --field-border:var(--field);
  --field-bg:var(--surface);
  --amber:var(--brass-soft);
  --berry:var(--brass);
  --berry-soft:var(--brass-soft);
  --twofa-rose:var(--accent);
  --twofa-plum:var(--ink);
  --twofa-blush:var(--soft);
}

/* Existing controls keep their geometry and behavior. */
.primary,
[data-theme=dark] .primary,
.filter-buttons button.active,
[data-theme=dark] .filter-buttons button.active {
  background-color:var(--accent);
  color:var(--on-accent);
}
.primary:hover { background-color:var(--accent-hover); }
button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
.inline-search:focus-within { outline-color:var(--focus); }
.inline-search { border-color:var(--field); }
input::placeholder { color:var(--muted); }
.favorite[aria-pressed=true],
[data-bookmark][aria-pressed=true] { color:var(--brass); }
.favorite[aria-pressed=true] .icon { fill:var(--brass-soft); }
.bookmark-button[aria-pressed=true] { border-color:var(--brass); }
.project-visual > span:last-child { color:var(--on-accent); }

/* Recolor fixed legacy swatches without changing or removing imagery. */
.garden-hero .tiny-flower,
.invitation-flower { color:var(--brass); }
.garden-art::before,
[data-theme=dark] .garden-art::before { background-color:var(--accent-soft); }
.garden-hero .hero-em::after,
[data-theme=dark] .garden-hero .hero-em::after { background-color:var(--line-strong); }
.garden-stamp { border-color:var(--line-strong); }
.tool-art-label,
[data-theme=dark] .tool-art-label {
  background-color:var(--surface);
  color:var(--accent);
  border-color:var(--line-strong);
}
.tool-symbol.violet { color:var(--muted); }
.tool-symbol.amber { color:var(--brass); }
.tool-symbol.blue { color:var(--accent); }
.cover-welcome,
[data-theme=dark] .cover-welcome {
  background-color:var(--soft);
  color:var(--ink);
}
.cover-canvas { background-color:var(--accent); color:var(--on-accent); }
.cover-models,
[data-theme=dark] .cover-models { background-color:var(--violet); color:var(--ink); }
.cover-conversion,
[data-theme=dark] .cover-conversion { background-color:var(--brass-soft); color:var(--brass); }
.cover-status,
[data-theme=dark] .cover-status { background-color:var(--blue); color:var(--ink); }
.cover-photo { background-color:var(--soft); }
.photo-cover-label { background-color:var(--surface); color:var(--ink); }
.connection-state.offline,
[data-theme=dark] .connection-state.offline { color:var(--warning); }

/* Tool-specific color aliases preserve secret masking and validation states. */
:root,
html[data-theme=dark] {
  --twofa-rose:var(--accent);
  --twofa-plum:var(--ink);
  --twofa-blush:var(--soft);
}
.twofa-workspace .secret-field textarea:not(:focus):not([aria-invalid=true]),
.twofa-workspace .setting-grid select,
.fox-match select,
.fox-copy-text { border-color:var(--field); }
.twofa-workspace .secret-field textarea:not(.is-revealed) { color:transparent; }
.twofa-workspace .secret-field textarea.is-revealed { color:var(--ink); }
.twofa-workspace .copy-code,
html[data-theme=dark] .twofa-workspace .copy-code {
  background-color:var(--accent);
  color:var(--on-accent);
}
.twofa-workspace .field-error,
html[data-theme=dark] .twofa-workspace .field-error { color:var(--danger); }
.twofa-workspace .secret-field textarea[aria-invalid=true],
html[data-theme=dark] .twofa-workspace .secret-field textarea[aria-invalid=true] { border-color:var(--danger); }
.fox-card-selected { color:var(--on-accent); }
