/*
 * TWE Nexus UI Framework v2.0.0
 * Runtime contract: this file, together with nexus-ui.js, is the only normal
 * framework dependency a consuming Nexus application needs to link.
 *
 * Upstream dependencies are deliberately version-pinned and centrally managed.
 * Do not copy Web Awesome Pro or Font Awesome Pro assets into consuming apps.
 */
@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Sora:wght@500;600;700&display=swap");
@import url("https://ka-p.webawesome.com/kit/1c2e1549ba7f4f43/webawesome@3.14.0/styles/themes/default.css");
@import url("https://ka-p.webawesome.com/kit/1c2e1549ba7f4f43/webawesome@3.14.0/styles/utilities.css");
@import url("https://ka-p.webawesome.com/kit/1c2e1549ba7f4f43/webawesome@3.14.0/styles/native.css");
@import url("https://pro.fontawesome.com/releases/v5.15.4/css/all.css");

:root {
  color-scheme: light;
  --nexus-version: "2.0.0";
  --nexus-font-display: "Sora", "Inter", ui-sans-serif, system-ui, sans-serif;
  --nexus-font-body: "Inter", ui-sans-serif, system-ui, sans-serif;
  --nexus-font-mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  --nexus-canvas: #f8f6f4;
  --nexus-surface: #ffffff;
  --nexus-surface-subtle: #f4f1ef;
  --nexus-surface-raised: #ffffff;
  --nexus-text: #1d1d1b;
  --nexus-text-muted: #5f5d59;
  --nexus-text-faint: #76716c;
  --nexus-text-disabled: #9a9590;
  --nexus-border: #e4e0dd;
  --nexus-border-strong: #b8b3ae;
  --nexus-primary: #315bd6;
  --nexus-primary-hover: #294ebd;
  --nexus-primary-pressed: #233fa3;
  --nexus-primary-soft: #e9eeff;
  --nexus-on-primary: #ffffff;
  --nexus-focus: #315bd6;
  --nexus-success: #267a5c;
  --nexus-success-soft: #eaf6f0;
  --nexus-warning: #946100;
  --nexus-warning-soft: #fff3da;
  --nexus-error: #9f3038;
  --nexus-error-soft: #fff0f1;
  --nexus-chart-1: #315bd6;
  --nexus-chart-2: #657fbd;
  --nexus-chart-3: #946100;
  --nexus-chart-4: #267a5c;
  --nexus-chart-5: #817b75;
  /* Immutable reference/brand tokens, not active interface-theme overrides. */
  --nexus-palette-cobalt-primary: #315bd6;
  --nexus-palette-cobalt-secondary: #657fbd;
  --nexus-palette-cobalt-soft: #e9eeff;
  --nexus-palette-cobalt-inverse: #23355f;
  --nexus-palette-periwinkle-primary: #716bc7;
  --nexus-palette-periwinkle-secondary: #9878b6;
  --nexus-palette-periwinkle-soft: #ebe9ff;
  --nexus-palette-periwinkle-inverse: #373343;
  --nexus-palette-purple-primary: #9096ff;
  --nexus-palette-purple-secondary: #8d669a;
  --nexus-palette-purple-soft: #e8e9ff;
  --nexus-palette-purple-inverse: #302c42;
  --nexus-reference-on-dark: #ffffff;
  --nexus-reference-on-light: #242424;
  --nexus-payment-klarna-surface: #ffb3c7;
  --nexus-payment-klarna-text: #111827;
  --nexus-radius-control: 8px;
  --nexus-radius-card: 12px;
  --nexus-radius-overlay: 16px;
  --nexus-shadow-subtle: 0 1px 2px rgb(35 53 95 / 8%), 0 5px 18px rgb(35 53 95 / 5%);
  --nexus-shadow-raised: 0 12px 36px rgb(35 53 95 / 16%);
  --nexus-shadow-overlay: 0 24px 80px rgb(0 0 0 / 30%);
  --nexus-ease-out: cubic-bezier(0.23, 1, 0.32, 1);
  --nexus-ease-in-out: cubic-bezier(0.77, 0, 0.175, 1);
  --nexus-motion-press: 140ms;
  --nexus-motion-fast: 160ms;
  --nexus-motion-standard: 220ms;
  --nexus-space-1: 4px;
  --nexus-space-2: 8px;
  --nexus-space-3: 12px;
  --nexus-space-4: 16px;
  --nexus-space-5: 20px;
  --nexus-space-6: 24px;
  --nexus-space-8: 32px;
  --nexus-space-10: 40px;
  --nexus-space-12: 48px;
  --nexus-text-size-scale: 1;

  /* Web Awesome Pro token mapping. Nexus owns the values; WA owns behaviour. */
  --wa-font-family-body: var(--nexus-font-body);
  --wa-font-family-heading: var(--nexus-font-display);
  --wa-font-family-code: var(--nexus-font-mono);
  --wa-font-size-scale: var(--nexus-text-size-scale);
  --wa-line-height-normal: 1.5;
  --wa-line-height-condensed: 1.22;
  --wa-font-weight-semibold: 600;
  --wa-font-weight-bold: 700;
  --wa-border-radius-s: 6px;
  --wa-border-radius-m: var(--nexus-radius-control);
  --wa-border-radius-l: var(--nexus-radius-card);
  --wa-border-radius-pill: 999px;
  --wa-color-surface-raised: var(--nexus-surface-raised);
  --wa-color-surface-default: var(--nexus-surface);
  --wa-color-surface-lowered: var(--nexus-surface-subtle);
  --wa-color-surface-border: var(--nexus-border);
  --wa-color-text-normal: var(--nexus-text);
  --wa-color-text-quiet: var(--nexus-text-muted);
  --wa-color-text-link: var(--nexus-primary);
  --wa-color-focus: var(--nexus-focus);
  --wa-color-shadow: color-mix(in srgb, var(--nexus-text) 16%, transparent);
  --wa-color-overlay-modal: rgb(18 24 39 / 58%);
  --wa-color-overlay-inline: color-mix(in srgb, var(--nexus-text) 12%, transparent);
  --wa-color-brand-fill-quiet: var(--nexus-primary-soft);
  --wa-color-brand-fill-normal: color-mix(in srgb, var(--nexus-primary) 15%, var(--nexus-surface));
  --wa-color-brand-fill-loud: var(--nexus-primary);
  --wa-color-brand-border-quiet: color-mix(in srgb, var(--nexus-primary) 26%, var(--nexus-border));
  --wa-color-brand-border-normal: color-mix(in srgb, var(--nexus-primary) 52%, var(--nexus-border));
  --wa-color-brand-border-loud: var(--nexus-primary);
  --wa-color-brand-on-quiet: var(--nexus-primary-pressed);
  --wa-color-brand-on-normal: var(--nexus-primary-pressed);
  --wa-color-brand-on-loud: var(--nexus-on-primary);
  --wa-color-success-fill-quiet: var(--nexus-success-soft);
  --wa-color-success-fill-normal: color-mix(in srgb, var(--nexus-success) 15%, var(--nexus-surface));
  --wa-color-success-fill-loud: var(--nexus-success);
  --wa-color-success-border-quiet: color-mix(in srgb, var(--nexus-success) 28%, var(--nexus-border));
  --wa-color-success-border-normal: color-mix(in srgb, var(--nexus-success) 52%, var(--nexus-border));
  --wa-color-success-border-loud: var(--nexus-success);
  --wa-color-success-on-quiet: var(--nexus-success);
  --wa-color-success-on-normal: var(--nexus-success);
  --wa-color-success-on-loud: #ffffff;
  --wa-color-warning-fill-quiet: var(--nexus-warning-soft);
  --wa-color-warning-fill-normal: color-mix(in srgb, var(--nexus-warning) 14%, var(--nexus-surface));
  --wa-color-warning-fill-loud: var(--nexus-warning);
  --wa-color-warning-border-quiet: color-mix(in srgb, var(--nexus-warning) 28%, var(--nexus-border));
  --wa-color-warning-border-normal: color-mix(in srgb, var(--nexus-warning) 52%, var(--nexus-border));
  --wa-color-warning-border-loud: var(--nexus-warning);
  --wa-color-warning-on-quiet: var(--nexus-warning);
  --wa-color-warning-on-normal: var(--nexus-warning);
  --wa-color-warning-on-loud: #ffffff;
  --wa-color-danger-fill-quiet: var(--nexus-error-soft);
  --wa-color-danger-fill-normal: color-mix(in srgb, var(--nexus-error) 14%, var(--nexus-surface));
  --wa-color-danger-fill-loud: var(--nexus-error);
  --wa-color-danger-border-quiet: color-mix(in srgb, var(--nexus-error) 28%, var(--nexus-border));
  --wa-color-danger-border-normal: color-mix(in srgb, var(--nexus-error) 52%, var(--nexus-border));
  --wa-color-danger-border-loud: var(--nexus-error);
  --wa-color-danger-on-quiet: var(--nexus-error);
  --wa-color-danger-on-normal: var(--nexus-error);
  --wa-color-danger-on-loud: #ffffff;
  --wa-color-neutral-fill-quiet: var(--nexus-surface-subtle);
  --wa-color-neutral-fill-normal: color-mix(in srgb, var(--nexus-text) 7%, var(--nexus-surface));
  --wa-color-neutral-fill-loud: var(--nexus-text);
  --wa-color-neutral-border-quiet: var(--nexus-border);
  --wa-color-neutral-border-normal: var(--nexus-border-strong);
  --wa-color-neutral-border-loud: var(--nexus-text-muted);
  --wa-color-neutral-on-quiet: var(--nexus-text-muted);
  --wa-color-neutral-on-normal: var(--nexus-text);
  --wa-color-neutral-on-loud: var(--nexus-surface);
}

