/* Ecosave v238 — Global Theme Engine + modern UI layer
   The actual palette is injected by config.php through ecosave_theme_style_tag(). */
:root{
  --theme-primary:#295640;--theme-primary-2:#356A4F;--theme-accent:#C1662C;
  --theme-bg:#F0EDE2;--theme-card:#FBFAF6;--theme-soft:#E4EBDE;--theme-line:#DFD8C4;
  --theme-ink:#1B2A20;--theme-muted:#6B7266;--theme-primary-soft:#E4EBDE;--theme-accent-soft:#F3DCC8;
  --theme-primary-hover:#234936;--theme-accent-hover:#C87845;--theme-on-primary:#fff;--theme-on-accent:#111111;
  --theme-radius-sm:10px;--theme-radius:16px;--theme-radius-lg:22px;
  --theme-shadow-sm:0 6px 18px rgba(20,40,30,.055);--theme-shadow:0 16px 44px rgba(20,40,30,.085);
  --theme-focus:0 0 0 4px color-mix(in srgb,var(--theme-primary) 14%,transparent);
}
html{accent-color:var(--theme-primary)}
body{color:var(--theme-ink);background-color:var(--theme-bg);transition:background-color .18s ease,color .18s ease}
a{color:var(--theme-primary)}
::selection{background:var(--theme-primary);color:#fff}
button,a,input,select,textarea{transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease,color .16s ease,transform .16s ease}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:0;box-shadow:var(--theme-focus)!important}
input:focus,select:focus,textarea:focus{border-color:color-mix(in srgb,var(--theme-primary) 58%,var(--theme-line))!important}

/* Public catalog */
body:not(.ecosave-auth) .top{border-color:var(--theme-line)}
#topbar,.topbar{background:var(--theme-primary)!important;color:var(--theme-on-primary)!important}
.leaf,.pd-leaf,.kb-leaf{background:var(--theme-primary)!important}
.cta,.primary,.hero .primary,.selection-review-btn,.apply-filter,.pd-primary,.kb-primary{background:var(--theme-accent)!important;border-color:var(--theme-accent)!important;color:var(--theme-on-accent)!important}
.cta:hover,.primary:hover,.hero .primary:hover,.selection-review-btn:hover,.apply-filter:hover,.pd-primary:hover,.kb-primary:hover{background:var(--theme-accent-hover)!important;border-color:var(--theme-accent-hover)!important}
.chip.active,.priceBtn.active,.select.selected,.kb-add.active{background:var(--theme-primary)!important;border-color:var(--theme-primary)!important;color:var(--theme-on-primary)!important}
.card-view,.select:not(.selected){border-color:var(--theme-primary)!important}
.price,.pd-price,.kb-price,.kb-total strong{color:var(--theme-primary)!important}
.kicker,.badge,.pd-kicker{background:var(--theme-primary-soft)!important;color:var(--theme-primary)!important}
.product,.side,.toolbar,.pd-card,.kb-card,.kb-summary{border-color:var(--theme-line)!important;background-color:var(--theme-card)!important;box-shadow:var(--theme-shadow-sm)}
.product:hover,.kb-card:hover{box-shadow:var(--theme-shadow);transform:translateY(-2px)}
.hero em{color:var(--theme-accent)!important}
.filter-card,.toolbar,.product,.collection-card,.detail-panel{border-color:var(--theme-line)!important}

/* Product details */
.pd-top{background:color-mix(in srgb,var(--theme-card) 90%,transparent)!important;border-color:var(--theme-line)!important}
.pd-card{background:var(--theme-card)!important;border-color:var(--theme-line)!important}
.pd-image{background:linear-gradient(145deg,var(--theme-card),var(--theme-soft))!important}
.pd-grid>div{background:color-mix(in srgb,var(--theme-soft) 58%,var(--theme-card))!important;border-color:var(--theme-line)!important}
.pd-section{border-color:var(--theme-line)!important}

