
    .sc-placeholder{background:color-mix(in srgb,currentColor 8%,transparent);
      border:1px solid color-mix(in srgb,currentColor 50%,transparent);
      border-radius:2px;box-sizing:border-box;overflow:hidden}
    @keyframes sc-shine{0%{background-position:100% 50%}100%{background-position:0% 50%}}
    html.sc-dc-streaming .sc-placeholder,
    html.sc-dc-streaming .sc-interp.sc-missing{position:relative;
      background:color-mix(in srgb,currentColor 5%,transparent);
      border-color:transparent}
    html.sc-dc-streaming .sc-placeholder::before,
    html.sc-dc-streaming .sc-interp.sc-missing::before{content:'';
      position:absolute;inset:0;pointer-events:none;
      background:linear-gradient(90deg,rgba(217,119,87,0) 25%,rgba(247,225,211,.95) 37%,rgba(217,119,87,0) 63%);
      background-size:400% 100%;animation:sc-shine 1.4s ease infinite}
    html.sc-dc-streaming .sc-placeholder:nth-child(n+9 of .sc-placeholder)::before,
    html.sc-dc-streaming .sc-interp.sc-missing:nth-child(n+9 of .sc-interp.sc-missing)::before{animation:none;
      background:color-mix(in srgb,currentColor 8%,transparent)}
    .sc-placeholder-error{padding:4px 8px;font:11px/1.4 ui-monospace,monospace;
      color:color-mix(in srgb,currentColor 70%,transparent);word-break:break-word}
    .sc-interp.sc-missing{display:inline-block;width:2em;height:1em;overflow:hidden;
      vertical-align:text-bottom;background:rgba(255,255,255,.3);border:1px solid rgba(0,0,0,.5);
      border-radius:2px;box-sizing:border-box;color:transparent;
      user-select:none}
    .sc-interp.sc-unresolved{font-family:ui-monospace,monospace;font-size:.85em;
      color:color-mix(in srgb,currentColor 50%,transparent);
      background:color-mix(in srgb,currentColor 10%,transparent);border-radius:3px;
      padding:0 3px}
    .sc-host.sc-has-error{position:relative}
    .sc-logic-error{position:absolute;top:8px;left:8px;z-index:2147483647;max-width:60ch;
      padding:6px 10px;background:#b00020;color:#fff;font:12px/1.4 ui-monospace,monospace;
      border-radius:4px;white-space:pre-wrap;pointer-events:none}
    /* Mirrors PRINT_BASELINE_CSS in apps/web deck-stage-export.ts — keep both
       in sync until dc-runtime regains a build step. */
    @media print {
      @page { margin: 0.5cm; }
      figure, table { break-inside: avoid; }
      #dc-root, #dc-root > .sc-host { height: auto; }
      *, *::before, *::after {
        print-color-adjust: exact; -webkit-print-color-adjust: exact;
        backdrop-filter: none !important; -webkit-backdrop-filter: none !important;
        animation-delay: -99s !important; animation-duration: .001s !important;
        animation-iteration-count: 1 !important; animation-fill-mode: both !important;
        animation-play-state: running !important; transition-duration: 0s !important;
      }
    }