:root[data-nexus-palette="cobalt-neat"] { --nexus-canvas:#f8f6f4; --nexus-surface:#fff; --nexus-surface-subtle:#f4f1ef; --nexus-surface-raised:#fff; --nexus-text:#1d1d1b; --nexus-text-muted:#5f5d59; --nexus-text-faint:#76716c; --nexus-text-disabled:#9a9590; --nexus-border:#e4e0dd; --nexus-border-strong:#b8b3ae; --nexus-primary:#315bd6; --nexus-primary-hover:#294ebd; --nexus-primary-pressed:#233fa3; --nexus-primary-soft:#e9eeff; --nexus-on-primary:#fff; --nexus-focus:#315bd6; --nexus-chart-1:#315bd6; --nexus-chart-2:#657fbd; --nexus-chart-3:#946100; --nexus-chart-4:#267a5c; --nexus-chart-5:#817b75; }
:root[data-nexus-palette="periwinkle-bloom"] { --nexus-canvas:#f4efe6; --nexus-surface:#fff; --nexus-surface-subtle:#f7f4ef; --nexus-surface-raised:#fff; --nexus-text:#28242e; --nexus-text-muted:#625d69; --nexus-text-faint:#746e7b; --nexus-text-disabled:#9a949f; --nexus-border:#ded8d1; --nexus-border-strong:#b9b2be; --nexus-primary:#716bc7; --nexus-primary-hover:#5f59b0; --nexus-primary-pressed:#504a99; --nexus-primary-soft:#ebe9ff; --nexus-on-primary:#fff; --nexus-focus:#5f59b0; --nexus-chart-1:#716bc7; --nexus-chart-2:#9878b6; --nexus-chart-3:#946100; --nexus-chart-4:#267a5c; --nexus-chart-5:#817a86; }
:root[data-nexus-palette="purple-reserve"] { --nexus-canvas:#f8f7fb; --nexus-surface:#fff; --nexus-surface-subtle:#f1f0f6; --nexus-surface-raised:#fff; --nexus-text:#1c1c1a; --nexus-text-muted:#5e5b66; --nexus-text-faint:#746f7c; --nexus-text-disabled:#9d98a3; --nexus-border:#ddd9e4; --nexus-border-strong:#b9b3c3; --nexus-primary:#9096ff; --nexus-primary-hover:#7d82e6; --nexus-primary-pressed:#686cc9; --nexus-primary-soft:#e8e9ff; --nexus-on-primary:#1c1c1a; --nexus-focus:#595ebd; --nexus-chart-1:#595ebd; --nexus-chart-2:#8d669a; --nexus-chart-3:#946100; --nexus-chart-4:#267a5c; --nexus-chart-5:#827c89; }

:root[data-nexus-resolved-theme="dark"],
:root[data-nexus-theme="dark"] {
  color-scheme: dark;
  --nexus-canvas:#101827; --nexus-surface:#182235; --nexus-surface-subtle:#202d42; --nexus-surface-raised:#243249; --nexus-text:#f5f8fc; --nexus-text-muted:#c1ccda; --nexus-text-faint:#94a4b8; --nexus-text-disabled:#68768a; --nexus-border:#334158; --nexus-border-strong:#4a5d77; --nexus-primary:#86a4ff; --nexus-primary-hover:#a0b8ff; --nexus-primary-pressed:#6d8deb; --nexus-primary-soft:#263b6d; --nexus-on-primary:#101827; --nexus-focus:#a9beff; --nexus-success:#6cc99a; --nexus-success-soft:#1f3b31; --nexus-warning:#edbc61; --nexus-warning-soft:#46391f; --nexus-error:#ef8c8c; --nexus-error-soft:#482a2d; --nexus-chart-1:#86a4ff; --nexus-chart-2:#94a7d8; --nexus-chart-3:#edbc61; --nexus-chart-4:#6cc99a; --nexus-chart-5:#657082;
}
:root[data-nexus-resolved-theme="dark"][data-nexus-palette="periwinkle-bloom"],
:root[data-nexus-theme="dark"][data-nexus-palette="periwinkle-bloom"] { --nexus-canvas:#18161b; --nexus-surface:#221f27; --nexus-surface-subtle:#2b2731; --nexus-surface-raised:#342f3b; --nexus-text:#fbf9fd; --nexus-text-muted:#d4ced9; --nexus-text-faint:#b1a9b7; --nexus-text-disabled:#7d7583; --nexus-border:#453f4b; --nexus-border-strong:#665d6d; --nexus-primary:#b7b2ff; --nexus-primary-hover:#c9c5ff; --nexus-primary-pressed:#9d97ec; --nexus-primary-soft:#3b3651; --nexus-on-primary:#201d27; --nexus-focus:#c9c5ff; --nexus-success:#72cda2; --nexus-success-soft:#1f3b31; --nexus-warning:#efbf67; --nexus-warning-soft:#47391f; --nexus-error:#ef9399; --nexus-error-soft:#492b31; --nexus-chart-1:#b7b2ff; --nexus-chart-2:#d1aaf4; --nexus-chart-3:#efbf67; --nexus-chart-4:#72cda2; --nexus-chart-5:#7e7687; }
:root[data-nexus-resolved-theme="dark"][data-nexus-palette="purple-reserve"],
:root[data-nexus-theme="dark"][data-nexus-palette="purple-reserve"] { --nexus-canvas:#17151d; --nexus-surface:#221f2b; --nexus-surface-subtle:#2b2736; --nexus-surface-raised:#342e40; --nexus-text:#fbf9fd; --nexus-text-muted:#d3ced9; --nexus-text-faint:#ada6b4; --nexus-text-disabled:#797280; --nexus-border:#453f50; --nexus-border-strong:#655d72; --nexus-primary:#aeb3ff; --nexus-primary-hover:#c1c5ff; --nexus-primary-pressed:#979cf0; --nexus-primary-soft:#393750; --nexus-on-primary:#1c1c1a; --nexus-focus:#c1c5ff; --nexus-success:#72cda2; --nexus-success-soft:#1f3b31; --nexus-warning:#efbf67; --nexus-warning-soft:#47391f; --nexus-error:#ef9399; --nexus-error-soft:#492b31; --nexus-chart-1:#aeb3ff; --nexus-chart-2:#dc8eb3; --nexus-chart-3:#efbf67; --nexus-chart-4:#72cda2; --nexus-chart-5:#837a8b; }

:root[data-nexus-text-size="small"] { --nexus-text-size-scale: .875; }
:root[data-nexus-text-size="medium"] { --nexus-text-size-scale: 1; }
:root[data-nexus-text-size="large"] { --nexus-text-size-scale: 1.125; }

@media (prefers-color-scheme: dark) {
  :root[data-nexus-theme="system"]:not([data-nexus-resolved-theme="light"]) { color-scheme: dark; --nexus-canvas:#101827; --nexus-surface:#182235; --nexus-surface-subtle:#202d42; --nexus-surface-raised:#243249; --nexus-text:#f5f8fc; --nexus-text-muted:#c1ccda; --nexus-text-faint:#94a4b8; --nexus-text-disabled:#68768a; --nexus-border:#334158; --nexus-border-strong:#4a5d77; --nexus-primary:#86a4ff; --nexus-primary-hover:#a0b8ff; --nexus-primary-pressed:#6d8deb; --nexus-primary-soft:#263b6d; --nexus-on-primary:#101827; --nexus-focus:#a9beff; --nexus-success:#6cc99a; --nexus-success-soft:#1f3b31; --nexus-warning:#edbc61; --nexus-warning-soft:#46391f; --nexus-error:#ef8c8c; --nexus-error-soft:#482a2d; --nexus-chart-1:#86a4ff; --nexus-chart-2:#94a7d8; --nexus-chart-3:#edbc61; --nexus-chart-4:#6cc99a; --nexus-chart-5:#657082; }
}

/* Cross-framework base and Web Awesome part customisation. */
/* A light fallback prevents a visual flash while the Web Awesome autoloader upgrades components. */
wa-button:not(:defined) { min-height:40px; padding:0 13px; display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--nexus-primary); border-radius:var(--nexus-radius-control); background:var(--nexus-primary); color:var(--nexus-on-primary); font:600 .875rem/1 var(--nexus-font-body); }
wa-button[variant="neutral"]:not(:defined) { border-color:var(--nexus-border-strong); background:var(--nexus-surface); color:var(--nexus-text); }
wa-button[variant="danger"]:not(:defined) { border-color:var(--nexus-error); background:var(--nexus-error); color:#fff; }
wa-badge:not(:defined) { padding:3px 7px; display:inline-flex; border-radius:999px; background:var(--nexus-primary-soft); color:var(--nexus-primary-pressed); font:700 .7rem/1 var(--nexus-font-body); }
:where(.nexus-v2-runtime, .nexus-example),
:where(.nexus-v2-runtime, .nexus-example) * { box-sizing: border-box; }
.nexus-v2-runtime { color: var(--nexus-text); font-family: var(--nexus-font-body); }
.nexus-v2-runtime :focus-visible { outline: 2px solid var(--nexus-focus); outline-offset: 2px; }
:is(.nexus-v2-runtime, .nexus-example) wa-button::part(base) { min-height: 40px; border-radius: var(--nexus-radius-control); font-family: var(--nexus-font-body); font-weight: 600; transition: transform var(--nexus-motion-press) var(--nexus-ease-out), box-shadow var(--nexus-motion-fast) var(--nexus-ease-out); }
:is(.nexus-v2-runtime, .nexus-example) wa-button::part(base):active { transform: scale(.97); }
:is(.nexus-v2-runtime, .nexus-example) wa-input::part(base),
:is(.nexus-v2-runtime, .nexus-example) wa-textarea::part(base),
:is(.nexus-v2-runtime, .nexus-example) wa-select::part(combobox) { border-radius: var(--nexus-radius-control); }
:is(.nexus-v2-runtime, .nexus-example) wa-card { border-radius: var(--nexus-radius-card); box-shadow: var(--nexus-shadow-subtle); }
:is(.nexus-v2-runtime, .nexus-example) wa-dialog { --width: min(560px, calc(100vw - 32px)); --spacing: var(--nexus-space-6); --show-duration: var(--nexus-motion-standard); --hide-duration: var(--nexus-motion-fast); }
:is(.nexus-v2-runtime, .nexus-example) wa-data-grid { --max-height: 28rem; }
.nexus-v2-runtime .nexus-v2-icon { font-family: "Font Awesome 5 Pro"; font-weight: 900; }
.nexus-v2-runtime .nexus-v2-eyebrow { color: var(--nexus-text-faint); font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }

/* Nexus-owned composites: application structure, identity and reusable operational templates. */
nexus-app-shell { display: block; min-height: 100%; background: var(--nexus-canvas); color: var(--nexus-text); font-family: var(--nexus-font-body); }
nexus-navigation { display: block; padding: var(--nexus-space-3); border: 1px solid var(--nexus-border); border-radius: var(--nexus-radius-card); background: var(--nexus-surface); box-shadow: var(--nexus-shadow-subtle); }
nexus-navigation [data-nexus-nav-item] { position: relative; min-height: 40px; padding: 0 var(--nexus-space-3); display: flex; align-items: center; gap: var(--nexus-space-2); border-radius: 6px; color: var(--nexus-text-muted); font-size: .875rem; font-weight: 600; text-decoration: none; }
nexus-navigation [data-nexus-nav-item]:hover { background: var(--nexus-surface-subtle); color: var(--nexus-text); }
nexus-navigation [data-nexus-nav-item][aria-current="page"] { background: var(--nexus-primary-soft); color: var(--nexus-primary-pressed); }
nexus-navigation [data-nexus-nav-item][aria-current="page"]::before { position: absolute; inset: 7px auto 7px 0; width: 3px; border-radius: 0 2px 2px 0; background: var(--nexus-primary); content: ""; }
nexus-logo { display: inline-flex; min-width: 0; max-width: 100%; }
.nexus-v2-logo { width: var(--nexus-logo-width, 176px); max-width: 100%; height: auto; display: block; }
nexus-page-template,
nexus-dashboard-template,
nexus-report-template,
nexus-analytics-template { display: block; padding: clamp(20px, 3vw, 48px); border: 1px solid var(--nexus-border); border-radius: var(--nexus-radius-card); background: var(--nexus-surface); color: var(--nexus-text); box-shadow: var(--nexus-shadow-subtle); }
nexus-page-template > header,
nexus-dashboard-template > header,
nexus-report-template > header,
nexus-analytics-template > header { padding-bottom: var(--nexus-space-5); border-bottom: 1px solid var(--nexus-border); }
nexus-page-template h1,
nexus-dashboard-template h1,
nexus-report-template h1,
nexus-analytics-template h1 { margin: var(--nexus-space-1) 0 0; font: 600 var(--nexus-type-h1)/1.2 var(--nexus-font-display); letter-spacing: -.035em; }
nexus-page-template header p,
nexus-dashboard-template header p,
nexus-report-template header p,
nexus-analytics-template header p { max-width: 70ch; margin: var(--nexus-space-2) 0 0; color: var(--nexus-text-muted); line-height: 1.55; }
.nexus-v2-template-grid { margin-top: var(--nexus-space-6); display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--nexus-space-4); }
.nexus-v2-template-panel { min-height: 128px; padding: var(--nexus-space-4); grid-column: span 4; border: 1px solid var(--nexus-border); border-radius: var(--nexus-radius-control); background: var(--nexus-surface-subtle); }
.nexus-v2-template-panel h2 { margin: 0; font: 600 1rem/1.25 var(--nexus-font-display); }
.nexus-v2-template-panel p { margin: var(--nexus-space-2) 0 0; color: var(--nexus-text-muted); font-size: .875rem; line-height: 1.5; }
.nexus-v2-template-panel.is-wide { grid-column: span 8; }
.nexus-v2-template-kpi { display: block; margin-top: var(--nexus-space-3); font: 600 1.8rem/1 var(--nexus-font-display); letter-spacing: -.04em; }

nexus-loading-template,
nexus-empty-state-template,
nexus-error-state-template { display: block; }
.nexus-v2-state { min-height: 220px; padding: var(--nexus-space-8); display: grid; place-items: center; align-content: center; gap: var(--nexus-space-3); border: 1px dashed var(--nexus-border-strong); border-radius: var(--nexus-radius-card); background: var(--nexus-surface-subtle); color: var(--nexus-text); text-align: center; }
.nexus-v2-state__mark { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 50%; background: var(--nexus-primary-soft); color: var(--nexus-primary); font: 700 1.3rem/1 var(--nexus-font-display); }
.nexus-v2-state--error .nexus-v2-state__mark { background: var(--nexus-error-soft); color: var(--nexus-error); }
.nexus-v2-state h2 { margin: 0; font: 600 1.25rem/1.25 var(--nexus-font-display); }
.nexus-v2-state p { max-width: 48ch; margin: 0; color: var(--nexus-text-muted); line-height: 1.55; }
.nexus-v2-loader { width: var(--nexus-loader-size, 48px); height: var(--nexus-loader-size, 48px); display: block; color: var(--nexus-primary); }
.nexus-v2-loader__line { fill: none; stroke: currentColor; stroke-width: 2.5; opacity: .42; }
.nexus-v2-loader__node { fill: currentColor; }
.nexus-v2-loader__signal { fill: var(--nexus-surface); stroke: currentColor; stroke-width: 2.5; }
@media (prefers-reduced-motion: no-preference) {
  .nexus-v2-loader__signal { transform-box: fill-box; transform-origin: center; animation: nexus-v2-pulse 1.6s var(--nexus-ease-out) infinite; }
  .nexus-v2-loader__signal:nth-of-type(5) { animation-delay: .22s; }
  .nexus-v2-loader__signal:nth-of-type(6) { animation-delay: .44s; }
}
@keyframes nexus-v2-pulse { 0%,100% { opacity:.35; transform:scale(.78); } 42% { opacity:1; transform:scale(1); } }

@media (max-width: 760px) {
  nexus-page-template,
  nexus-dashboard-template,
  nexus-report-template,
  nexus-analytics-template { padding: var(--nexus-space-5); }
  .nexus-v2-template-panel,
  .nexus-v2-template-panel.is-wide { grid-column: 1 / -1; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 1ms !important; animation-duration: 1ms !important; animation-iteration-count: 1 !important; }
}

/* Public semantic HTML and layout contract. No parallel Nexus primitive skins. */
:root {
  --nexus-type-body: calc(1rem * var(--nexus-text-size-scale));
  --nexus-type-small: calc(.875rem * var(--nexus-text-size-scale));
  --nexus-type-label: calc(.875rem * var(--nexus-text-size-scale));
  --nexus-type-h1: calc(2rem * var(--nexus-text-size-scale));
  --nexus-type-h2: calc(1.5rem * var(--nexus-text-size-scale));
  --nexus-type-h3: calc(1.25rem * var(--nexus-text-size-scale));
  --nexus-type-h4: calc(1.125rem * var(--nexus-text-size-scale));
  --nexus-type-code: calc(.875rem * var(--nexus-text-size-scale));
}
:where(body) { font-family:var(--nexus-font-body);font-size:var(--nexus-type-body);line-height:1.5; color:var(--nexus-text); background:var(--nexus-canvas); }
:where(body) :where(h1,h2,h3,h4,h5,h6) { font-family:var(--nexus-font-display);font-weight:600;line-height:1.25;overflow-wrap:anywhere; }
:where(body) :where(h1) { font-size:var(--nexus-type-h1); }
:where(body) :where(h2) { font-size:var(--nexus-type-h2); }
:where(body) :where(h3) { font-size:var(--nexus-type-h3); }
:where(body) :where(h4) { font-size:var(--nexus-type-h4); }
:where(body) :where(h5,h6) { font-size:var(--nexus-type-body); }
:where(body) :where(small,figcaption,caption) { font-size:var(--nexus-type-small); }
:where(body) :where(code,pre,kbd,samp) { font-family:var(--nexus-font-mono);font-size:var(--nexus-type-code); }
:where(body) :where(time,data) { font-variant-numeric:tabular-nums; }
:where(.nexus-v2-runtime,.nexus-example) { font-size:var(--nexus-type-body); line-height:1.5; }
:where(.nexus-v2-runtime,.nexus-example) :where(h1,h2,h3,h4,h5,h6) { margin-block:0 .5em; font-family:var(--nexus-font-display); font-weight:600; line-height:1.25; letter-spacing:-.025em; overflow-wrap:anywhere; }
:where(.nexus-v2-runtime,.nexus-example) h1 { font-size:var(--nexus-type-h1); }
:where(.nexus-v2-runtime,.nexus-example) h2 { font-size:var(--nexus-type-h2); }
:where(.nexus-v2-runtime,.nexus-example) h3 { font-size:var(--nexus-type-h3); }
:where(.nexus-v2-runtime,.nexus-example) h4 { font-size:var(--nexus-type-h4); }
:where(.nexus-v2-runtime,.nexus-example) :where(h5,h6) { font-size:var(--nexus-type-body); }
:where(.nexus-v2-runtime,.nexus-example) :where(p,ul,ol,dl,blockquote,figure) { margin-block:0 .75em; }
:where(.nexus-v2-runtime,.nexus-example) small { font-size:var(--nexus-type-small); }
:where(.nexus-v2-runtime,.nexus-example) :where(a) { color:var(--nexus-primary); text-underline-offset:.18em; }
:where(.nexus-v2-runtime,.nexus-example) :where(mark) { background:var(--nexus-warning-soft);color:var(--nexus-warning); }
:where(.nexus-v2-runtime,.nexus-example) :where(abbr[title]) { text-decoration:underline dotted;cursor:help; }
:where(.nexus-v2-runtime,.nexus-example) :where(time,data) { font-variant-numeric:tabular-nums; }
:where(.nexus-v2-runtime,.nexus-example) :where(ul,ol) { padding-inline-start:1.5em; }
:where(.nexus-v2-runtime,.nexus-example) :where(dt) { font-weight:600; }
:where(.nexus-v2-runtime,.nexus-example) :where(dd) { margin-inline-start:0;color:var(--nexus-text-muted); }
:where(.nexus-v2-runtime,.nexus-example) :where(form,fieldset) { min-inline-size:0; }
:where(.nexus-v2-runtime,.nexus-example) :where(fieldset) { border:1px solid var(--nexus-border);border-radius:var(--nexus-radius-control);padding:1rem; }
:where(.nexus-v2-runtime,.nexus-example) :where(legend,label) { font-size:var(--nexus-type-label);font-weight:600; }
:where(.nexus-v2-runtime,.nexus-example) :where(output) { color:var(--nexus-text-muted); }
:where(.nexus-v2-runtime,.nexus-example) :where(img,picture,video,audio) { max-inline-size:100%; }
:where(.nexus-v2-runtime,.nexus-example) :where(figcaption,caption) { font-size:var(--nexus-type-small);text-align:start;color:var(--nexus-text-muted); }
:where(.nexus-v2-runtime,.nexus-example) :where(code,pre,kbd,samp) { font-family:var(--nexus-font-mono);font-size:var(--nexus-type-code); }
:where(.nexus-v2-runtime,.nexus-example) :where(pre) { max-inline-size:100%;overflow:auto;padding:1rem;background:var(--nexus-surface-subtle);border:1px solid var(--nexus-border);border-radius:var(--nexus-radius-control); }
:where(.nexus-v2-runtime,.nexus-example) :where(kbd) { padding:.15em .35em;border:1px solid var(--nexus-border-strong);border-radius:.25em; }
:where(.nexus-v2-runtime,.nexus-example) :where(blockquote) { margin-inline:0;padding-inline:1rem;border-inline-start:3px solid var(--nexus-primary);color:var(--nexus-text-muted); }
:where(.nexus-v2-runtime,.nexus-example) :where(hr) { border:0;border-block-start:1px solid var(--nexus-border); }
:where(.nexus-v2-runtime,.nexus-example) table { inline-size:100%;border-collapse:collapse;font-size:var(--nexus-type-body); }
:where(.nexus-v2-runtime,.nexus-example) :where(th,td) { padding:.625rem;border-block-end:1px solid var(--nexus-border);text-align:start;vertical-align:top; }
:where(.nexus-v2-runtime,.nexus-example) :where(thead,tfoot) { background:var(--nexus-surface-subtle); }
.nexus-stack { display:flex;flex-direction:column;gap:var(--nexus-gap,1rem);min-inline-size:0; }
.nexus-cluster { display:flex;flex-wrap:wrap;align-items:center;gap:var(--nexus-gap,.75rem);min-inline-size:0; }
.nexus-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--nexus-grid-min,16rem)),1fr));gap:var(--nexus-gap,1rem); }
.nexus-container { inline-size:min(100%,var(--nexus-container-max,80rem));margin-inline:auto;padding-inline:clamp(.75rem,3vw,2rem);min-inline-size:0; }
.nexus-table-scroll { inline-size:100%;min-inline-size:0;max-inline-size:100%;overflow:auto;overscroll-behavior-inline:contain; }
.nexus-sr-only { position:absolute;inline-size:1px;block-size:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0; }
.nexus-chart-frame { position:relative;inline-size:100%;block-size:var(--nexus-chart-height,20rem);min-inline-size:0; }
.nexus-chart-frame canvas { max-inline-size:100%; }
:where(wa-chart,wa-bar-chart,wa-line-chart,wa-pie-chart,wa-doughnut-chart,wa-radar-chart,wa-polar-area-chart,wa-scatter-chart,wa-bubble-chart,wa-sparkline) {
  --fill-color-1:var(--nexus-chart-1);--border-color-1:var(--nexus-chart-1);
  --fill-color-2:var(--nexus-chart-2);--border-color-2:var(--nexus-chart-2);
  --fill-color-3:var(--nexus-chart-3);--border-color-3:var(--nexus-chart-3);
  --fill-color-4:var(--nexus-chart-4);--border-color-4:var(--nexus-chart-4);
  --fill-color-5:var(--nexus-chart-5);--border-color-5:var(--nexus-chart-5);
  --fill-color-6:var(--nexus-primary);--border-color-6:var(--nexus-primary);
  --grid-color:var(--nexus-border);
}
:where(wa-input,wa-select,wa-textarea,wa-combobox,wa-number-input) { min-inline-size:0;max-inline-size:100%; }

