/* LSSQR brand system. Logo samples: purple #820080, yellow #FFDB5A, navy #15364B. */
:root {
  --brand-purple-50:#fcf3fc; --brand-purple-100:#f8e6f8; --brand-purple-200:#efc8ef;
  --brand-purple-300:#dfa0df; --brand-purple-400:#c966c9; --brand-purple-500:#a52da5;
  --brand-purple-600:#820080; --brand-purple-700:#70006e; --brand-purple-800:#5a0059;
  --brand-purple-900:#420041; --brand-purple-950:#2a0029;
  --brand-yellow-50:#fffdf1; --brand-yellow-100:#fff9d8; --brand-yellow-200:#fff1ad;
  --brand-yellow-300:#ffe77f; --brand-yellow-400:#ffdb5a; --brand-yellow-500:#edc943;
  --brand-yellow-600:#c9a62b; --brand-yellow-700:#96791a; --brand-yellow-800:#6d5818;
  --brand-yellow-900:#4e4017; --brand-yellow-950:#30280f;
  --brand-navy-50:#f1f6f8; --brand-navy-100:#dfeaf0; --brand-navy-200:#bdd4df;
  --brand-navy-300:#91b4c5; --brand-navy-400:#608da4; --brand-navy-500:#396c86;
  --brand-navy-600:#21546d; --brand-navy-700:#15364b; --brand-navy-800:#102d3e;
  --brand-navy-900:#0b2230; --brand-navy-950:#071722;

  --color-primary:var(--brand-purple-600);
  --color-primary-hover:var(--brand-purple-700);
  --color-primary-active:var(--brand-purple-800);
  --color-on-primary:#fff;
  --color-secondary:var(--brand-navy-700);
  --color-secondary-hover:var(--brand-navy-900);
  --color-accent:var(--brand-yellow-400);
  --color-on-accent:var(--brand-navy-950);
  --color-background:#f8f7f9;
  --color-background-warm:#f8f7f2;
  --color-surface:#fff;
  --color-surface-elevated:#fff;
  --color-surface-subtle:var(--brand-purple-50);
  --color-text:#211b27;
  --color-text-secondary:#5e5267;
  --color-text-muted:#6d6075;
  --color-border:#ded5e3;
  --color-border-strong:#9c89a5;
  --color-focus:var(--brand-purple-500);
  --color-success:#286246;
  --color-warning:#805b0e;
  --color-error:#a42b38;
  --color-information:#21546d;
  --color-disabled-background:#eee9f1;
  --color-disabled-text:#65566e;
  --color-on-dark:#fff;
  --color-on-dark-muted:#e6d8ed;
  --color-nav-surface:var(--brand-navy-900);
  --color-nav-active:var(--brand-purple-700);
  --color-row-hover:var(--brand-purple-50);
  --color-row-selected:var(--brand-purple-100);

  --font-body:'DM Sans',Arial,sans-serif;
  --font-heading:'Manrope','DM Sans',Arial,sans-serif;
  --font-size-xs:.75rem; --font-size-sm:.875rem; --font-size-base:1rem;
  --font-size-lg:1.125rem; --font-size-xl:1.5rem;
  --font-weight-regular:400; --font-weight-medium:500; --font-weight-semibold:600;
  --font-weight-bold:700; --font-weight-heavy:800;
  --line-height-tight:1.15; --line-height-body:1.5; --line-height-relaxed:1.7;
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px;
  --space-5:20px; --space-6:24px; --space-8:32px; --space-10:40px;
  --radius-sm:4px; --radius-md:8px; --radius-lg:12px; --radius-xl:16px;
  --shadow-low:0 2px 8px #15364b12;
  --shadow-medium:0 8px 28px #15364b1c;
  --shadow-high:0 20px 48px #15364b26;
  --button-height:44px; --button-height-small:36px; --field-height:44px;
  --motion-fast:160ms; --motion-standard:200ms; --motion-slow:350ms;
  --ease-standard:cubic-bezier(.2,.7,.2,1);
  --z-header:10; --z-overlay:20; --z-dialog:30; --z-toast:40;
  --breakpoint-mobile:680px; --breakpoint-tablet:900px;

  /* Bridges for the existing static site and authentication components. */
  --p:var(--color-primary); --pd:var(--brand-navy-900);
  --y:var(--color-accent); --c:var(--color-background);
  --i:var(--color-text); --m:var(--color-text-muted);
  --l:var(--color-border); --s:var(--font-body); --d:var(--font-heading);
  --ui-ink:var(--color-text); --ui-muted:var(--color-text-secondary);
  --ui-accent:var(--color-primary); --ui-accent-hover:var(--color-primary-hover);
  --ui-canvas:var(--color-background); --ui-surface:var(--color-surface);
  --ui-border:var(--color-border); --ui-control-border:var(--color-border-strong);
  --ui-focus:var(--color-focus); --ui-danger:var(--color-error);
  --ui-success:var(--color-success); --ui-font:var(--font-body);
  --ui-heading:var(--font-heading);
  --button-hover-background:var(--color-primary-hover);
  --button-hover-foreground:var(--color-on-primary);
}