/* Kit builder */
.kb-top{background:var(--theme-card)!important;border-color:var(--theme-line)!important}
.kb-brand,.kb-back{color:var(--theme-primary)!important}
.kb-toolbar p,.kb-card small{color:var(--theme-muted)!important}
.kb-toolbar select,.kb-toolbar input,.kb-summary,.kb-card,.qty,.kb-secondary{border-color:var(--theme-line)!important;background:var(--theme-card)!important}
.kb-pic{background:color-mix(in srgb,var(--theme-soft) 68%,var(--theme-card))!important}
.kb-line,.kb-total{border-color:var(--theme-line)!important}
.kb-export-dialog{background:var(--theme-card)!important;border-color:var(--theme-line)!important}
.kb-export-card{background:color-mix(in srgb,var(--theme-soft) 42%,var(--theme-card))!important;border-color:var(--theme-line)!important}
.kb-export-card:hover{background:var(--theme-primary-soft)!important;border-color:var(--theme-primary)!important}

/* Admin */
.app .side,#adminSide{background:var(--theme-primary)!important}
.app .side h2::before{background:var(--theme-accent)!important}
.app .nav{color:color-mix(in srgb,var(--theme-on-primary) 78%,var(--theme-primary))!important}
.app .nav.active,.app .nav:hover{background:var(--theme-primary-2)!important;color:var(--theme-on-primary)!important}
.main{background:var(--theme-bg)}
.stat,.panel,.dialog{background:var(--theme-card)!important;border-color:var(--theme-line)!important;box-shadow:var(--theme-shadow-sm)}
.stat b{color:var(--theme-primary)!important}
.btn{border-color:var(--theme-line)!important;background:var(--theme-card);color:var(--theme-ink)}
.btn:hover{border-color:color-mix(in srgb,var(--theme-primary) 38%,var(--theme-line))!important;background:color-mix(in srgb,var(--theme-soft) 52%,var(--theme-card))}
.btn.primary{background:var(--theme-accent)!important;border-color:var(--theme-accent)!important;color:var(--theme-on-accent)!important}
.btn.primary:hover{background:var(--theme-accent-hover)!important;border-color:var(--theme-accent-hover)!important}
.mobile-topbar,.admin-mobile-bottom{background:color-mix(in srgb,var(--theme-card) 94%,transparent)!important;border-color:var(--theme-line)!important}
.admin-mobile-bottom button:active,.admin-mobile-bottom button:hover{background:var(--theme-primary-soft)!important;color:var(--theme-primary)!important}
.field input,.field textarea,.field select,.admin-pricing input{border-color:var(--theme-line)!important;background:var(--theme-card);color:var(--theme-ink)}
.kit-option{background:color-mix(in srgb,var(--theme-soft) 52%,var(--theme-card))!important;border-color:var(--theme-line)!important}
.kit-option label{color:var(--theme-primary)!important}