x-dc{display:none!important}
html,body{background:#f0eee6}#dc-root>.sc-host{position:relative}
html,body{height:100%;margin:0}#dc-root,#dc-root>.sc-host{height:100%}
/* Loyalsnap Design System v2.2 — tokens, type, dark + admin modes.
   Source of truth: Loyalsnap Design System Figma Variables. Figma wins on any disagreement. */
/* cyrillic-ext */
/* cyrillic */
/* greek-ext */
/* greek */
/* vietnamese */
/* latin-ext */
/* latin */
/* cyrillic-ext */
/* cyrillic */
/* greek-ext */
/* greek */
/* vietnamese */
/* latin-ext */
/* latin */
/* cyrillic-ext */
/* cyrillic */
/* greek-ext */
/* greek */
/* vietnamese */
/* latin-ext */
/* latin */
/* cyrillic-ext */
/* vietnamese */
/* latin-ext */
/* latin */
/* cyrillic-ext */
/* vietnamese */
/* latin-ext */
/* latin */
/* cyrillic-ext */
/* vietnamese */
/* latin-ext */
/* latin */
/* cyrillic-ext */
/* cyrillic */
/* greek */
/* vietnamese */
/* latin-ext */
/* latin */
/* cyrillic-ext */
/* cyrillic */
/* greek */
/* vietnamese */
/* latin-ext */
/* latin */
:root{
/* Fonts */
--font-display:'Plus Jakarta Sans',Helvetica,Arial,sans-serif;
--font-body:'Inter',Helvetica,Arial,sans-serif;
--font-mono:'Roboto Mono',monospace;
/* Brand primitives */
--blue:#3255B8;--blue-hover:#2A489C;--blue-pressed:#223D87;--blue-light:#8FA4DE;
--teal:#1EB298;--teal-strong:#0B7059;
--navy:#2A2F47;
--red:#CC3931;--red-hover:#B0302A;--red-pressed:#982A24;
--amber:#FFAB00;--amber-strong:#7A5600;
--pink:#E0457B;--pink-strong:#8E1F47;
--neutral-dark:#64687D;--neutral-medium:#A6AABC;--neutral:#E8ECEF;--neutral-light:#F3F6FA;
--canvas:#F7F6F5;--white:#FFFFFF;
/* Backgrounds */
--bg-canvas:#F7F6F5;--bg-surface:#FFFFFF;--bg-surface-raised:#FFFFFF;
--bg-sunken:#F3F6FA;--bg-sunken-hover:#E8ECEF;--bg-field:#F3F6FA;
--bg-hover:#F3F6FA;--bg-selected:rgba(50,85,184,0.08);--bg-disabled:#F3F6FA;
--bg-chrome:#2A2F47;--bg-chrome-hover:rgba(255,255,255,0.07);--bg-chrome-active:rgba(255,255,255,0.13);
--bg-inverse:#2A2F47;--bg-overlay:rgba(42,47,71,0.28);
--bg-tint-primary:rgba(50,85,184,0.08);--bg-tint-secondary:rgba(30,178,152,0.10);
--bg-tint-error:rgba(204,57,49,0.08);--bg-tint-warning:rgba(255,171,0,0.14);
--bg-tint-alt:rgba(224,69,123,0.12);--bg-tint-ai:rgba(190,80,200,0.09);
/* Text */
--text-primary:#2A2F47;--text-secondary:#64687D;--text-disabled:#A6AABC;--text-placeholder:#64687D;
--text-brand:#3255B8;--text-link:#3255B8;--text-success:#0B7059;--text-error:#C63530;
--text-warning:#7A5600;--text-alt:#8E1F47;--text-inverse:#FFFFFF;--text-on-brand:#FFFFFF;
--text-chrome:#D5DAE3;--text-chrome-active:#FFFFFF;--text-chrome-muted:#A6AABC;
/* Icons */
--icon-default:#64687D;--icon-strong:#2A2F47;--icon-muted:#A6AABC;--icon-brand:#3255B8;--icon-success:#0B7059;
/* Borders */
--border-subtle:#F3F6FA;--border-default:#E8ECEF;--border-strong:#D5DAE3;
--border-error:#CC3931;--border-focus:#3255B8;--border-focus-ring:rgba(50,85,184,0.35);
--border-chrome:transparent;
/* Actions */
--action-primary:#3255B8;--action-primary-hover:#2A489C;--action-primary-pressed:#223D87;
--action-tinted:rgba(50,85,184,0.08);--action-tinted-hover:rgba(50,85,184,0.16);--action-tinted-pressed:rgba(50,85,184,0.24);
--action-quiet-hover:#F3F6FA;--action-quiet-pressed:#E8ECEF;
--action-destructive:#CC3931;--action-destructive-hover:#B0302A;--action-destructive-pressed:#982A24;
--action-alt:#E0457B;--action-track-on:#1EB298;--action-track-off:#E8ECEF;
/* Status */
--status-success:#1EB298;--status-warning:#FFAB00;--status-error:#CC3931;--status-info:#3255B8;
/* Chart */
--chart-series-1:#3255B8;--chart-series-2:#1EB298;--chart-series-3:#2A2F47;
--chart-series-4:#CC3931;--chart-series-5:#FFAB00;--chart-series-6:#E0457B;--chart-series-alt:#8FA4DE;
--chart-grid:#E8ECEF;--chart-axis-label:#64687D;--chart-value-label:#2A2F47;
/* AI */
--ai-gradient:linear-gradient(135deg,#3255B8,#B740C2);/* @kind color */
--ai-gradient-hover:linear-gradient(135deg,#2A4696,#9E3FA8);/* @kind color */
--ai-icon:#B740C2;--ai-chip-bg:rgba(190,80,200,0.09);--ai-chip-text:#9E3FA8;
--ai-btn-bg:linear-gradient(180deg,#FFFFFF 0%,#F4F4F6 100%);
--ai-btn-bg-hover:linear-gradient(180deg,#F4F4F6 0%,#EAEAEC 100%);
--ai-btn-stroke:#E8ECEF;
/* Spacing — 4px grid */
--space-tiny:4px;--space-inline:6px;--space-xs:8px;--space-glass-inner:10px;--space-sm:12px;
--space-md:16px;--space-base:20px;--space-lg:24px;--space-xl:32px;--space-2xl:40px;--space-3xl:48px;--space-4xl:64px;
/* Radius — nesting scale */
--radius-tiny:4px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-glass:24px;--radius-pill:999px;
/* Elevation — navy-based */
--shadow-1:0 -1px 2px #2A2F4708,0 1px 3px #2A2F4712,0 1px 2px #2A2F470A;
--shadow-2:0 -1px 2px #2A2F470A,0 3px 8px #2A2F471A;
--shadow-3:0 -1px 3px #2A2F470A,0 1px 2px #2A2F4714,0 8px 24px #2A2F471F;
--shadow-card:var(--shadow-1);
/* Liquid Glass */
--glass-bg:rgba(255,255,255,0.50);--glass-blur:10px;
--glass-shadow:inset 0 2px 4px rgba(255,255,255,0.40),0 0 16px rgba(0,0,0,0.08);
--glass-card-bg:#FFFFFF;--glass-card-shadow:0 2px 20px 6px rgba(166,172,209,0.16);
/* Layout */
--sidebar-width:66px;--topbar-height:62px;
}
[data-theme="dark"]{
--bg-canvas:#171A26;--bg-surface:#1F2333;--bg-surface-raised:#252A3D;
--bg-sunken:#171A26;--bg-sunken-hover:#3B4054;--bg-field:#252A3D;
--bg-hover:rgba(255,255,255,0.06);--bg-selected:rgba(50,85,184,0.20);--bg-disabled:#252A3D;
--bg-chrome:#171A26;--bg-inverse:#FFFFFF;--bg-overlay:rgba(0,0,0,0.40);
--bg-tint-primary:rgba(50,85,184,0.20);--bg-tint-secondary:rgba(30,178,152,0.20);
--bg-tint-error:rgba(204,57,49,0.20);--bg-tint-warning:rgba(255,171,0,0.24);--bg-tint-ai:rgba(190,80,200,0.12);
--text-primary:#F3F6FA;--text-secondary:#A6AABC;--text-disabled:#64687D;--text-placeholder:#A6AABC;
--text-brand:#8FA4DE;--text-link:#8FA4DE;--text-success:#3ECFB4;--text-error:#F5776E;--text-warning:#FFC24D;
--text-inverse:#2A2F47;
--icon-default:#A6AABC;--icon-strong:#F3F6FA;--icon-muted:#64687D;--icon-brand:#7B97E0;--icon-success:#3ECFB4;
--border-subtle:#252A3D;--border-default:#3B4054;--border-strong:#64687D;--border-error:#F2685F;--border-focus:#7B97E0;
--border-chrome:rgba(255,255,255,0.13);
--action-tinted:rgba(50,85,184,0.20);--action-tinted-hover:rgba(50,85,184,0.24);--action-tinted-pressed:rgba(50,85,184,0.35);
--action-quiet-hover:rgba(255,255,255,0.06);--action-quiet-pressed:rgba(255,255,255,0.10);
--action-destructive-hover:#C63530;--action-destructive-pressed:#A32B25;--action-track-off:#3B4054;
--status-success:#3ECFB4;--status-error:#F2685F;--status-info:#7B97E0;
--chart-grid:#3B4054;--chart-axis-label:#A6AABC;--chart-value-label:#FFFFFF;
--ai-gradient:linear-gradient(135deg,#7B97E0,#B740C2);/* @kind color */--ai-gradient-hover:linear-gradient(135deg,#3255B8,#B740C2);/* @kind color */
--ai-chip-bg:rgba(190,80,200,0.12);--ai-chip-text:#D98EE0;
--ai-btn-bg:linear-gradient(180deg,#252A3D 0%,#1F2333 100%);--ai-btn-bg-hover:linear-gradient(180deg,#2A2F47 0%,#252A3D 100%);--ai-btn-stroke:#3B4054;
--shadow-1:0 -1px 2px #00000026,0 1px 3px #0000004D,0 1px 2px #00000033;
--shadow-2:0 -1px 2px #00000033,0 3px 8px #00000066;
--shadow-3:0 -1px 3px #00000033,0 1px 2px #0000004D,0 8px 24px #00000099;
--glass-bg:rgba(255,255,255,0.10);
--glass-shadow:inset 0 0 0 1px rgba(255,255,255,0.08),inset 0 1px 0 rgba(255,255,255,0.06),0 8px 28px rgba(0,0,0,0.35);
--glass-card-bg:#252A3D;--glass-card-shadow:0 4px 18px rgba(0,0,0,0.35);
}
[data-mode="admin"]{--action-primary:#CC3931;--action-primary-hover:#C63530;--action-primary-pressed:#A32B25;}
html{font-family:var(--font-body);color:var(--text-primary);-webkit-font-smoothing:antialiased}
body{margin:0;background:var(--bg-canvas);color:var(--text-primary);font:400 14px/20px var(--font-body)}
a{color:var(--text-link)}a:hover{color:var(--action-primary-hover)}
/* Text styles — library names */
.ds-display{font:800 48px/56px var(--font-display);letter-spacing:-0.03em;font-variant-numeric:tabular-nums}
.ds-h1{font:800 32px/40px var(--font-display);letter-spacing:-0.02em}
.ds-h2{font:800 24px/32px var(--font-display);letter-spacing:-0.02em}
.ds-h3{font:700 20px/28px var(--font-display);letter-spacing:-0.01em}
.ds-title{font:700 16px/24px var(--font-display);letter-spacing:-0.01em}
.ds-metric-sm{font:800 20px/28px var(--font-display);font-variant-numeric:tabular-nums}
.ds-data{font:500 16px/24px var(--font-display);font-variant-numeric:tabular-nums}
.ds-body{font:400 14px/20px var(--font-body)}
.ds-body-strong{font:600 14px/20px var(--font-body)}
.ds-button{font:700 14px/20px var(--font-body)}
.ds-small{font:400 12px/16px var(--font-body)}
.ds-small-strong{font:700 12px/16px var(--font-body)}
.ds-micro{font:700 10px/16px var(--font-body);text-transform:uppercase}
body{margin:0;background:#E8ECEF}a{color:#3255B8}a:hover{color:#2A489C}*{box-sizing:border-box}