/* An opt-in dark surface is available without changing the user's color scheme. */
[data-theme="dark"] {
  --color-background:var(--brand-navy-950);
  --color-background-warm:var(--brand-navy-950);
  --color-surface:var(--brand-navy-900);
  --color-surface-elevated:var(--brand-navy-800);
  --color-surface-subtle:var(--brand-navy-800);
  --color-text:#f7f4f8; --color-text-secondary:#ded4e2; --color-text-muted:#c9bbc9;
  --color-border:#49606e; --color-border-strong:#8ba1ad;
  --color-focus:var(--brand-yellow-400);
  --color-row-hover:var(--brand-navy-800); --color-row-selected:var(--brand-purple-900);
}

/* Shared color treatment for the existing page families. */
body { color:var(--color-text);word-spacing:.045em; }
:where(h1,h2,h3) { word-spacing:.07em; }
.site-header { background:var(--color-surface); border-bottom-color:var(--color-border); }
.site-nav a:hover,.site-nav summary:hover { color:var(--color-primary); }
.site-nav a:focus-visible,.site-nav summary:focus-visible { outline:2px solid var(--color-focus);outline-offset:4px; }
.button-purple,.button-small,.button-primary { background:var(--color-primary);color:var(--color-on-primary); }
.button-yellow,.button-accent { background:var(--color-accent);color:var(--color-on-accent); }
.button-secondary { background:var(--color-secondary);color:var(--color-on-primary); }
.button-outline { background:transparent;color:var(--color-primary);border:1px solid currentColor; }
.button-ghost,.button-icon { background:transparent;color:var(--color-primary); }
.button-destructive { background:var(--color-error);color:#fff; }
@media(hover:hover) {
  :is(button,.button):not(:disabled):not([aria-disabled="true"]).button-secondary:hover { background:var(--color-secondary-hover)!important;border-color:var(--color-secondary-hover)!important; }
  :is(button,.button):not(:disabled):not([aria-disabled="true"]).button-destructive:hover { background:#81212c!important;border-color:#81212c!important; }
  :is(button,.button):not(:disabled):not([aria-disabled="true"]):is(.button-yellow,.button-accent):hover { background:var(--brand-yellow-500)!important;color:var(--color-on-accent)!important;border-color:var(--brand-yellow-500)!important; }
  :is(button,.button):not(:disabled):not([aria-disabled="true"]):is(.button-outline,.button-ghost,.button-icon):hover { background:var(--color-surface-subtle)!important;color:var(--color-primary-hover)!important;border-color:var(--color-primary-hover)!important; }
}
.button:is(:active,[aria-pressed="true"]) { background:var(--color-primary-active);color:var(--color-on-primary); }
.button:focus-visible,.back-to-top:focus-visible { outline:3px solid var(--color-focus);outline-offset:3px; }
:is(button,.button,input[type="submit"]):is(:disabled,[aria-disabled="true"]) { background:var(--color-disabled-background);color:var(--color-disabled-text);cursor:not-allowed; }
:is(button,.button)[aria-busy="true"] { cursor:wait; }
:is(input,select,textarea):focus-visible { outline:2px solid var(--color-focus);outline-offset:2px; }
input[type="checkbox"],input[type="radio"] { accent-color:var(--color-primary); }
.running-message { background:var(--color-accent);color:var(--color-on-accent); }
.back-to-top { background:var(--color-primary);color:var(--color-on-primary);box-shadow:var(--shadow-medium); }
.back-to-top:hover { background:var(--color-primary-hover);color:var(--color-on-primary); }
.site-footer { background:var(--color-nav-surface);color:var(--color-on-dark-muted); }
.site-footer a { color:var(--color-on-dark); }
.site-footer a:hover { color:var(--color-accent); }
.site-footer .footer-bottom a { color:var(--color-accent); }
.sidebar { background:var(--color-nav-surface); }
.sidebar [data-section].active,.sidebar a.active { background:var(--color-nav-active);box-shadow:inset 3px 0 var(--color-accent); }
.admin-main .stats>div,.admin-main .panel { background:var(--color-surface);border-color:var(--color-border); }
.admin-main tbody tr:hover td { background:var(--color-row-hover); }
.admin-main tbody tr[aria-selected="true"] td { background:var(--color-row-selected); }
.auth-story { background:var(--brand-navy-900); }
.home-premium .site-header { background:var(--color-surface);border-bottom-color:var(--color-border); }
.home-premium .site-nav .button-small { background:var(--color-primary);color:var(--color-on-primary); }
.home-premium .running-message { background:var(--color-accent);color:var(--color-on-accent);border-bottom-color:var(--brand-yellow-600); }
.home-premium .site-footer { background:var(--color-nav-surface); }
.redirect-page { background:var(--color-background);color:var(--color-text);font-family:var(--font-body); }
.redirect-page a { color:var(--color-primary);text-decoration:underline; }
body:has(#message) { background:var(--color-background);border-top-color:var(--color-accent);font-family:var(--font-body); }
#message { background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-medium); }
#message h1 { color:var(--color-text);font-family:var(--font-heading);font-weight:700; }
#message h2 { color:var(--color-primary); }
#message h3,#load { color:var(--color-text-muted); }
#message a { background:var(--color-primary);color:var(--color-on-primary); }
#message a:hover { background:var(--color-primary-hover); }
#message a:focus-visible { outline:3px solid var(--color-focus);outline-offset:3px; }
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .home-minimal .workshop-card-inner { transition:none; }
}