/* Dealer portal */
.dealer-app{background:var(--theme-bg)!important;color:var(--theme-ink)!important}
.dealer-app .dealer-side{background:var(--theme-primary)!important}
.dealer-app .nav{color:color-mix(in srgb,var(--theme-on-primary) 78%,var(--theme-primary))!important}
.dealer-app .nav.active,.dealer-app .nav:hover{background:var(--theme-primary-2)!important;color:var(--theme-on-primary)!important}
.dealer-app .dealer-user{background:var(--theme-primary-2)!important;border-color:color-mix(in srgb,var(--theme-on-primary) 18%,var(--theme-primary))!important;color:color-mix(in srgb,var(--theme-on-primary) 82%,var(--theme-primary))!important}
.dealer-app .dealer-card,.dealer-app .panel,.dealer-app .dp-row{background:var(--theme-card)!important;border-color:var(--theme-line)!important;box-shadow:var(--theme-shadow-sm)}
.dealer-app .dealer-stat b{color:var(--theme-primary)!important}
.dealer-app .top p,.dealer-app .hint,.dealer-app .field label{color:var(--theme-muted)!important}
.dealer-app .btn{background:var(--theme-card)!important;border-color:var(--theme-line)!important;color:var(--theme-ink)!important}
.dealer-app .btn.primary{background:var(--theme-accent)!important;border-color:var(--theme-accent)!important;color:var(--theme-on-accent)!important}
.dealer-app .btn.primary:hover{background:var(--theme-accent-hover)!important}
.dealer-app .field input,.dealer-app .field textarea,.dealer-app .share-box input{background:color-mix(in srgb,var(--theme-soft) 45%,var(--theme-card))!important;border-color:var(--theme-line)!important;color:var(--theme-ink)!important}
.dealer-app .dealer-bottom-nav,.dealer-app .dealer-mobile-bar{background:color-mix(in srgb,var(--theme-card) 94%,transparent)!important;border-color:var(--theme-line)!important}
.dealer-app .dealer-bottom-nav button.active{background:var(--theme-primary-soft)!important;color:var(--theme-primary)!important}
.dealer-app .dealer-side svg circle[fill="#356a4f"]{fill:var(--theme-primary-2)}
.dealer-app .dealer-side svg path[fill="#C1662C"]{fill:var(--theme-accent)}

/* Visual Kit Builder chrome. Canvas/design themes remain separate. */
.vkb-page,.admin-vkb-page{background:var(--theme-bg)!important;color:var(--theme-ink)!important}
.vkb-page .top,.vkb-page .panel,.vkb-page .preview,.vkb-page .toolPanel,.admin-vkb-page .panel,.admin-vkb-page .preview{background:var(--theme-card)!important;border-color:var(--theme-line)!important}
/* Admin Visual Kit has legacy header rules that assumed a dark header. Keep the
   header theme-colored so its brand/actions never become light text on a light card. */
.admin-vkb-page header.top{background:var(--theme-primary)!important;color:var(--theme-on-primary)!important;border-bottom-color:color-mix(in srgb,var(--theme-on-primary) 18%,var(--theme-primary))!important;box-shadow:0 8px 24px color-mix(in srgb,var(--theme-primary) 14%,transparent)!important}
.admin-vkb-page header.top .brand b{color:var(--theme-on-primary)!important}
.admin-vkb-page header.top .brand small{color:color-mix(in srgb,var(--theme-on-primary) 72%,var(--theme-primary))!important}
.admin-vkb-page header.top .mark{background:var(--theme-accent)!important;color:var(--theme-on-accent)!important}
.admin-vkb-page header.top .btn{background:color-mix(in srgb,var(--theme-on-primary) 10%,transparent)!important;color:var(--theme-on-primary)!important;border-color:color-mix(in srgb,var(--theme-on-primary) 26%,transparent)!important}
.admin-vkb-page header.top .btn:hover{background:color-mix(in srgb,var(--theme-on-primary) 17%,transparent)!important;border-color:color-mix(in srgb,var(--theme-on-primary) 38%,transparent)!important}
.admin-vkb-page header.top .btn.blue{background:var(--theme-primary-2)!important;color:var(--theme-on-primary)!important;border-color:color-mix(in srgb,var(--theme-on-primary) 18%,var(--theme-primary-2))!important}
.admin-vkb-page header.top .btn.primary{background:var(--theme-accent)!important;color:var(--theme-on-accent)!important;border-color:var(--theme-accent)!important}
.admin-vkb-page header.top .btn.primary:hover{background:var(--theme-accent-hover)!important;border-color:var(--theme-accent-hover)!important}
.vkb-page .mark{background:var(--theme-primary)!important}
.vkb-page .btn.primary,.vkb-page .themeDone,.vkb-page .themeSaveBtn,.admin-vkb-page .btn.primary{background:var(--theme-accent)!important;border-color:var(--theme-accent)!important;color:var(--theme-on-accent)!important}
.vkb-page .add,.vkb-page .quicktools button.primary,.vkb-page .toolbuttons button.primaryTool{background:var(--theme-primary-soft)!important;color:var(--theme-primary)!important}
.vkb-page .status,.vkb-page .notice{background:var(--theme-primary-soft)!important;color:var(--theme-primary)!important;border-color:var(--theme-line)!important}
.vkb-page .stagewrap{background:linear-gradient(135deg,var(--theme-soft),var(--theme-card))!important}
.vkb-page .layer.active,.vkb-page .tpl.active{border-color:var(--theme-primary)!important;box-shadow:0 0 0 2px color-mix(in srgb,var(--theme-primary) 12%,transparent)!important}