/* Legacy token aliases are supported for copied Nexus-owned business/layout compositions. */
:root { --surface:var(--nexus-surface);--surface-raised:var(--nexus-surface-raised);--surface-subtle:var(--nexus-surface-subtle);--text-primary:var(--nexus-text);--text-secondary:var(--nexus-text-muted);--primary:var(--nexus-primary);--primary-hover:var(--nexus-primary-hover);--primary-pressed:var(--nexus-primary-pressed);--primary-soft:var(--nexus-primary-soft);--on-primary:var(--nexus-on-primary);--border:var(--nexus-border);--border-strong:var(--nexus-border-strong);--focus-ring:var(--nexus-focus);--success:var(--nexus-success);--warning:var(--nexus-warning);--error:var(--nexus-error);--shape-control:var(--nexus-radius-control);--shape-card:var(--nexus-radius-card);--shape-large:var(--nexus-radius-overlay); }
:root { --text-helper:var(--nexus-type-small);--text-label:var(--nexus-type-label);--text-body:var(--nexus-type-body);--text-display:var(--nexus-type-h1);--nexus-chart-series-2:var(--nexus-chart-2);--nexus-chart-series-3:var(--nexus-chart-3); }

/* Portable examples: class contracts remain useful with the two-file runtime alone. */
.nexus-example { display:grid;gap:1rem;inline-size:100%;min-inline-size:0;max-inline-size:100%;font:400 var(--nexus-type-body)/1.5 var(--nexus-font-body);color:var(--nexus-text); }
.nexus-example :where(section,article,header,footer,div,form,fieldset) { min-inline-size:0; }
.nexus-example :where(.nexus-example__intro,.nexus-example__header) { display:grid;gap:.5rem; }
.nexus-example :where(.nexus-example__intro,.nexus-example__header) > :where(h1,h2,h3,p) { margin:0; }
.nexus-example :where(.nexus-example__intro,.nexus-example__header) p { max-inline-size:72ch;color:var(--nexus-text-muted); }
.nexus-example :where(.nexus-example__row,.nexus-example__actions,.nexus-example__cluster) { display:flex;flex-wrap:wrap;align-items:center;gap:.75rem; }
.nexus-example :where(.nexus-example__stack,.nexus-example__fields) { display:grid;gap:.75rem; }
.nexus-example :where(.nexus-example__panel,.nexus-example__card) { padding:1rem;border:1px solid var(--nexus-border);border-radius:var(--nexus-radius-card);background:var(--nexus-surface); }
.nexus-example :where(.nexus-example__helper,.nexus-example__muted) { color:var(--nexus-text-muted);font-size:var(--nexus-type-small); }
.nexus-example output { display:block;padding:.625rem .75rem;border-inline-start:.25rem solid var(--nexus-primary);background:var(--nexus-primary-soft);font-size:var(--nexus-type-small);color:var(--nexus-text);overflow-wrap:anywhere; }
.nexus-example .fas,.nexus-example .far,.nexus-example .fab { inline-size:1.25em;line-height:1.25;text-align:center;flex-shrink:0; }
.nexus-example a[href] { text-decoration-line:underline;text-decoration-style:solid;text-decoration-thickness:1px;text-underline-offset:.16em; }
.nexus-example wa-breadcrumb-item::part(label) { text-decoration-style:solid;text-decoration-thickness:1px;text-underline-offset:.16em; }
.nexus-example wa-button[href]::part(label) { text-decoration-style:solid;text-decoration-thickness:1px; }
/* A loader's inline variant is an inline status, not a 220px page card. */
nexus-loading-template[variant="inline"] { display:inline-flex;max-inline-size:100%;vertical-align:middle; }
.nexus-v2-state--inline { min-block-size:0;padding:.25rem 0;display:flex;align-items:center;justify-content:flex-start;gap:.625rem;border:0;background:transparent;text-align:start; }
.nexus-v2-state--inline h2 { font:500 var(--nexus-type-small)/1.4 var(--nexus-font-body);letter-spacing:normal; }
.nexus-v2-state--inline .nexus-v2-loader { flex:0 0 auto; }
.nexus-v2-state--section { min-block-size:10rem;padding:1.25rem; }
.nexus-v2-state--section h2,.nexus-v2-state--page h2 { font-size:var(--nexus-type-h3); }
.nexus-v2-state--error { border-color:var(--nexus-error);background:var(--nexus-error-soft); }
.nexus-v2-state--error h2 { color:var(--nexus-error); }

