/* La Perlé · Blush Pink / Burgundy · shared brand palette */
html:root{--brand-bg:#F6E6EA;--brand-surface:#F5EEE5;--brand-raised:#FFFAF2;--brand-open:#EDE1D4;--brand-text:#351923;--brand-muted:#694654;--brand-edge:#C8A5B3;--brand-controlEdge:#906675;--brand-action:#642C42;--brand-actionHover:#78364F;--brand-onAction:#FFF7F9;--brand-secondary:#F5EEE5;--brand-secondaryHover:#EDE1D4;--brand-onSecondary:#351923;--brand-field:#FFFAF2;--brand-focus:#642C42;--brand-disabled:#E7CFD7;--brand-disabledText:#694654;--brand-success:#E1E6EA;--brand-successText:#203342;--brand-gold:#B49153;--brand-goldText:#725321;--brand-buttonGold:#D9B97D;--brand-onGold:#351923;--brand-glow:#EBC9D6;--brand-shadow:#642C4218;color-scheme:light}
html:root:is([data-theme="dark"],[data-lp-theme="dark"],[data-lp-appearance="dark"],[data-bo-theme="dark"]){--brand-bg:#1A0A0F;--brand-surface:#302725;--brand-raised:#3A302C;--brand-open:#40342F;--brand-text:#FFF3F6;--brand-muted:#DBBBC8;--brand-edge:#704355;--brand-controlEdge:#B8899C;--brand-action:#F0C4D3;--brand-actionHover:#F6D9E3;--brand-onAction:#351923;--brand-secondary:#302725;--brand-secondaryHover:#40342F;--brand-onSecondary:#FFF3F6;--brand-field:#261E1D;--brand-focus:#F0C4D3;--brand-disabled:#38212A;--brand-disabledText:#C5A7B4;--brand-success:#26313A;--brand-successText:#D1E2EC;--brand-gold:#E5BF91;--brand-goldText:#E5BF91;--brand-buttonGold:#E5BF91;--brand-onGold:#351923;--brand-glow:#532236;--brand-shadow:#09030766;color-scheme:dark}
html:root body .mp-feier{--brand-bg:#1A0A0F;--brand-surface:#302725;--brand-raised:#3A302C;--brand-open:#40342F;--brand-text:#FFF3F6;--brand-muted:#DBBBC8;--brand-edge:#704355;--brand-controlEdge:#B8899C;--brand-action:#F0C4D3;--brand-actionHover:#F6D9E3;--brand-onAction:#351923;--brand-secondary:#302725;--brand-secondaryHover:#40342F;--brand-onSecondary:#FFF3F6;--brand-field:#261E1D;--brand-focus:#F0C4D3;--brand-disabled:#38212A;--brand-disabledText:#C5A7B4;--brand-success:#26313A;--brand-successText:#D1E2EC;--brand-gold:#E5BF91;--brand-goldText:#E5BF91;--brand-buttonGold:#E5BF91;--brand-onGold:#351923;--brand-glow:#532236;--brand-shadow:#09030766;color-scheme:dark}
/* Map existing systems to semantic roles. Layout, artwork and motion stay intact. */
html:root,
html:root body .mp-feier,
html:root[data-experience=atelier],
html:root body:is(.terminal-journey,.studio-workspace,.club-admin,.website-admin) {
 --cream:var(--brand-bg);--ivory:var(--brand-open);--surface:var(--brand-surface);
 --pearl:var(--brand-open);--ink:var(--brand-text);--ink-soft:var(--brand-muted);
 --accent:var(--brand-goldText);--gold:var(--brand-gold);--gold-deep:var(--brand-goldText);--gold-dark:var(--brand-goldText);--gold-darker:var(--brand-goldText);
 --gold-soft:var(--brand-buttonGold);--button-gold:var(--brand-buttonGold);--button-gold-text:var(--brand-onGold);
 --line:var(--brand-edge);--header-surface:color-mix(in srgb,var(--brand-bg) 97%,transparent);
 --boutique-blush:var(--brand-open);--boutique-gold:var(--brand-gold);
 --bo-bg:var(--brand-bg);--bo-panel:var(--brand-surface);--bo-text:var(--brand-text);--bo-muted:var(--brand-muted);--bo-line:var(--brand-edge);--bo-accent:var(--brand-action);--bo-active:var(--brand-open);
 --mp-bg:var(--brand-bg);--mp-surface:var(--brand-surface);--mp-card:var(--brand-raised);
 --mp-text:var(--brand-text);--mp-text-muted:var(--brand-muted);--mp-line:var(--brand-controlEdge);
 --mp-accent:var(--brand-goldText);--mp-accent-deep:var(--brand-action);--mp-lustre:var(--brand-gold);
 --mp-button-bg:var(--brand-action);--mp-button-text:var(--brand-onAction);
 --mp-member-gradient:linear-gradient(130deg,var(--brand-surface),var(--brand-open));--mp-member-text:var(--brand-text);
 --mp-hover:var(--brand-open);--journey-accent:var(--brand-goldText);
 --lp-bg:var(--brand-bg);--lp-surface:var(--brand-surface);--lp-surface-raised:var(--brand-raised);--lp-fg:var(--brand-text);--lp-muted:var(--brand-muted);
}
html:root body {background-color:var(--brand-bg);color:var(--brand-text)}
html:root body:is(.website-admin,.club-admin,.terminal-journey,.studio-workspace),
html:root[data-experience=atelier] body {
 background-image:radial-gradient(ellipse at 5% 0%,color-mix(in srgb,var(--brand-glow) 38%,transparent),transparent 50%);
 background-repeat:no-repeat;
}
/* Site backgrounds with historical solid colours; no filtering of photos/videos. */
html:root[data-experience=atelier] :is(.order-back,#vertrauen,.pearl-story) {
 background-color:var(--brand-bg);background-image:radial-gradient(ellipse at 90% 20%,color-mix(in srgb,var(--brand-glow) 26%,transparent),transparent 60%);color:var(--brand-text);
}
html:root[data-experience=atelier] .journey-home .home-proof-band{background:var(--brand-surface);border-color:var(--brand-controlEdge)}
html:root[data-experience=atelier] .home-proof-band :is(strong,span,p){color:var(--brand-text)}
html:root[data-experience=atelier] .hero-portrait figcaption{background:color-mix(in srgb,var(--brand-surface) 97%,transparent);color:var(--brand-text);border-color:var(--brand-edge);box-shadow:0 10px 30px var(--brand-shadow)}
html:root[data-experience=atelier] :is(.pearl-chapter h2,.pearl-chapter p,.story-chapter-nav a,.story-skip){color:var(--brand-text)!important}
html:root[data-experience=atelier] .site-footer{background:var(--brand-surface);color:var(--brand-text);border-color:var(--brand-edge)}
html:root[data-experience=atelier] :is(input,select,textarea){background-color:var(--brand-field);color:var(--brand-text);border-color:var(--brand-controlEdge)}
html:root[data-experience=atelier] :is(input,textarea)::placeholder{color:var(--brand-muted);opacity:1}
html:root[data-experience=atelier] .laser-scroll-layout .laser-cinema-stage:after{background:linear-gradient(180deg,var(--brand-bg),transparent 18%,transparent 82%,var(--brand-bg))}
html:root[data-experience=atelier] .site-nav .nav-panel a.nav-analysis{background:var(--brand-open);color:var(--brand-text);border-color:var(--brand-controlEdge)}
/* Public chat, consent and its footer share the same opaque, readable surfaces. */
html:root[data-experience=atelier] :is(.atelier-chat,.chatbot){--chat-bg:var(--brand-surface);--chat-text:var(--brand-text);--chat-muted:var(--brand-muted)}
/* Club presentation uses its existing contrast/component tokens from palette.json. */
html:root body.club-body.lp-studio-preview{background:var(--brand-bg)!important;color:var(--brand-text)}
html:root body.club-body.lp-studio-preview #club.lp-pages.lp-atelier{background:var(--brand-bg)!important}
html:root body.club-body.lp-studio-preview #club.lp-pages.lp-atelier>.brandbar{background:color-mix(in srgb,var(--brand-bg) 92%,transparent)!important}
html:root body.club-body.lp-studio-preview #club.lp-pages.lp-atelier .lp-studio-door-front{--door-glow:var(--brand-gold)}
html:root .driver-popover.lp-tour-popover{background:var(--brand-surface)!important;color:var(--brand-text)!important;border-color:var(--brand-controlEdge)!important}
html:root .driver-popover.lp-tour-popover :is(.driver-popover-title,.driver-popover-description,.driver-popover-close-btn){color:var(--brand-text)!important}
html:root .driver-popover.lp-tour-popover .driver-popover-footer-btn{background:var(--brand-action)!important;color:var(--brand-onAction)!important;text-shadow:none}
html:root[data-experience=atelier] :is(.lp-chat-shell,.lp-chat-body){background:var(--brand-bg)!important;color:var(--brand-text)!important;border-color:var(--brand-edge)!important}
html:root[data-experience=atelier] :is(.lp-chat-head,.lp-chat-form,.lp-chat-note,.lp-chat-links){background:var(--brand-surface)!important;color:var(--brand-muted)!important;border-color:var(--brand-edge)!important}
html:root[data-experience=atelier] :is(.lp-chat-msg.bot,.lp-chat-chip){background:var(--brand-raised)!important;color:var(--brand-text)!important;border-color:var(--brand-controlEdge)!important}
html:root[data-experience=atelier] :is(.lp-chat-close,.lp-chat-head strong,.lp-chat-head small,.lp-chat-links a,.lp-chat-chip:after,.lp-chat-end){color:var(--brand-text)!important}
html:root[data-experience=atelier] .lp-chat-input{background:var(--brand-field)!important;color:var(--brand-text)!important;border-color:var(--brand-controlEdge)!important}
html:root[data-experience=atelier] :is(.lp-chat-send,.lp-chat-msg.user){background:var(--brand-action)!important;color:var(--brand-onAction)!important}
html:root[data-experience=atelier] .lp-chat-input::placeholder{color:var(--brand-muted)!important}
html:root[data-experience=atelier] .klaro{--light1:var(--brand-text);--dark1:var(--brand-surface);--dark2:var(--brand-open);--dark3:var(--brand-controlEdge);--green1:var(--brand-action);--green2:var(--brand-actionHover)}
/* Terminal and studio share existing behaviour and independently saved theme choice. */
html:root body:is(.terminal-journey,.studio-workspace) :is(.card,.customer,.booking,.journey-choice){background:var(--brand-surface);color:var(--brand-text);border-color:var(--brand-edge)}
html:root body:is(.terminal-journey,.studio-workspace) :is(input,select,textarea,.pad){background:var(--brand-field);color:var(--brand-text);border-color:var(--brand-controlEdge)}
html:root body:is(.terminal-journey,.studio-workspace) :is(.main-action,.btn){background:var(--brand-action);color:var(--brand-onAction);border-color:var(--brand-action)}
html:root body:is(.terminal-journey,.studio-workspace) :is(.main-action,.btn):hover{background:var(--brand-actionHover)}
html:root body:is(.terminal-journey,.studio-workspace) :is(.secondary,.studio-actions button){background:var(--brand-secondary);color:var(--brand-text);border-color:var(--brand-controlEdge)}
html:root body.studio-workspace .studio-actions button[aria-pressed=true]{background:var(--brand-action);color:var(--brand-onAction)}
html:root body.studio-workspace .studio-help{color:var(--brand-muted)}
html:root body.studio-workspace .lp-theme{display:inline-flex}
/* Backoffice action text must not inherit the panel colour in dark mode. */
html:root body:is(.website-admin,.club-admin) :is(.btn,.main-action,.bo-skip){background:var(--brand-action)!important;color:var(--brand-onAction)!important;border-color:var(--brand-action)!important}
html:root body:is(.website-admin,.club-admin) :is(.btn,.main-action):hover{background:var(--brand-actionHover)!important}
html:root body:is(.website-admin,.club-admin) :is(input,select,textarea){background:var(--brand-field)!important;color:var(--brand-text)!important;border-color:var(--brand-controlEdge)!important}
html:root body:is(.website-admin,.club-admin) :is(input,textarea)::placeholder{color:var(--brand-muted);opacity:1}
html:root body:is(.website-admin,.club-admin) :is(a,button,input,select,textarea,summary):focus-visible,
html:root body:is(.terminal-journey,.studio-workspace) :is(a,button,input,select,textarea):focus-visible{
 outline:3px solid var(--brand-focus);outline-offset:3px;
}

/* Celebration panels stay dark in both themes; scope their text and controls together. */
html:root body .mp-feier{
 --lp-rule:var(--brand-controlEdge);--lp-action:var(--brand-action);--lp-on-action:var(--brand-onAction);
 --lp-stage:var(--brand-bg);--lp-stage-text:var(--brand-text);--lp-stage-muted:var(--brand-muted);
 --lp-stage-gold:var(--brand-goldText);--lp-stage-card:var(--brand-surface);
}

/* 60/30/10: main canvas stays dominant; functional cards carry secondary tones. */
html:root :is(.family-billing,.family-billing-dialog,.family-plan-card){
 background-color:var(--brand-surface);color:var(--brand-text);
 --card:var(--brand-surface);--ink:var(--brand-text);
}
html:root .family-billing-dialog select option{background:var(--brand-field);color:var(--brand-text)}
/* Standalone Family forms inherit the same theme as the website, including cards. */
html:root body.family-entry{
 --bg:var(--brand-bg);--card:var(--brand-surface);--ink:var(--brand-text);
 --muted:var(--brand-muted);--accent:var(--brand-action);--line:var(--brand-controlEdge);
 --button:var(--brand-action);--on:var(--brand-onAction);
}
html:root body.family-entry :is(input,select,textarea){background:var(--brand-field);color:var(--brand-text)}
html:root body.family-entry :is(input,textarea)::placeholder{color:var(--brand-muted);opacity:1}
html:root body.family-entry button{background:var(--brand-action);color:var(--brand-onAction)}
html:root body.family-entry>.theme-toggle{position:absolute;right:12px;top:12px;width:auto;margin:0;padding:8px 12px;min-height:44px;font-size:14px;line-height:1.3}
html:root[data-experience=atelier] :is(.treatment-panel,.home-analysis-step,.overview-card){background-color:var(--brand-surface);color:var(--brand-text)}