/* v238.2 Admin Visual Preset Editor: remove legacy fixed blue/green controls. */
.admin-vkb-page .layout{background:var(--theme-bg)!important}
.admin-vkb-page .layout>.panel,.admin-vkb-page .preview,.admin-vkb-page .canvasToolbar,.admin-vkb-page .previewDialog{background:var(--theme-card)!important;border-color:var(--theme-line)!important;color:var(--theme-ink)!important}
.admin-vkb-page .stagewrap,.admin-vkb-page .previewCanvasWrap{background:linear-gradient(135deg,var(--theme-soft),var(--theme-card))!important}
.admin-vkb-page .stage{background:#fff!important;border-color:var(--theme-line)!important}
.admin-vkb-page .layout>.panel:first-child .prod{background:var(--theme-card)!important;border-color:var(--theme-line)!important}
.admin-vkb-page .layout>.panel:first-child .pic{background:color-mix(in srgb,var(--theme-soft) 72%,var(--theme-card))!important}
.admin-vkb-page .layout>.panel:first-child .prod .add{background:var(--theme-primary)!important;border-color:var(--theme-primary)!important;color:var(--theme-on-primary)!important}
.admin-vkb-page .layout>.panel:first-child .prod .add:hover{background:var(--theme-primary-hover)!important;border-color:var(--theme-primary-hover)!important;color:var(--theme-on-primary)!important}
.admin-vkb-page .priceLine{color:var(--theme-primary)!important}
.admin-vkb-page .notice,.admin-vkb-page .ruleSummary,.admin-vkb-page .defaultInfo,.admin-vkb-page .rulesCard{background:var(--theme-primary-soft)!important;border-color:var(--theme-line)!important;color:var(--theme-ink)!important}
.admin-vkb-page .status,.admin-vkb-page .tag,.admin-vkb-page .ruleBadge,.admin-vkb-page .defaultSaved{background:var(--theme-primary-soft)!important;color:var(--theme-primary)!important;border-color:var(--theme-line)!important}
.admin-vkb-page .tabBtn,.admin-vkb-page .toolgrid button,.admin-vkb-page .kitCardActions button,.admin-vkb-page .themeChoice{background:var(--theme-card)!important;border-color:var(--theme-line)!important;color:var(--theme-ink)!important}
.admin-vkb-page .tabBtn.active,.admin-vkb-page .themeChoice.active,.admin-vkb-page .toolgrid .blue,.admin-vkb-page .kitCardActions .primary,.admin-vkb-page .autoFitBtn{background:var(--theme-primary-soft)!important;border-color:color-mix(in srgb,var(--theme-primary) 38%,var(--theme-line))!important;color:var(--theme-primary)!important}
.admin-vkb-page .kitCard.active,.admin-vkb-page .layer.active{border-color:var(--theme-primary)!important;box-shadow:0 0 0 2px color-mix(in srgb,var(--theme-primary) 12%,transparent)!important}
.admin-vkb-page .cr input[type=range],.admin-vkb-page .designToggle input{accent-color:var(--theme-primary)!important}
.admin-vkb-page .search,.admin-vkb-page .input,.admin-vkb-page select,.admin-vkb-page .num,.admin-vkb-page textarea{background:var(--theme-card)!important;border-color:var(--theme-line)!important;color:var(--theme-ink)!important}
.admin-vkb-page .previewBar{border-color:var(--theme-line)!important}

/* Standalone Visual Kit lists */
.vk-card,.vk-kit{background:var(--theme-card)!important;border-color:var(--theme-line)!important}
.vk-btn.primary,.vk-tab.active{background:var(--theme-accent)!important;border-color:var(--theme-accent)!important;color:var(--theme-on-accent)!important}
.vk-price{color:var(--theme-primary)!important}.vk-note,.vk-pill{background:var(--theme-primary-soft)!important;color:var(--theme-primary)!important;border-color:var(--theme-line)!important}


/* v238.2 Dealer Visual Kits list */
body .vk-shell{color:var(--theme-ink)!important}
.vk-btn{background:var(--theme-card)!important;border-color:var(--theme-line)!important;color:var(--theme-ink)!important}
.vk-btn:hover{background:var(--theme-primary-soft)!important;border-color:color-mix(in srgb,var(--theme-primary) 34%,var(--theme-line))!important;color:var(--theme-primary)!important}
.vk-note{background:var(--theme-primary-soft)!important;border-color:var(--theme-line)!important;color:var(--theme-ink)!important}
.vk-tab{background:var(--theme-card)!important;border-color:var(--theme-line)!important;color:var(--theme-muted)!important}
.vk-kit.mine{background:linear-gradient(180deg,var(--theme-card),var(--theme-primary-soft))!important;border-color:var(--theme-line)!important}
.vk-preview img,.vk-preview-empty{background:var(--theme-soft)!important;border-color:var(--theme-line)!important}
.vk-input,.vk-select{background:var(--theme-card)!important;border-color:var(--theme-line)!important;color:var(--theme-ink)!important}

/* Auth / verification screens */
.ecosave-auth{background:radial-gradient(circle at 12% 8%,var(--theme-primary-soft),transparent 36rem),linear-gradient(145deg,var(--theme-bg),var(--theme-card))!important;color:var(--theme-ink)!important}
.ecosave-auth .box,.ecosave-auth .change-card{background:var(--theme-card)!important;border:1px solid var(--theme-line);box-shadow:var(--theme-shadow)!important}
.ecosave-auth .logo,.ecosave-auth .ok{color:var(--theme-primary)!important}
.ecosave-auth input{border-color:var(--theme-line)!important;background:color-mix(in srgb,var(--theme-soft) 42%,var(--theme-card))!important;color:var(--theme-ink)!important}
.ecosave-auth button:not(.change-close),.ecosave-auth a.auth-primary,.ecosave-auth .box>a{background:var(--theme-accent)!important;color:var(--theme-on-accent)!important;border-color:var(--theme-accent)!important}
.ecosave-auth .change-link{background:transparent!important;color:var(--theme-primary)!important}

/* Theme settings UI */
.theme-settings-shell{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:18px;align-items:start}
.theme-preset-grid{display:grid;grid-template-columns:repeat(4,minmax(135px,1fr));gap:10px;margin:12px 0 18px}
.theme-preset{appearance:none;text-align:left;border:1px solid var(--theme-line);background:var(--theme-card);border-radius:16px;padding:10px;cursor:pointer;color:var(--theme-ink);position:relative;overflow:hidden}
.theme-preset:hover{transform:translateY(-2px);box-shadow:var(--theme-shadow-sm)}
.theme-preset.active{border-color:var(--theme-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--theme-primary) 13%,transparent)}
.theme-preset-swatches{display:grid;grid-template-columns:1.4fr .8fr .7fr;height:42px;border-radius:10px;overflow:hidden;margin-bottom:9px;border:1px solid rgba(0,0,0,.05)}
.theme-preset b{display:block;font-size:12px}.theme-preset small{display:block;color:var(--theme-muted);font-size:10px;margin-top:2px}
.theme-custom-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.theme-color-field{border:1px solid var(--theme-line);background:color-mix(in srgb,var(--theme-soft) 36%,var(--theme-card));border-radius:14px;padding:12px}
.theme-color-field label{display:block;font-size:11px;font-weight:800;margin-bottom:8px}.theme-color-field input[type=color]{width:100%;height:48px;border:0;border-radius:10px;background:transparent;padding:0;cursor:pointer}
.theme-preview-card{position:sticky;top:20px;background:var(--theme-card);border:1px solid var(--theme-line);border-radius:20px;overflow:hidden;box-shadow:var(--theme-shadow-sm)}
.theme-preview-head{padding:16px;background:var(--theme-primary);color:var(--theme-on-primary)}.theme-preview-head b{font-size:16px}.theme-preview-head small{display:block;opacity:.8;margin-top:4px}
.theme-preview-body{padding:16px;background:var(--theme-bg)}
.theme-preview-mini-card{background:var(--theme-card);border:1px solid var(--theme-line);border-radius:14px;padding:14px;margin-bottom:10px}.theme-preview-mini-card b{color:var(--theme-primary)}
.theme-preview-actions{display:flex;gap:8px}.theme-preview-actions span{padding:8px 11px;border-radius:999px;font-size:10px;font-weight:800}.theme-preview-actions .primary-demo{background:var(--theme-accent);color:var(--theme-on-accent)}.theme-preview-actions .soft-demo{background:var(--theme-primary-soft);color:var(--theme-primary)}
.theme-scope-list{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}.theme-scope-list span{background:var(--theme-primary-soft);color:var(--theme-primary);padding:9px 10px;border-radius:10px;font-size:10px;font-weight:800;text-align:center}
.theme-save-note{font-size:11px;color:var(--theme-muted);line-height:1.5;margin-top:10px}
@media(max-width:1000px){.theme-preset-grid{grid-template-columns:repeat(2,1fr)}.theme-settings-shell{grid-template-columns:1fr}.theme-preview-card{position:static}.theme-scope-list{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.theme-preset-grid{grid-template-columns:1fr 1fr;gap:8px}.theme-custom-grid{grid-template-columns:1fr}.theme-scope-list{grid-template-columns:1fr 1fr}.theme-preset{padding:8px}.theme-preset-swatches{height:34px}}

/* Theme-aware app notifications (replaces plain browser alert after page load). */
.ecosave-toast-host{position:fixed;right:18px;top:18px;z-index:20000;display:grid;gap:9px;width:min(380px,calc(100vw - 28px));pointer-events:none}
.ecosave-toast{pointer-events:auto;display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:start;background:var(--theme-card);color:var(--theme-ink);border:1px solid var(--theme-line);border-radius:16px;padding:12px 12px;box-shadow:var(--theme-shadow);animation:ecosaveToastIn .2s ease-out}
.ecosave-toast-icon{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:var(--theme-primary-soft);color:var(--theme-primary);font-weight:900}
.ecosave-toast-message{font-size:12px;line-height:1.45;padding-top:7px}.ecosave-toast-close{border:0;background:transparent!important;color:var(--theme-muted)!important;padding:5px;font-size:18px;line-height:1;cursor:pointer}
.ecosave-toast.success .ecosave-toast-icon{background:var(--theme-primary-soft);color:var(--theme-primary)}.ecosave-toast.error .ecosave-toast-icon{background:#FDE8E7;color:#B42318}.ecosave-toast.warn .ecosave-toast-icon{background:var(--theme-accent-soft);color:var(--theme-accent)}
.ecosave-toast.leaving{opacity:0;transform:translateY(-6px);transition:.18s ease}
@keyframes ecosaveToastIn{from{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:none}}
@media(max-width:600px){.ecosave-toast-host{left:12px;right:12px;top:12px;width:auto}.ecosave-toast{border-radius:14px}}