.nexus-example wa-breadcrumb-item[href]::part(label) { text-decoration:underline 1px solid;text-underline-offset:.16em;border-block-end:0; }
.nexus-example wa-breadcrumb-item:not([href])::part(label) { text-decoration:none;border-block-end:0; }

/* Shared specimen composition: intrinsic tracks, not stretched form rows. */
.nexus-example { align-content:start; }
.nexus-example :is(.nexus-example__stack,.nexus-example__fields,.nexus-example__intro,.nexus-example__header) { align-content:start; }
:is(.nexus-v2-runtime,.nexus-example) :is(wa-input,wa-number-input,wa-select,wa-combobox,wa-textarea,wa-date-input,wa-time-input)::part(label) { font-family:var(--nexus-font-body);font-size:var(--nexus-type-label);line-height:1.4; }
:is(.nexus-v2-runtime,.nexus-example) :is(wa-input,wa-number-input,wa-select,wa-combobox,wa-textarea,wa-date-input,wa-time-input)::part(hint) { font-family:var(--nexus-font-body);font-size:var(--nexus-type-small);line-height:1.45; }
:is(.nexus-v2-runtime,.nexus-example) :is(wa-input,wa-number-input,wa-select,wa-combobox,wa-textarea,wa-date-input,wa-time-input)::part(input) { font-family:var(--nexus-font-body);font-size:var(--nexus-type-body); }
:is(.nexus-v2-runtime,.nexus-example) wa-button::part(label) { display:inline-flex;align-items:center;gap:.375em; }

/* The glyph remains compact; the actionable row must not collapse to its 18px icon. */
:is(.nexus-v2-runtime,.nexus-example) wa-checkbox::part(base) { min-block-size:2rem;align-items:center; }
:is(.nexus-v2-runtime,.nexus-example) wa-tag::part(remove-button),
:is(.nexus-v2-runtime,.nexus-example) wa-tag::part(remove-button__base) { min-inline-size:24px;min-block-size:24px; }
@media (max-width:40rem) {
  :is(.nexus-v2-runtime,.nexus-example) wa-checkbox::part(base) { min-block-size:44px; }
}
