/* ============================================================
   LUNO · DESIGN TOKENS — canonical production mirror
   Source of truth for semantic color roles consumed by the portable CSS
   and React adapters. Derived from the LUNO brand package (six primitives
   + 23 semantic tokens). Roles the brand does not define are
   REPOSITORY-DERIVED values under the published derivation rule
   (migration/luno-token-derivation-rule.md); they are not brand-specified
   colours. Brand-derived tones remain available for marks and
   decorative/large applications; functional UI uses the semantic roles.
   ============================================================ */

@font-face{
  font-family:"Geist";
  src:url("assets/fonts/Geist[wght].woff2") format("woff2");
  font-weight:100 900; font-style:normal; font-display:swap;
}
/* Deprecated alias face: one release, same vendored variable font. */
@font-face{
  font-family:"Geist Sans";
  src:url("assets/fonts/Geist[wght].woff2") format("woff2");
  font-weight:100 900; font-style:normal; font-display:swap;
}
@font-face{
  font-family:"Geist Mono";
  src:url("assets/fonts/GeistMono[wght].woff2") format("woff2");
  font-weight:100 900; font-style:normal; font-display:swap;
}

:root,.light,[data-theme="light"]{
  --font-sans:'Geist','Geist Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  --font-mono:'Geist Mono',ui-monospace,SFMono-Regular,'Roboto Mono',Menlo,Monaco,Consolas,monospace;
  --font-tracking:0;

  /* Superficies (light). canvas/surface/surface-subtle are brand tokens. */
  --color-surface:#F8F8F8;
  --color-surface-secondary:#F6F6F6;
  --color-surface-elevated:#FFFFFF;
  --color-surface-card:#FFFFFF;
  --color-input-bg:#FFFFFF;
  --color-hover-bg:#F3F4F6;

  /* Bordes (light). default/control are brand tokens; subtle is derived. */
  --color-border-subtle:#E5E7EB;
  --color-border-default:#E5E7EB;
  --color-border-hover:#9CA3AF;

  /* Texto (light): brand text roles; hint derives from muted. */
  --color-text-primary:#1F2937;
  --color-text-secondary:#4B5563;
  --color-text-muted:#6B7280;
  --color-text-hint:#6B7280;

  /* Marca. Brand mark hue is the LUNO blue; derived light tints beside it. */
  --color-brand-navy:#0B1B3B;
  --color-brand-green:#1D62CC;
  --color-brand-green-light:#8DBBFF;
  --color-brand-accent:#164FA8;
  --color-brand-accent-hover:#13428D;
  --color-accent-soft:rgba(244,154,112,.16);
  --color-highlight:#F49A70;
  --color-highlight-foreground:#080C12;
  --color-wordmark:#080C12;

  /* Semantic actions, accent text and focus. Brand action family. */
  --color-action-primary:#1F2937;
  --color-action-primary-hover:#111827;
  --color-action-primary-foreground:#FFFFFF;
  --color-text-accent:#1F2937;
  --color-focus:#4B5563;
  --color-focus-gap:#FFFFFF;
  --color-focus-ring:var(--focus-ring-width) solid var(--color-focus);

  /* Non-text UI boundaries/indicators (WCAG 2.2 SC 1.4.11). */
  --color-control-border:#7B8797;
  --color-control-border-hover:#3B4250;
  --color-control-border-selected:#1F2937;
  --color-control-indicator:#3B4250;
  --color-control-indicator-selected:#1F2937;
  --color-control-invalid:#DC2626;
  --color-control-track:#596576;
  --color-control-track-interior:#EEF2F7;
  --color-surface-accent:rgba(31,41,55,.04);
  --color-surface-accent-hover:rgba(31,41,55,.07);
  --color-border-accent:rgba(31,41,55,.20);
  --color-border-accent-strong:#9CA3AF;
  --color-selected-bg:rgba(31,41,55,.06);

  /* Shared component roles. */
  --color-sidebar-group-text:#6B7280;
  --color-nav-text:#4B5563;
  --color-nav-icon:#6B7280;
  --color-nav-active-surface:#FFFFFF;
  --color-nav-active-border:#E5E7EB;
  --color-nav-active-text:#1F2937;
  --color-nav-rail-active:rgba(29,98,204,.35);
  --color-avatar-from:#F3F4F6;
  --color-avatar-to:#F3F4F6;
  --color-avatar-text:#1F2937;
  --color-overlay:rgba(8,12,18,.45);
  --color-overlay-backdrop:rgba(8,12,18,.55);
  --color-detail-surface:#FFFFFF;
  --color-detail-surface-header:#F6F6F6;
  --color-detail-border:#E5E7EB;
  --color-verified-icon:#1D62CC;
  --color-verified-icon-foreground:#F7F9FC;
  /* Categorical chart series are independent from semantic status colors. */
  --color-data-series-1:#1D62CC;
  --color-data-series-2:#0B1B3B;
  --color-data-series-3:#B42318;
  --color-data-series-4:#793C1A;
  --color-data-series-5:#3B4250;
  --color-data-series-6:#164FA8;
  --shadow-control:0 1px 2px rgba(0,0,0,.04);
  --shadow-modal:0 2.8px 2.2px rgba(0,0,0,.035),0 6.7px 5.3px rgba(0,0,0,.047),0 12.5px 10px rgba(0,0,0,.06),0 22.3px 17.9px rgba(0,0,0,.07),0 41.8px 33.4px rgba(0,0,0,.086),0 100px 80px rgba(0,0,0,.12);
  --shadow-toast:0 0 0 1px rgba(0,0,0,.06),0 1px 1px -.5px rgba(0,0,0,.06),0 3px 3px -1.5px rgba(0,0,0,.06),0 6px 6px -3px rgba(0,0,0,.06),0 12px 12px -6px rgba(0,0,0,.06),0 24px 24px -12px rgba(0,0,0,.06);
  --shadow-card:0 4px 14px rgba(0,0,0,.04);

  /* Semántica de estado (fondos, texto y bordes). success/warning/danger are
     brand tokens; info/neutral/purple are repository-derived tones. */
  --tone-success-bg:#EAF1FC; --tone-success-tx:#164FA8; --tone-success-bd:rgba(22,79,168,.35);
  --tone-warning-bg:#FFF0E7; --tone-warning-tx:#793C1A; --tone-warning-bd:rgba(121,60,26,.35);
  --tone-danger-bg:#FEF2F2;  --tone-danger-tx:#CC1F1F;  --tone-danger-bd:rgba(220,38,38,.22);
  --tone-info-bg:#EBEEF6;    --tone-info-tx:#1D62CC;    --tone-info-bd:rgba(29,98,204,.32);
  --tone-neutral-bg:#F3F4F6; --tone-neutral-tx:#4B5563; --tone-neutral-bd:#E5E7EB;
  --tone-purple-bg:#F1F1F6;  --tone-purple-tx:#4C5170;  --tone-purple-bd:rgba(76,81,112,.35);

  /* Radii: Kravio standard (ADR 0009). */
  --r-tight:4px; --r-inset:6px; --r-control:8px; --r-surface:12px; --r-media:12px; --r-pill:999px;

  /* Deprecated radius aliases (one release). */
  --r-sm:var(--r-control); --r-md:var(--r-control); --r-lg:var(--r-surface); --r-xl:var(--r-surface); --r-full:var(--r-pill);

  /* Closed foundations: keep semantic component CSS free from local values. */
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-5:20px; --space-6:24px; --space-8:32px; --space-10:40px; --space-12:48px;
  /* Compact type scale: Kravio standard (ADR 0009). Native adapters apply a platform floor. */
  --font-size-caption:11px; --font-size-label:12px; --font-size-body:13px; --font-size-h3:14px; --font-size-h2:20px; --font-size-h1:24px; --font-size-display:64px;
  /* Consumed-but-undeclared role, now declared: base reading size. */
  --font-size-base:14px;
  /* Deprecated type-size aliases (one release). */
  --font-size-xs:var(--font-size-caption); --font-size-sm:var(--font-size-label); --font-size-md:var(--font-size-body); --font-size-lg:var(--font-size-h3); --font-size-xl:var(--font-size-h2); --font-size-2xl:var(--font-size-h1);
  /* Adopted weights: 300 dropped; light alias resolves to regular. */
  --font-weight-regular:400; --font-weight-medium:500; --font-weight-semibold:600;
  --font-weight-light:var(--font-weight-regular);
  --line-height-compact:1.2; --line-height-default:1.5; --line-height-relaxed:1.65;
  --control-compact:28px; --control-default:32px; --control-large:40px; --control-dense-hit-target:32px;
  --shell-sidebar:250px; --shell-sidebar-collapsed:72px; --shell-topbar:52px;
  --z-base:0; --z-sticky:20; --z-navigation:30; --z-popover:35; --z-modal:40; --z-toast:50;
  /* Motion: Kravio standard durations and easing curves (ADR 0009). */
  --motion-fast:120ms; --motion-color:150ms; --motion-normal:180ms; --motion-pop:260ms; --motion-slow:300ms; --motion-sheet:500ms; --motion-enter:520ms; --motion-grow:900ms; --motion-draw:1100ms; --motion-spin:1000ms; --motion-pulse:1200ms; --motion-loop:1400ms; --motion-ping:2400ms;
  --motion-ease:cubic-bezier(.16,1,.3,1); --motion-ease-in-out:cubic-bezier(.65,0,.35,1); --motion-ease-standard:cubic-bezier(.4,0,.2,1); --motion-ease-out:cubic-bezier(0,0,.2,1); --motion-ease-in:cubic-bezier(.4,0,1,1); --motion-ease-linear:linear;
  /* Deprecated motion aliases (one release). */
  --motion-default:var(--motion-normal); --motion-panel:var(--motion-slow); --motion-easing:var(--motion-ease);
  --focus-ring-width:2px; --focus-ring-offset:1px;
}

.dark,[data-theme="dark"]{
  --color-surface:#09090B;
  --color-surface-secondary:#131315;
  --color-surface-elevated:#1F1F23;
  --color-surface-card:#18181B;
  --color-input-bg:#18181B;
  --color-hover-bg:rgba(255,255,255,.05);

  --color-border-subtle:rgba(255,255,255,.07);
  --color-border-default:#2E2E33;
  --color-border-hover:#71717A;

  --color-text-primary:#F4F4F5;
  --color-text-secondary:#A1A1AA;
  --color-text-muted:#A1A1AA;
  --color-text-hint:#71717A;

  --color-brand-navy:#F7F9FC;
  --color-brand-green:#8DBBFF;
  --color-brand-green-light:#C2D8FF;
  --color-brand-accent:#8DBBFF;
  --color-brand-accent-hover:#A9CDFF;
  --color-accent-soft:rgba(244,154,112,.20);
  --color-highlight:#F49A70;
  --color-highlight-foreground:#080C12;
  --color-wordmark:#F7F9FC;

  --color-action-primary:#FAFAFA;
  --color-action-primary-hover:#E4E4E7;
  --color-action-primary-foreground:#09090B;
  --color-text-accent:#F4F4F5;
  --color-focus:#D4D4D8;
  --color-focus-gap:#18181B;
  --color-focus-ring:var(--focus-ring-width) solid var(--color-focus);

  /* Non-text UI boundaries/indicators (WCAG 2.2 SC 1.4.11). */
  --color-control-border:#8190A7;
  --color-control-border-hover:#A8B4C6;
  --color-control-border-selected:#E4E4E7;
  --color-control-indicator:#A8B4C6;
  --color-control-indicator-selected:#E4E4E7;
  --color-control-invalid:#F87171;
  --color-control-track:#A8B4C6;
  --color-control-track-interior:#09090B;
  --color-surface-accent:rgba(255,255,255,.04);
  --color-surface-accent-hover:rgba(255,255,255,.07);
  --color-border-accent:rgba(255,255,255,.16);
  --color-border-accent-strong:#71717A;
  --color-selected-bg:rgba(255,255,255,.08);

  --color-sidebar-group-text:#A1A1AA;
  --color-nav-text:#F4F4F5;
  --color-nav-icon:#A1A1AA;
  --color-nav-active-surface:#18181B;
  --color-nav-active-border:#2E2E33;
  --color-nav-active-text:#F4F4F5;
  --color-nav-rail-active:rgba(141,187,255,.45);
  --color-avatar-from:#27272A;
  --color-avatar-to:#27272A;
  --color-avatar-text:#F4F4F5;
  --color-overlay:rgba(8,12,18,.62);
  --color-overlay-backdrop:rgba(8,12,18,.70);
  --color-detail-surface:#18181B;
  --color-detail-surface-header:#131315;
  --color-detail-border:#2E2E33;
  --color-verified-icon:#8DBBFF;
  --color-verified-icon-foreground:#080C12;
  --color-data-series-1:#8DBBFF;
  --color-data-series-2:#F49A70;
  --color-data-series-3:#FFB4AA;
  --color-data-series-4:#C4CDD9;
  --color-data-series-5:#A8B4C6;
  --color-data-series-6:#F7F9FC;
  --shadow-control:0 1px 2px rgba(0,0,0,.30);
  --shadow-modal:0 12px 24px -6px rgba(0,0,0,.50),0 41.8px 33.4px rgba(0,0,0,.35),0 100px 80px rgba(0,0,0,.45);
  --shadow-toast:0 0 0 1px rgba(255,255,255,.08),0 12px 24px -6px rgba(0,0,0,.50),0 24px 48px -12px rgba(0,0,0,.40);
  --shadow-card:0 4px 14px rgba(0,0,0,.30);

  --tone-success-bg:#0B1B3B; --tone-success-tx:#8DBBFF; --tone-success-bd:rgba(141,187,255,.40);
  --tone-warning-bg:#2C1B14; --tone-warning-tx:#F49A70; --tone-warning-bd:rgba(244,154,112,.40);
  --tone-danger-bg:#2A1414;  --tone-danger-tx:#F87171;  --tone-danger-bd:rgba(248,113,113,.28);
  --tone-info-bg:#1B283A;    --tone-info-tx:#8DBBFF;    --tone-info-bd:rgba(141,187,255,.32);
  --tone-neutral-bg:#27272A; --tone-neutral-tx:#D4D4D8; --tone-neutral-bd:#3F3F46;
  --tone-purple-bg:#202739;  --tone-purple-tx:#C9CDF0;  --tone-purple-bd:rgba(201,205,240,.35);
}

/* Kravio standard keyframes (ADR 0009). Reduced motion is handled where they are used. */
@keyframes luno-rise-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes luno-fade-in{from{opacity:0}to{opacity:1}}
@keyframes luno-draw-x{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}
@keyframes luno-grow-y{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes luno-pop{0%{opacity:0;transform:scale(.6)}60%{opacity:1;transform:scale(1.12)}100%{transform:scale(1)}}
@keyframes luno-dd-in{from{opacity:0;transform:translateY(-4px) scale(.97)}to{opacity:1;transform:none}}
@keyframes luno-dd-out{from{opacity:1}to{opacity:0;transform:scale(.98)}}
@keyframes luno-ring{0%,100%{transform:rotate(0)}20%{transform:rotate(14deg)}40%{transform:rotate(-12deg)}60%{transform:rotate(8deg)}80%{transform:rotate(-4deg)}}
@keyframes luno-ping{75%,100%{opacity:0;transform:scale(2)}}


/* Combined portable LUNO stylesheet. */

/* ============================================================
   LUNO · COMPONENTES — portable canonical CSS.
   Functional colors are semantic token references. Brand green is reserved
   for marks/decorative use; action and status foregrounds use AA roles.
   ============================================================ */

body{
  margin:0; font-family:var(--font-sans); color:var(--color-text-primary);
  background:var(--color-surface); font-size:15px; line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
.v-mono{font-family:var(--font-mono)}

/* ---------- Botones ---------- */
.v-btn{font-family:var(--font-sans);font-weight:400;font-size:13px;border-radius:var(--r-control);padding:0 14px;min-height:var(--control-default);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;transition:background var(--motion-color) var(--motion-ease-standard),border-color var(--motion-color) var(--motion-ease-standard),box-shadow var(--motion-color) var(--motion-ease-standard)}
.v-btn--primary{background:var(--color-action-primary);border-color:var(--color-action-primary);color:var(--color-action-primary-foreground)!important}
.v-btn--primary:hover{background:var(--color-action-primary-hover);border-color:var(--color-action-primary-hover)}
.v-btn--secondary{background:var(--color-surface-elevated);border-color:var(--color-control-border);box-shadow:var(--shadow-control);color:var(--color-text-secondary)}
.v-btn--secondary:hover{background:var(--color-hover-bg);border-color:var(--color-control-border-hover)}
.v-btn--ghost{background:transparent;color:var(--color-text-accent);padding:0 8px}
.v-btn[disabled]{opacity:.6;cursor:not-allowed}

/* ---------- Inputs ---------- */
.v-label{font-size:12px;font-weight:500;color:var(--color-text-secondary);margin-bottom:8px;display:block}
.v-input{display:block;min-height:var(--control-default);width:100%;font-family:var(--font-sans);font-size:14px;padding:10px 14px;border:1px solid var(--color-control-border);border-radius:var(--r-control);background:var(--color-input-bg);box-shadow:var(--shadow-control);color:var(--color-text-primary);outline:none;transition:box-shadow var(--motion-color) var(--motion-ease-standard),border-color var(--motion-color) var(--motion-ease-standard)}
.v-input::placeholder{color:var(--color-text-muted)}
.v-input:hover:not(:disabled){border-color:var(--color-control-border-hover)}
.v-input:focus{outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset);border-color:var(--color-focus)}
.v-input[aria-invalid="true"]{border-color:var(--color-control-invalid)}
.v-hint{font-size:12px;color:var(--color-text-muted);margin-top:8px;line-height:1.5}

/* ---------- Badges de estado (pill con borde) ---------- */
.v-badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;border:1px solid transparent;padding:4px 11px;font-size:12px;font-weight:600;line-height:1.4}
.v-badge--sm{padding:3px 10px;font-size:11px}
.v-badge--success{gap:5px;background:var(--tone-success-bg);color:var(--tone-success-tx);border-color:var(--tone-success-bd)}
/* Success-signal contract: a success surface always carries a non-colour signal.
   The badge class itself draws the check glyph so a plain-HTML success badge can
   never be colour-only; the text label remains the author's obligation. */
.v-badge--success::before{content:"";display:inline-block;width:8px;height:4px;flex:none;border-left:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg) translate(1px,-1px)}
.v-badge--warning{background:var(--tone-warning-bg);color:var(--tone-warning-tx);border-color:var(--tone-warning-bd)}
.v-badge--danger{background:var(--tone-danger-bg);color:var(--tone-danger-tx);border-color:var(--tone-danger-bd)}
.v-badge--info{background:var(--tone-info-bg);color:var(--tone-info-tx);border-color:var(--tone-info-bd)}
.v-badge--neutral{background:var(--tone-neutral-bg);color:var(--tone-neutral-tx);border-color:var(--tone-neutral-bd)}
.v-badge--purple{background:var(--tone-purple-bg);color:var(--tone-purple-tx);border-color:var(--tone-purple-bd)}

/* ---------- Card ---------- */
.v-card{background:var(--color-surface-card);border:1px solid var(--color-border-subtle);border-radius:12px}

/* ---------- Sidebar (blanco, 3 zonas) ---------- */
.v-sidebar{width:var(--shell-sidebar);background:var(--color-surface);border-right:0;display:flex;flex-direction:column;font-family:var(--font-sans)}
.v-sidebar__head{height:var(--shell-topbar);display:flex;align-items:center;justify-content:space-between;margin:0 12px;padding:0;border-bottom:1px dashed var(--color-border-default)}
.v-sidebar__group{font-size:12px;font-weight:500;text-transform:uppercase;color:var(--color-sidebar-group-text);padding:0 12px 8px}
.v-sidebar__zone{padding:0 12px}
.v-sidebar__divider{height:1px;background:var(--color-border-subtle);margin:10px 0}
.v-navitem{display:flex;align-items:center;gap:10px;min-height:40px;padding:8px 10px;border-radius:8px;border:.8px solid transparent;font-size:13px;font-weight:400;color:var(--color-nav-text);cursor:pointer;text-align:left;width:100%;background:transparent}
.v-navitem > svg,.v-navitem .v-navitem__ic{color:var(--color-nav-icon);display:flex;flex-shrink:0}
.v-navitem:hover{background:var(--color-hover-bg);color:var(--color-text-primary)}
.v-navitem:hover .v-navitem__ic{color:var(--color-text-primary)}
.v-navitem.is-active{background:var(--color-nav-active-surface);border-color:var(--color-nav-active-border);color:var(--color-nav-active-text);font-weight:500;box-shadow:var(--shadow-control);cursor:default}
.v-navitem.is-active .v-navitem__ic{color:var(--color-nav-active-text)}
.v-navchildren{position:relative;margin-left:24px;padding-left:8px}
.v-navchildren__rail{position:absolute;left:0;top:4px;bottom:4px;width:1px;background:var(--color-border-subtle)}
.v-navchildren__rail.is-active{background:var(--color-nav-rail-active)}

/* ---------- Topbar (aligned to the sidebar header) ---------- */
.v-topbar{height:var(--shell-topbar);display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 24px;background:var(--color-surface-card);border-bottom:1px solid var(--color-border-subtle)}
.v-crumbs{display:flex;align-items:center;gap:8px;font-size:14px}
.v-crumbs__sep{color:var(--color-text-muted)}
.v-crumbs__muted{color:var(--color-text-secondary)}
.v-crumbs__active{color:var(--color-text-primary);font-weight:500}
.v-search{display:flex;align-items:center;gap:8px;min-height:var(--control-default);background:var(--color-input-bg);border:1px solid var(--color-control-border);border-radius:var(--r-control);box-shadow:var(--shadow-control);padding:8px 14px;color:var(--color-text-secondary);font-size:14px;cursor:pointer}
.v-search:hover{border-color:var(--color-control-border-hover)}
.v-kbd{font-family:var(--font-mono);font-size:11px;background:var(--color-border-subtle);border-radius:4px;padding:1px 6px;color:var(--color-text-secondary)}
.v-iconbtn{width:var(--control-default);height:var(--control-default);border-radius:var(--r-control);display:grid;place-items:center;color:var(--color-text-secondary);border:1px solid transparent;background:transparent;cursor:pointer}
.v-iconbtn--bordered{border-color:var(--color-control-border);box-shadow:var(--shadow-control)}
.v-iconbtn--bordered:hover{border-color:var(--color-control-border-hover)}
.v-avatar{width:32px;height:32px;border-radius:9999px;background:linear-gradient(135deg,var(--color-avatar-from),var(--color-avatar-to));display:grid;place-items:center;color:var(--color-avatar-text);font-size:13px;font-weight:600}

/* ---------- Tabla (registry) ---------- */
.v-table-card{background:var(--color-surface-card);border:1px solid var(--color-border-subtle);border-radius:12px;overflow:hidden}
.v-table-toolbar{padding:16px;border-bottom:1px solid var(--color-border-subtle);display:flex;align-items:center;gap:12px}
.v-table-search{position:relative;flex:1}
.v-table-search input{min-height:var(--control-default);width:100%;border:1px solid var(--color-control-border);background:var(--color-input-bg);border-radius:var(--r-control);box-shadow:var(--shadow-control);padding:10px 16px 10px 40px;font-size:14px;color:var(--color-text-primary);font-family:inherit;outline:none}
.v-table-search input:hover:not(:disabled){border-color:var(--color-control-border-hover)}
.v-table-search input:focus{outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset);border-color:var(--color-focus)}
.v-filter-btn{display:inline-flex;align-items:center;gap:8px;min-height:var(--control-default);border:1px solid var(--color-control-border);background:var(--color-input-bg);box-shadow:var(--shadow-control);color:var(--color-text-secondary);border-radius:var(--r-control);padding:10px 16px;font-size:14px;font-weight:500;cursor:pointer}
.v-filter-btn:hover{border-color:var(--color-control-border-hover)}
.v-filter-btn.is-active{border-color:var(--color-control-border-selected);background:var(--color-surface-accent);color:var(--color-text-accent)}
.v-table{width:100%;border-collapse:collapse}
.v-table thead tr{background:var(--color-input-bg)}
.v-table th{padding:12px 16px;font-size:12px;font-weight:600;color:var(--color-text-secondary);text-align:left}
.v-table th.is-center{text-align:center}
.v-table td{padding:14px 16px;font-size:14px;color:var(--color-text-primary);border-top:1px solid var(--color-surface-secondary)}
.v-table tbody tr{cursor:pointer}
.v-table tbody tr:hover{background:var(--color-input-bg)}
.v-cell-icon{width:32px;height:32px;border-radius:8px;background:var(--color-surface-accent);display:grid;place-items:center;flex:none;color:var(--color-text-accent)}
.v-table-foot{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-top:1px solid var(--color-border-subtle);font-size:13px;color:var(--color-text-secondary)}

/* ---------- Empty state ---------- */
.v-empty{background:var(--color-surface-card);border:1px solid var(--color-border-subtle);border-radius:12px;padding:44px;text-align:center}
.v-empty__t{font-size:16px;font-weight:600;color:var(--color-text-primary);margin-top:16px}
.v-empty__p{font-size:13.5px;color:var(--color-text-secondary);margin:6px 0 18px;line-height:1.55}

/* ---------- Wizard / stepper ---------- */
.v-stepper{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.v-step{display:flex;align-items:center;gap:11px;border:1px solid var(--color-control-border);border-radius:12px;padding:11px 14px;background:var(--color-surface-card)}
.v-step__i{width:26px;height:26px;border-radius:9px;background:var(--color-input-bg);color:var(--color-text-muted);display:grid;place-items:center;font-size:12px;font-weight:600;border:1px solid var(--color-control-border)}
.v-step.is-active{border-color:var(--color-control-border-selected);background:var(--color-surface-accent)}
.v-step.is-active .v-step__i{background:var(--color-control-indicator-selected);color:var(--color-action-primary-foreground);border-color:var(--color-control-indicator-selected)}
.v-step.is-done .v-step__i{background:var(--color-surface-accent);color:var(--color-action-primary-hover);border-color:var(--color-control-border-selected)}
.v-progress{box-sizing:border-box;width:150px;height:6px;border:1px solid var(--color-control-track);border-radius:9999px;background:var(--color-control-track-interior);overflow:hidden}
.v-progress > span{display:block;height:100%;border-radius:inherit;background:var(--color-control-indicator-selected)}

/* ---------- View modal (DetailModalScaffold) ---------- */
.v-modal-backdrop{position:fixed;inset:0;background:var(--color-overlay);display:flex;align-items:center;justify-content:center;padding:28px;z-index:var(--z-modal)}
.v-modal{width:100%;max-width:900px;background:var(--color-surface-card);border:1px solid var(--color-border-subtle);border-radius:14px;box-shadow:var(--shadow-modal);overflow:hidden}
.v-modal__head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;border-bottom:1px solid var(--color-border-subtle);padding:20px 24px}
.v-modal__kicker{margin:0 0 6px;font-size:12px;color:var(--color-text-secondary)}
.v-modal__title{margin:0;font-size:20px;font-weight:500;color:var(--color-text-primary);display:inline-flex;align-items:center;gap:6px}
.v-verified{width:15px;height:15px;flex:none;border-radius:9999px;background:var(--color-verified-icon);display:inline-flex;align-items:center;justify-content:center}
.v-verified::after{content:"";display:block;width:4px;height:7px;transform:translateY(-.5px) rotate(45deg);border-right:1.5px solid var(--color-verified-icon-foreground);border-bottom:1.5px solid var(--color-verified-icon-foreground)}
.v-mtag{display:inline-flex;align-items:center;min-height:24px;border-radius:6px;border:1px solid var(--color-border-default);background:var(--color-surface-card);color:var(--color-text-secondary);padding:0 10px;font-size:11px}
.v-mtag--success{gap:5px;border-color:var(--tone-success-bd);background:var(--tone-success-bg);color:var(--tone-success-tx)}
.v-mtag--success::before{content:"";display:inline-block;width:8px;height:4px;flex:none;border-left:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg) translate(1px,-1px)}
.v-mtag--warning{border-color:var(--tone-warning-bd);background:var(--tone-warning-bg);color:var(--tone-warning-tx)}
.v-modal__tabs{margin:16px 24px;display:flex;gap:4px;flex-wrap:wrap;border:1px solid var(--color-control-border);background:var(--color-surface-card);border-radius:12px;padding:4px}
.v-mtab{min-height:40px;display:inline-flex;align-items:center;border-radius:9px;padding:0 12px;font-size:12.5px;color:var(--color-text-secondary);cursor:pointer;background:transparent;border:none}
.v-mtab:hover{background:var(--color-surface-accent-hover);color:var(--color-text-accent)}
.v-mtab.is-active{background:var(--color-action-primary);color:var(--color-action-primary-foreground)}
.v-modal__body{padding:20px 24px 24px;display:grid;gap:20px}
.v-detail-surface{overflow:hidden;border-radius:12px;border:1px solid var(--color-detail-border);background:var(--color-detail-surface)}
.v-detail-surface__head{border-bottom:1px solid var(--color-detail-border);background:var(--color-detail-surface-header);padding:12px 16px}
.v-detail-surface__head h2{margin:0;font-size:14px;font-weight:500;color:var(--color-text-primary)}
.v-detail-surface__head p{margin:4px 0 0;font-size:12px;color:var(--color-text-secondary);font-weight:400}
.v-field-grid{padding:12px;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.v-field{border:1px solid var(--color-detail-border);border-radius:8px;background:var(--color-detail-surface);padding:10px 12px}
.v-field span{display:block;font-size:11px;color:var(--color-text-secondary);font-weight:400}
.v-field strong{display:block;margin-top:4px;font-size:13px;font-weight:400;color:var(--color-text-primary)}
.v-modal__foot{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--color-border-subtle);padding:14px 24px;font-size:11px;color:var(--color-text-secondary);font-weight:400}

/* ---------- Alertas / notas (ajustadas al contenido) ---------- */
.v-note{display:inline-flex;gap:12px;align-items:flex-start;max-width:480px;background:var(--color-surface-secondary);border:1px solid var(--color-border-subtle);border-radius:14px;padding:13px 15px}
.v-note__ic{width:32px;height:32px;border-radius:9px;flex:none;display:flex;align-items:center;justify-content:center}
.v-note__t{font-size:13.5px;font-weight:600;color:var(--color-text-primary)}
.v-note__d{font-size:12.5px;color:var(--color-text-secondary);margin-top:2px;line-height:1.5}
.v-note--success .v-note__ic{background:var(--tone-success-bg);color:var(--tone-success-tx)}
.v-note--success .v-note__ic::before{content:"";display:block;width:8px;height:4px;flex:none;border-left:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg) translate(1px,-1px)}
.v-note--info .v-note__ic{background:var(--tone-info-bg);color:var(--tone-info-tx)}
.v-note--warning .v-note__ic{background:var(--tone-warning-bg);color:var(--tone-warning-tx)}
.v-note--danger .v-note__ic{background:var(--tone-danger-bg);color:var(--tone-danger-tx)}

/* ---------- Toast (ajustado al largo del texto, sin barra) ---------- */
.v-toast{display:inline-flex;gap:10px;align-items:flex-start;max-width:360px;background:var(--color-surface-card);border:1px solid var(--color-border-subtle);border-radius:12px;padding:11px 12px;box-shadow:var(--shadow-toast)}
.v-toast__ic{width:28px;height:28px;border-radius:8px;flex:none;display:flex;align-items:center;justify-content:center}
.v-toast__t{font-size:13px;font-weight:600;color:var(--color-text-primary)}
.v-toast__d{font-size:12px;color:var(--color-text-secondary);margin-top:1px;line-height:1.45}
.v-toast__x{width:40px;height:40px;padding:0;border:1px solid var(--color-border-subtle);border-radius:var(--r-full);background:var(--color-surface-secondary);box-shadow:var(--shadow-control);flex:none;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);margin:-4px -2px -4px 6px;cursor:pointer}
.v-toast__x:hover{border-color:var(--color-control-border-hover);background:var(--color-surface-accent);color:var(--color-text-accent)}
.v-toast__x:focus-visible{outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}
.v-toast--success .v-toast__ic{background:var(--tone-success-bg);color:var(--tone-success-tx)}
.v-toast--success .v-toast__ic::before{content:"";display:block;width:8px;height:4px;flex:none;border-left:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg) translate(1px,-1px)}
.v-toast--warning .v-toast__ic{background:var(--tone-warning-bg);color:var(--tone-warning-tx)}
.v-toast--danger .v-toast__ic{background:var(--tone-danger-bg);color:var(--tone-danger-tx)}
.v-toast--info .v-toast__ic{background:var(--tone-info-bg);color:var(--tone-info-tx)}
.v-toast--neutral .v-toast__ic{background:var(--tone-neutral-bg);color:var(--tone-neutral-tx)}

/* ---------- Diálogo de confirmación ---------- */
.v-dialog{width:100%;max-width:420px;background:var(--color-surface-card);border:1px solid var(--color-border-subtle);border-radius:14px;box-shadow:var(--shadow-modal);padding:22px}
.v-dialog__eyebrow{color:var(--color-text-secondary);font-weight:600;font-size:11px;text-transform:uppercase}
.v-dialog__title{font-size:17px;font-weight:600;color:var(--color-text-primary);margin:6px 0 8px}
.v-dialog__body{font-size:13.5px;color:var(--color-text-secondary);line-height:1.55}
.v-dialog__actions{display:flex;gap:8px;justify-content:flex-end;margin-top:18px}

/* ---------- Iconography contract ---------- */
.v-icon,.luno-icon{width:18px;height:18px;display:inline-block;flex:none;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}

/* ---------- System-wide accessibility contract ---------- */
:where(button, [href], input, select, textarea, [tabindex]):focus-visible{
  outline:none;
  outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset);
}

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

/* In forced-color environments the user agent's system palette is the source
 * of truth. These rules preserve boundaries, focus and selected state without
 * depending on LUNO brand colors. */
@media (forced-colors:active){
  :where(.v-btn,.v-input,.v-select,.v-check,.v-radio,.v-switch,.v-dialog,.v-modal,.v-note,.v-toast,.v-table-wrap,.v-empty,.v-navitem,.v-mtab){
    border-color:CanvasText;
    box-shadow:none;
    forced-color-adjust:auto;
  }
  :where(button,[href],input,select,textarea,[tabindex]):focus-visible{
    outline:3px solid Highlight;
    outline-offset:3px;
    box-shadow:none;
  }
  :where([aria-current="page"],[aria-selected="true"],[aria-checked="true"],.is-active,.is-selected){
    outline:2px solid Highlight;
    outline-offset:-2px;
  }
  :where(:disabled,[aria-disabled="true"],.is-disabled){
    border-color:GrayText;
    color:GrayText;
  }
  :where(.v-progress>span,.v-switch__thumb,.v-step.is-active .v-step__i){
    background:Highlight;
    forced-color-adjust:none;
  }
  :where(.v-note,.v-toast,.v-empty){
    border:1px solid currentColor;
  }
}

/* Raised surfaces · well, hatch, KPI delta, neutral chart and nav tree.
   Composition recipes over semantic roles only. Light keeps a grey well holding a white card;
   dark keeps the same order on the graphite scale. The highlighted bar and its tip take the
   primary (slate on light, near-white on dark); the hatch is the reference 0.8px hairline. */
.v-well{--v-well-bg:var(--color-surface-secondary);--v-well-edge:var(--color-border-default);--v-well-hatch:var(--color-border-subtle);--v-card-edge:var(--color-border-subtle);--v-bar-bg:var(--color-surface-secondary);--v-bar-edge:var(--color-border-default);--v-bar-active:linear-gradient(180deg,var(--color-text-secondary),var(--color-action-primary))}
:is(.dark,[data-theme="dark"]) .v-well,:is(.dark,[data-theme="dark"]).v-well{--v-well-edge:var(--color-border-subtle);--v-card-edge:var(--color-border-subtle);--v-bar-bg:var(--color-border-subtle);--v-bar-edge:var(--color-border-default);--v-bar-active:linear-gradient(180deg,var(--color-text-secondary),var(--color-action-primary))}
.v-well{position:relative;display:flex;flex-direction:column;min-width:0;padding:4px;border-radius:12px;background-color:var(--v-well-bg);box-shadow:inset 0 0 0 .8px var(--v-well-edge)}
.v-well--hatched::before{content:"";position:absolute;inset:0;z-index:0;border-radius:inherit;pointer-events:none;background:var(--color-text-primary);opacity:.03;-webkit-mask:repeating-linear-gradient(117.44deg,var(--color-text-primary) 0 .8px,transparent .8px 9.565px);mask:repeating-linear-gradient(117.44deg,var(--color-text-primary) 0 .8px,transparent .8px 9.565px)}
:is(.dark,[data-theme="dark"]) .v-well--hatched::before,:is(.dark,[data-theme="dark"]).v-well--hatched::before{opacity:.05}
.v-well--hatched > *{position:relative;z-index:1}
.v-well__head{display:flex;align-items:center;gap:8px;min-height:36px;padding:6px 10px;color:var(--color-text-secondary);font-size:14px;font-weight:500;line-height:1.2}
.v-well__title{flex:1;min-width:0}
.v-well__head > svg,.v-well__head .v-well__ic{color:var(--color-text-muted);flex-shrink:0}
.v-well__body{flex:1;min-width:0;padding:16px 12px 12px;border:.8px solid var(--v-card-edge);border-radius:10px;background:var(--color-surface-card);color:var(--color-text-primary)}
.v-kpi__value{font-size:32px;font-weight:500;line-height:1.1;font-variant-numeric:tabular-nums;color:var(--color-text-primary)}
.v-kpi__meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:8px;font-size:12px;color:var(--color-text-muted)}
.v-delta{display:inline-flex;align-items:center;gap:2px;font-size:12px;font-weight:500;font-variant-numeric:tabular-nums}
.v-delta > svg{width:12px;height:12px;flex-shrink:0}
.v-delta--up{color:var(--tone-success-tx)}
.v-delta--down{color:var(--tone-danger-tx)}
.v-sparkline{display:block;overflow:visible;color:var(--tone-success-tx)}
.v-sparkline--down{color:var(--tone-danger-tx)}
.v-sparkline__line{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.v-sparkline__area{fill:currentColor;fill-opacity:.12;stroke:none}
.v-chart-grid{stroke:var(--color-border-subtle);stroke-width:1}
.v-chart-axis{fill:var(--color-text-muted);color:var(--color-text-muted);font-size:12px;font-variant-numeric:tabular-nums}
.v-chart-bar{background:var(--v-bar-bg);box-shadow:inset 0 0 0 1px var(--v-bar-edge);border-radius:6px 6px 2px 2px;fill:var(--v-bar-bg);stroke:var(--v-bar-edge);stroke-width:1}
.v-chart-bar.is-active{background:var(--v-bar-active);box-shadow:none;fill:var(--color-action-primary);stroke:none}
.v-chart-marker{stroke:var(--color-text-muted);stroke-width:1;stroke-dasharray:4 4}
.v-chart-tip{display:inline-flex;align-items:center;padding:4px 8px;border-radius:6px;background:var(--color-action-primary);color:var(--color-action-primary-foreground);font-size:12px;font-weight:500;font-variant-numeric:tabular-nums}
.v-navtree{position:relative;display:grid;gap:2px;margin:2px 0 4px 21px;padding-left:12px;border-left:1px solid var(--color-border-default)}
.v-navtree > .v-navitem{position:relative;min-height:36px;padding:6px 10px;font-size:13px;color:var(--color-text-secondary)}
.v-navtree > .v-navitem::before{content:"";position:absolute;left:-13px;top:50%;width:9px;height:1px;background:var(--color-border-default)}
.v-navtree > .v-navitem.is-active{color:var(--color-nav-active-text)}
@media (forced-colors:active){
  .v-well,.v-well__body,.v-chart-bar{border:1px solid CanvasText}
  .v-chart-bar.is-active{background:Highlight;forced-color-adjust:none}
  .v-navtree{border-color:CanvasText}
  .v-navtree > .v-navitem::before{background:CanvasText}
}

/* Kravio standard motion utilities (ADR 0009). Stagger with --luno-motion-index. */
.luno-motion-rise{animation:luno-rise-in var(--motion-enter) var(--motion-ease) both;animation-delay:calc(var(--luno-motion-index,0) * 60ms)}
.luno-motion-fade{animation:luno-fade-in var(--motion-slow) var(--motion-ease-out) both}
.luno-motion-pop{animation:luno-pop var(--motion-pop) var(--motion-ease) both}
.luno-motion-ring{transform-origin:50% 2px;animation:luno-ring var(--motion-sheet) var(--motion-ease-in-out)}
.luno-motion-ping{position:relative}
.luno-motion-ping::after{content:"";position:absolute;inset:0;border-radius:inherit;background:inherit;animation:luno-ping var(--motion-ping) var(--motion-ease-out) infinite}
.luno-motion-draw-x{animation:luno-draw-x var(--motion-draw) var(--motion-ease) both}
.luno-motion-grow-y{transform-origin:bottom;animation:luno-grow-y var(--motion-grow) var(--motion-ease) both}
@media (prefers-reduced-motion:reduce){
  .luno-motion-rise,.luno-motion-fade,.luno-motion-pop,.luno-motion-ring,.luno-motion-ping::after,.luno-motion-draw-x,.luno-motion-grow-y{animation:none!important}
}

/* Approved refinement, 2026-09-04. This is an adoption boundary, not a theme.
   No inherited token/font overrides: a preserved Flow subtree keeps its baseline.
   Keep .luno-preserve on a consumer's WHOLE Flow route (canvas + controls).
   LunoFlowList is also excluded automatically, including its action slots.
   Portaled LUNO components carry the same boundary through useLunoThemeScope.
*/
:is(.luno-refined, .luno-refined *):is(.luno-button, .luno-badge, .luno-tag, .v-btn, .v-badge, .v-tag):not(.luno-preserve, .luno-preserve *, .luno-flow-list, .luno-flow-list *) {
  font-weight: var(--font-weight-medium);
}
:is(.luno-refined, .luno-refined *):is(.luno-button, .v-btn, .luno-field__input, .v-input, .v-select, .luno-combobox__input):not(.luno-preserve, .luno-preserve *, .luno-flow-list, .luno-flow-list *) {
  min-height: var(--control-default);
  font-size: var(--font-size-sm);
  border-radius: var(--r-control);
}
:is(.luno-refined, .luno-refined *):is(.luno-page-title, [data-luno-type="page-title"]):not(.luno-preserve, .luno-preserve *, .luno-flow-list, .luno-flow-list *) {
  font-size: var(--font-size-2xl);
  font-weight: var(--font-weight-medium);
  line-height: var(--line-height-compact);
}
:is(.luno-refined, .luno-refined *):is(.luno-section-title, [data-luno-type="section-title"]):not(.luno-preserve, .luno-preserve *, .luno-flow-list, .luno-flow-list *) {
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-medium);
  line-height: var(--line-height-compact);
}
:is(.luno-refined, .luno-refined *):is(.luno-card h2, .luno-dialog__title, .luno-drawer__title, .luno-view-modal__title):not(.luno-preserve, .luno-preserve *, .luno-flow-list, .luno-flow-list *) {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-medium);
  line-height: var(--line-height-compact);
}
:is(.luno-refined, .luno-refined *):is(.luno-prose, [data-luno-type="reading"]):not(.luno-preserve, .luno-preserve *, .luno-flow-list, .luno-flow-list *) {
  font-size: var(--font-size-md);
  line-height: var(--line-height-relaxed);
}

/* Functional boundaries must remain visible; subtle borders are for surfaces.
   Auth keeps its approved composition and mark; the on-gradient action surface is now the LUNO blue family. */
:is(.luno-refined, .luno-refined *):is(.luno-auth-form .luno-field__input):not(.luno-preserve, .luno-preserve *, .luno-flow-list, .luno-flow-list *) {
  border: 1px solid var(--color-control-border);
}

:is(.luno-refined, .luno-refined *):is(.luno-auth-form .luno-field__input:focus-visible):not(.luno-preserve, .luno-preserve *, .luno-flow-list, .luno-flow-list *) {
  outline: var(--focus-ring-width) solid var(--color-focus);
  outline-offset: var(--focus-ring-offset);
}

:is(.luno-refined, .luno-refined *):is(.luno-auth-form .luno-field.is-invalid .luno-field__input):not(.luno-preserve, .luno-preserve *, .luno-flow-list, .luno-flow-list *) {
  border-color: var(--color-control-invalid);
}

:is(.luno-refined, .luno-refined *):is(.luno-auth-form__submit):not(.luno-preserve, .luno-preserve *, .luno-flow-list, .luno-flow-list *) {
  min-width: 0;
  min-height: var(--control-dense-hit-target);
  border-radius: var(--r-control);
  /* Bulk/Vouchers login reference: web/styles/base.css + portable .v-btn. */
  font-size: 13px;
  box-shadow: var(--shadow-control);
  overflow-wrap: anywhere;
}

:is(.luno-refined, .luno-refined *):is(.luno-auth-form__submit:hover:not(:disabled, :focus-visible)):not(.luno-preserve, .luno-preserve *, .luno-flow-list, .luno-flow-list *) {
  box-shadow: var(--shadow-control);
}

:is(.luno-refined, .luno-refined *):is(.luno-auth-form__submit:focus-visible):not(.luno-preserve, .luno-preserve *, .luno-flow-list, .luno-flow-list *) {
  outline: var(--focus-ring-width) solid var(--color-focus);
  outline-offset: var(--focus-ring-offset);
}

:is(.luno-refined, .luno-refined *):is(.luno-auth-shell, .luno-auth-card, .luno-auth-form, .luno-auth-form .luno-field, .luno-auth-form .luno-field__input, .luno-auth-form__submit):not(.luno-preserve, .luno-preserve *, .luno-flow-list, .luno-flow-list *) {
  box-sizing: border-box;
  min-width: 0;
}

:is(.luno-refined, .luno-refined *):is(.luno-auth-card):not(.luno-preserve, .luno-preserve *, .luno-flow-list, .luno-flow-list *) {
  padding: clamp(var(--space-4), 6%, var(--space-8));
}

:is(.luno-refined, .luno-refined *):is(.luno-auth-card__brand):not(.luno-preserve, .luno-preserve *, .luno-flow-list, .luno-flow-list *) {
  flex-wrap: wrap;
  gap: var(--space-2);
}

:is(.luno-refined, .luno-refined *):is(.luno-auth-card__lockup .luno-brand-lockup):not(.luno-preserve, .luno-preserve *, .luno-flow-list, .luno-flow-list *) {
  max-width: 100%;
  font-size: var(--font-size-md);
}

:is(.luno-refined, .luno-refined *):is(.luno-auth-card__lockup .luno-brand-lockup__logo):not(.luno-preserve, .luno-preserve *, .luno-flow-list, .luno-flow-list *) {
  height: var(--space-5);
}

:is(.luno-refined, .luno-refined *):is(.luno-auth-card__lockup .luno-brand-lockup__product):not(.luno-preserve, .luno-preserve *, .luno-flow-list, .luno-flow-list *) {
  min-width: 0;
  white-space: normal;
  overflow-wrap: anywhere;
}

:is(.luno-refined, .luno-refined *):is(.luno-auth-form__submit-content, .luno-auth-form__submit-brand):not(.luno-preserve, .luno-preserve *, .luno-flow-list, .luno-flow-list *) {
  min-width: 0;
  max-width: 100%;
  flex-wrap: wrap;
}

:is(.luno-refined, .luno-refined *):is(.luno-auth-form__submit-mark):not(.luno-preserve, .luno-preserve *, .luno-flow-list, .luno-flow-list *) {
  height: 18px;
}

@media (max-width: 480px), (pointer: coarse) {
  :is(.luno-refined, .luno-refined *):is(.luno-auth-form__submit):not(.luno-preserve, .luno-preserve *, .luno-flow-list, .luno-flow-list *) {
    min-height: var(--control-default);
  }
}

/* Short feedback hugs its content; long text wraps within the containing surface.
   React and portable recipes share the same spacing and dismiss target. */
:is(.luno-refined, .luno-refined *):is(.luno-alert, .luno-toast, .v-note, .v-toast):not(.luno-preserve, .luno-preserve *, .luno-flow-list, .luno-flow-list *) {
  box-sizing: border-box;
  display: inline-flex;
  align-items: flex-start;
  align-self: start;
  justify-self: start;
  width: fit-content;
  min-width: 0;
  max-width: min(100%, 360px);
  min-height: 0;
  height: auto;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-3);
  border-radius: var(--r-lg);
  font-size: var(--font-size-xs);
  line-height: var(--line-height-default);
  overflow-wrap: anywhere;
}

:is(.luno-refined, .luno-refined *):is(.luno-alert > div, .luno-toast__content, .v-note > :not(.v-note__ic), .v-toast > :not(.v-toast__ic, .v-toast__x)):not(.luno-preserve, .luno-preserve *, .luno-flow-list, .luno-flow-list *) {
  flex: 1 1 auto;
  min-width: 0;
}

:is(.luno-refined, .luno-refined *):is(.luno-alert strong, .luno-toast__content > strong, .v-note__t, .v-toast__t):not(.luno-preserve, .luno-preserve *, .luno-flow-list, .luno-flow-list *) {
  display: block;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  line-height: var(--line-height-compact);
}

:is(.luno-refined, .luno-refined *):is(.luno-toast__content > div:not(.luno-toast__action), .v-note__d, .v-toast__d):not(.luno-preserve, .luno-preserve *, .luno-flow-list, .luno-flow-list *) {
  display: block;
  font-size: var(--font-size-xs);
  line-height: var(--line-height-default);
}

:is(.luno-refined, .luno-refined *):is(.luno-alert__symbol):not(.luno-preserve, .luno-preserve *, .luno-flow-list, .luno-flow-list *) {
  flex: none;
}

:is(.luno-refined, .luno-refined *):is(.luno-toast__icon, .v-note__ic, .v-toast__ic, .luno-notification-row__icon):not(.luno-preserve, .luno-preserve *, .luno-flow-list, .luno-flow-list *) {
  flex: none;
  width: var(--space-6);
  height: var(--space-6);
  border-radius: var(--r-md);
}

:is(.luno-refined, .luno-refined *):is(.luno-toast__dismiss, .v-toast__x):not(.luno-preserve, .luno-preserve *, .luno-flow-list, .luno-flow-list *) {
  flex: none;
  width: var(--control-default);
  height: var(--control-default);
  min-width: var(--control-default);
  min-height: var(--control-default);
  margin: calc(-1 * var(--space-1)) calc(-1 * var(--space-1)) calc(-1 * var(--space-1)) 0;
}

/* Notification-center rows keep their container width and readable full text. */
:is(.luno-refined, .luno-refined *):is(.luno-notification-row):not(.luno-preserve, .luno-preserve *, .luno-flow-list, .luno-flow-list *) {
  box-sizing: border-box;
  min-width: 0;
  min-height: var(--control-default);
  gap: var(--space-2);
  padding: var(--space-2);
}

:is(.luno-refined, .luno-refined *):is(.luno-notification-row__title):not(.luno-preserve, .luno-preserve *, .luno-flow-list, .luno-flow-list *) {
  overflow: visible;
  white-space: normal;
  overflow-wrap: anywhere;
}

:is(.luno-refined, .luno-refined *):is(.luno-notification-row__meta):not(.luno-preserve, .luno-preserve *, .luno-flow-list, .luno-flow-list *) {
  max-width: 8ch;
  overflow-wrap: anywhere;
}

/* Boolean controls retain their glyphs and a 44px label target without wide cards. */
:is(.luno-refined, .luno-refined *):is(.luno-choice-field, .luno-radio-group, .luno-checkbox-group, .luno-switch-wrap):not(.luno-preserve, .luno-preserve *, .luno-flow-list, .luno-flow-list *) {
  width: fit-content;
  min-width: 0;
  max-width: min(100%, 360px);
  justify-self: start;
  overflow-wrap: anywhere;
}

:is(.luno-refined, .luno-refined *):is(.luno-choice):not(.luno-preserve, .luno-preserve *, .luno-flow-list, .luno-flow-list *) {
  align-items: center;
  min-height: var(--control-default);
  gap: var(--space-2);
}

:is(.luno-refined, .luno-refined *):is(.luno-checkbox-option):not(.luno-preserve, .luno-preserve *, .luno-flow-list, .luno-flow-list *) {
  min-width: 0;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-3);
}

:is(.luno-refined, .luno-refined *):is(.luno-switch-wrap > span:last-child):not(.luno-preserve, .luno-preserve *, .luno-flow-list, .luno-flow-list *) {
  min-width: 0;
}

/* Icon-only controls keep their glyph size, with a 44px pointer/keyboard target. */
:is(.luno-refined, .luno-refined *):is(.v-iconbtn, .luno-dialog__close, .luno-drawer__close, .luno-view-modal__close,
    .luno-command__close, .luno-toast__dismiss, .luno-app-shell__collapse):not(.luno-preserve, .luno-preserve *, .luno-flow-list, .luno-flow-list *) {
  min-width: var(--control-default);
  min-height: var(--control-default);
}

/* Remove decoration only, not semantic status backgrounds or action affordances. */
:is(.luno-refined, .luno-refined *):is(.luno-quick-action__icon):not(.luno-preserve, .luno-preserve *, .luno-flow-list, .luno-flow-list *) {
  background: transparent;
  border-radius: 0;
}

:is(.luno-refined, .luno-refined *):is(.luno-view-modal__body > .luno-card):not(.luno-preserve, .luno-preserve *, .luno-flow-list, .luno-flow-list *) {
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: transparent;
}

/* Kravio standard motion (ADR 0009): colors change over the 150ms standard curve,
   press feedback uses a short ease-out, and overlays use the reference timing. */
:is(.luno-refined, .luno-refined *):is(.luno-button, .v-btn, .luno-auth-form__provider, .luno-quick-action,
    .luno-notification-row, .luno-switch__thumb):not(.luno-preserve, .luno-preserve *, .luno-flow-list, .luno-flow-list *) {
  transition: background-color var(--motion-color) var(--motion-ease-standard), border-color var(--motion-color) var(--motion-ease-standard),
    box-shadow var(--motion-color) var(--motion-ease-standard), color var(--motion-color) var(--motion-ease-standard),
    transform var(--motion-fast) var(--motion-ease-out), opacity var(--motion-fast) var(--motion-ease-out);
}

:is(.luno-refined, .luno-refined *):is(.luno-dialog, .luno-drawer, .luno-view-modal, .luno-popover,
    .luno-dropdown, .luno-tooltip, .luno-combobox__popup):not(.luno-preserve, .luno-preserve *, .luno-flow-list, .luno-flow-list *) {
  transition: transform var(--motion-normal) var(--motion-ease), opacity var(--motion-normal) var(--motion-ease);
}

:is(.luno-refined, .luno-refined *):is(.luno-dropdown[data-ending-style], .luno-tooltip[data-ending-style], .luno-combobox__popup[data-ending-style],
    .luno-dialog[data-ending-style], .luno-popover[data-ending-style]):not(.luno-preserve, .luno-preserve *, .luno-flow-list, .luno-flow-list *) {
  transition-duration: var(--motion-fast);
  transition-timing-function: var(--motion-ease-in);
}

:is(.luno-refined, .luno-refined *):is(.luno-progress__fill):not(.luno-preserve, .luno-preserve *, .luno-flow-list, .luno-flow-list *) {
  transition: none;
}

@media (prefers-reduced-motion:reduce) {:is(.luno-refined, .luno-refined *):not(.luno-preserve, .luno-preserve *, .luno-flow-list, .luno-flow-list *) {
    animation: none !important;
    transition: none !important;
  }
}


/* Canonical LUNO React component styles. */

/* The third-party card renderer is scoped and restyled below with LUNO tokens. */
/* crd-ui@0.13.0 styles inlined for portable LUNO consumers. */
/* crd-ui — card visualization styles.
   Customize via the custom properties below; brand themes via .crd--brand-*. */

/* The public knobs (--crd-*) are never declared on .crd itself — they are only
   read, with the default supplied as the var() fallback. A declaration here
   would beat any inherited value, so this is what lets a knob set anywhere
   (an ancestor, a utility class, an inline style) actually reach the card.
   Brand and variant themes feed the private --_crd-*-theme slots instead, so
   a user value still takes precedence over them. */
.crd {
  --_crd-width: var(--crd-width, 290px);
  --_crd-radius: var(--crd-radius, 14px);
  --_crd-font: var(--crd-font, 'Avenir Next', 'Segoe UI', ui-sans-serif, sans-serif);
  --_crd-color: var(--crd-color, var(--_crd-color-theme, #fff));
  --_crd-bg: var(--crd-bg, var(--_crd-bg-theme, linear-gradient(135deg, #43464b, #1e2126)));
  --_crd-shadow: var(--crd-shadow, 0 8px 24px rgba(0, 0, 0, 0.28));
  --_crd-flip-duration: var(--crd-flip-duration, 0.75s);

  width: var(--_crd-width);
  aspect-ratio: 1.586; /* ISO/IEC 7810 ID-1 */
  perspective: 1000px;
  font-family: var(--_crd-font);
  color: var(--_crd-color);
}

/* Brand themes */
.crd--brand-visa      { --_crd-bg-theme: linear-gradient(135deg, #0f509e, #1399cd); }
.crd--brand-mastercard{ --_crd-bg-theme: linear-gradient(135deg, #354057, #191c22); }
.crd--brand-amex      { --_crd-bg-theme: linear-gradient(135deg, #106d90, #4ba6c3); }
.crd--brand-discover  { --_crd-bg-theme: linear-gradient(135deg, #d05e28, #f2a33c); }
.crd--brand-dinersclub{ --_crd-bg-theme: linear-gradient(135deg, #33526f, #6f9ab8); }
.crd--brand-jcb       { --_crd-bg-theme: linear-gradient(135deg, #1d6b48, #37a26a); }
.crd--brand-unionpay  { --_crd-bg-theme: linear-gradient(135deg, #274b70, #b23a48); }
.crd--brand-maestro   { --_crd-bg-theme: linear-gradient(135deg, #45327a, #7a5fb8); }
.crd--brand-elo       { --_crd-bg-theme: linear-gradient(135deg, #2d2d2d, #565656); }
.crd--brand-hipercard { --_crd-bg-theme: linear-gradient(135deg, #8a1a2b, #c34a5a); }

/* ---- Variants ----
   Brand-agnostic finishes selected via the `variant` option; they override
   the per-brand gradient (the brand still shows through its logo). Layered
   CSS gradients + an SVG grain layer, no external assets. */

.crd {
  --crd-noise-light: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.07 0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E");
  --crd-noise-dark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05 0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* Ember: warm grainy bloom over a dark crown, number on a dark band,
   light lower body. */
.crd--v-ember {
  --_crd-color-theme: #17181c;
  --_crd-bg-theme:
    var(--crd-noise-light),
    linear-gradient(180deg, rgba(10, 10, 12, 0.95) 0%, rgba(26, 19, 10, 0.85) 16%, rgba(140, 95, 30, 0.32) 32%, transparent 50%),
    radial-gradient(90% 46% at 50% 24%, rgba(255, 176, 64, 0.6), rgba(255, 150, 40, 0.14) 58%, transparent 74%),
    linear-gradient(180deg, transparent 37%, #101013 37%, #101013 61%, transparent 61%),
    linear-gradient(180deg, #d9d6d0 0%, #f0efeb 100%);
}

.crd--v-ember .crd__number {
  color: #f5f5f2;
}

.crd--v-ember .crd__logo {
  color: #f2f2ef;
}

/* The back logo sits on the light lower body, not the dark crown. */
.crd--v-ember .crd__logo--back {
  color: #17181c;
}

.crd--v-ember .crd__name,
.crd--v-ember .crd__expiry {
  text-shadow: none;
}

.crd--v-ember .crd__ring {
  box-shadow: 0 0 0 1.5px rgba(255, 165, 60, 0.9);
}

/* Holo: iridescent interference over near-black — two offset ripple fields
   crossing over soft color blooms. */
.crd--v-holo {
  --_crd-color-theme: #f4f4f6;
  --_crd-bg-theme:
    var(--crd-noise-light),
    repeating-radial-gradient(circle at 18% 30%, rgba(255, 255, 255, 0.1) 0 1.5px, transparent 1.5px 5px),
    repeating-radial-gradient(circle at 82% 70%, rgba(255, 255, 255, 0.08) 0 1.5px, transparent 1.5px 6px),
    radial-gradient(75% 90% at 22% 24%, rgba(64, 224, 208, 0.5), transparent 60%),
    radial-gradient(70% 80% at 78% 30%, rgba(186, 120, 255, 0.45), transparent 60%),
    radial-gradient(80% 90% at 60% 85%, rgba(255, 230, 120, 0.35), transparent 60%),
    radial-gradient(70% 80% at 20% 80%, rgba(90, 160, 255, 0.4), transparent 60%),
    linear-gradient(160deg, #16161c, #101014);
}

/* Porcelain: near-white with faint pastel washes, dark type. */
.crd--v-porcelain {
  --_crd-color-theme: #1d1d1f;
  --_crd-bg-theme:
    var(--crd-noise-dark),
    radial-gradient(60% 70% at 12% 88%, rgba(255, 205, 120, 0.35), transparent 65%),
    radial-gradient(55% 65% at 45% 65%, rgba(255, 140, 160, 0.22), transparent 65%),
    radial-gradient(60% 75% at 88% 45%, rgba(130, 160, 255, 0.28), transparent 65%),
    linear-gradient(180deg, #fbfafa, #f2f1f3);
}

.crd--v-porcelain .crd__number,
.crd--v-porcelain .crd__name,
.crd--v-porcelain .crd__expiry {
  text-shadow: none;
}

.crd--v-porcelain .crd__ring {
  box-shadow: 0 0 0 1.5px rgba(0, 0, 0, 0.45);
}

/* Sunset (default): blooms on cream, name on a dark base band. The bloom
   palette adapts to the detected brand via the custom properties below. */
.crd--v-sunset {
  --_crd-color-theme: #17171a;
  --crd-sunset-a: rgba(255, 170, 40, 0.75);
  --crd-sunset-b: rgba(70, 190, 255, 0.65);
  --crd-sunset-c: rgba(255, 120, 190, 0.5);
  --crd-sunset-ring: rgba(255, 140, 0, 0.9);
  --_crd-bg-theme:
    var(--crd-noise-light),
    linear-gradient(180deg, transparent 64%, #131316 64%),
    radial-gradient(55% 60% at 38% 34%, var(--crd-sunset-a), transparent 68%),
    radial-gradient(50% 65% at 78% 38%, var(--crd-sunset-b), transparent 66%),
    radial-gradient(45% 55% at 85% 78%, var(--crd-sunset-c), transparent 65%),
    linear-gradient(180deg, #f6efe4, #f1eae2);
}

.crd--v-sunset .crd__number {
  text-shadow: none;
}

.crd--v-sunset .crd__name,
.crd--v-sunset .crd__expiry {
  color: #f4f4f2;
}

/* The back logo sits on the dark base band. */
.crd--v-sunset .crd__logo--back {
  color: #f4f4f2;
}

.crd--v-sunset .crd__ring {
  box-shadow: 0 0 0 1.5px var(--crd-sunset-ring);
}

/* Brand-tinted sunset blooms */
.crd--v-sunset.crd--brand-visa {
  --crd-sunset-a: rgba(35, 95, 220, 0.6);
  --crd-sunset-b: rgba(95, 200, 255, 0.55);
  --crd-sunset-c: rgba(150, 125, 255, 0.4);
  --crd-sunset-ring: rgba(35, 95, 220, 0.9);
}

.crd--v-sunset.crd--brand-mastercard {
  --crd-sunset-a: rgba(255, 95, 40, 0.65);
  --crd-sunset-b: rgba(255, 185, 40, 0.6);
  --crd-sunset-c: rgba(230, 60, 60, 0.4);
  --crd-sunset-ring: rgba(240, 90, 35, 0.9);
}

.crd--v-sunset.crd--brand-amex {
  --crd-sunset-a: rgba(35, 140, 195, 0.6);
  --crd-sunset-b: rgba(110, 220, 230, 0.5);
  --crd-sunset-c: rgba(60, 115, 220, 0.4);
  --crd-sunset-ring: rgba(35, 140, 195, 0.9);
}

.crd--v-sunset.crd--brand-discover {
  --crd-sunset-a: rgba(255, 135, 30, 0.7);
  --crd-sunset-b: rgba(255, 205, 85, 0.55);
  --crd-sunset-c: rgba(250, 105, 60, 0.45);
  --crd-sunset-ring: rgba(245, 125, 30, 0.9);
}

.crd--v-sunset.crd--brand-dinersclub {
  --crd-sunset-a: rgba(70, 110, 165, 0.55);
  --crd-sunset-b: rgba(140, 185, 225, 0.5);
  --crd-sunset-c: rgba(100, 140, 255, 0.35);
  --crd-sunset-ring: rgba(70, 110, 165, 0.9);
}

.crd--v-sunset.crd--brand-jcb {
  --crd-sunset-a: rgba(45, 165, 95, 0.6);
  --crd-sunset-b: rgba(65, 130, 230, 0.5);
  --crd-sunset-c: rgba(230, 75, 95, 0.4);
  --crd-sunset-ring: rgba(45, 165, 95, 0.9);
}

.crd--v-sunset.crd--brand-unionpay {
  --crd-sunset-a: rgba(220, 65, 75, 0.55);
  --crd-sunset-b: rgba(45, 155, 165, 0.5);
  --crd-sunset-c: rgba(55, 95, 175, 0.4);
  --crd-sunset-ring: rgba(220, 65, 75, 0.9);
}

.crd--v-sunset.crd--brand-maestro {
  --crd-sunset-a: rgba(10, 95, 205, 0.55);
  --crd-sunset-b: rgba(240, 75, 60, 0.5);
  --crd-sunset-c: rgba(255, 155, 60, 0.4);
  --crd-sunset-ring: rgba(10, 95, 205, 0.9);
}

.crd--v-sunset.crd--brand-elo {
  --crd-sunset-a: rgba(255, 200, 45, 0.6);
  --crd-sunset-b: rgba(235, 65, 60, 0.5);
  --crd-sunset-c: rgba(45, 85, 205, 0.4);
  --crd-sunset-ring: rgba(235, 65, 60, 0.9);
}

.crd--v-sunset.crd--brand-hipercard {
  --crd-sunset-a: rgba(200, 45, 65, 0.6);
  --crd-sunset-b: rgba(255, 115, 95, 0.5);
  --crd-sunset-c: rgba(255, 65, 105, 0.35);
  --crd-sunset-ring: rgba(200, 45, 65, 0.9);
}

/* Graphite: brushed near-black with fine vertical pinstripes and a deep
   left edge. */
.crd--v-graphite {
  --_crd-color-theme: #e8e9ec;
  --_crd-bg-theme:
    var(--crd-noise-light),
    linear-gradient(90deg, rgba(5, 6, 8, 0.9) 0%, rgba(5, 6, 8, 0.75) 10%, transparent 13%),
    repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.045) 0 1px, transparent 1px 7px),
    linear-gradient(115deg, #262930 0%, #1a1c21 45%, #23262c 70%, #16181c 100%);
}

.crd__inner {
  position: relative;
  width: 100%;
  height: 100%;
  transform-style: preserve-3d;
  /* Springy rotation: overshoots ~180° and settles back. */
  transition: transform var(--_crd-flip-duration) cubic-bezier(0.34, 1.3, 0.5, 1);
}

.crd--flipped .crd__inner {
  transform: rotateY(180deg);
}

/* ---- Flip choreography ----
   .crd--flipping is added transiently by the core on every flip: the card
   jumps off the surface in an arc with a wrist-flick tilt, its shadow
   deepens while airborne, and a light sheen sweeps across the faces. */

.crd--flipping {
  animation: crd-lift var(--_crd-flip-duration) cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes crd-lift {
  0% {
    transform: translateY(0) scale(1) rotate(0deg);
  }
  35% {
    transform: translateY(-7%) scale(1.06) rotate(-2.5deg);
  }
  70% {
    transform: translateY(-4%) scale(1.04) rotate(1.2deg);
  }
  100% {
    transform: translateY(0) scale(1) rotate(0deg);
  }
}

.crd--flipping .crd__front,
.crd--flipping .crd__back {
  animation: crd-airborne-shadow var(--_crd-flip-duration) cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes crd-airborne-shadow {
  0%,
  100% {
    box-shadow: var(--_crd-shadow);
  }
  45% {
    box-shadow: 0 34px 54px rgba(0, 0, 0, 0.45);
  }
}

/* Sheen layer: parked fully transparent, swept during the flip. */
.crd__front::after,
.crd__back::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(
    105deg,
    transparent 38%,
    rgba(255, 255, 255, 0.32) 48%,
    rgba(255, 255, 255, 0.08) 53%,
    transparent 62%
  );
  background-size: 260% 100%;
  background-position: 135% 0;
}

.crd--flipping .crd__front::after,
.crd--flipping .crd__back::after {
  animation: crd-sheen var(--_crd-flip-duration) ease;
}

@keyframes crd-sheen {
  from {
    background-position: 135% 0;
  }
  to {
    background-position: -35% 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .crd__inner {
    transition: none;
  }

  .crd--flipping,
  .crd--flipping .crd__front,
  .crd--flipping .crd__back,
  .crd--flipping .crd__front::after,
  .crd--flipping .crd__back::after {
    animation: none;
  }
}

/* ---- Hover tilt (opt-in via the `tilt` option) ----
   Adapted from Transitions.dev's card tilt: the pointer position (written by
   the core into --crd-tilt-* custom properties) rotates the card in 3D and
   drives a cursor-tracked glare. A faster transition while hovering makes the
   tilt follow the cursor; on leave it eases slowly back to flat. */

.crd--tilt {
  position: relative;
  touch-action: none;
  transform: perspective(1000px) rotateX(var(--crd-tilt-rx, 0deg))
    rotateY(var(--crd-tilt-ry, 0deg));
  transition: transform 1000ms cubic-bezier(0.22, 1, 0.36, 1);
  will-change: transform;
}

.crd--tilt.crd--tilt-hover {
  transition: transform 400ms cubic-bezier(0.22, 1, 0.36, 1);
}

/* Cursor-tracked glare: layered soft circles that add like light (screen
   blend) at the pointer position. Only shown while tilt is on and hovered. */
.crd__glare {
  position: absolute;
  inset: 0;
  border-radius: var(--_crd-radius);
  pointer-events: none;
  opacity: 0;
  z-index: 3;
  mix-blend-mode: screen;
  background:
    radial-gradient(
      circle 95px at var(--crd-tilt-gx, 50%) var(--crd-tilt-gy, 50%),
      rgba(255, 255, 255, 0.48),
      rgba(255, 255, 255, 0.06) 52%,
      rgba(255, 255, 255, 0) 84%
    ),
    radial-gradient(
      circle 200px at var(--crd-tilt-gx, 50%) var(--crd-tilt-gy, 50%),
      rgba(255, 255, 255, 0.22),
      rgba(255, 255, 255, 0.04) 58%,
      rgba(255, 255, 255, 0) 78%
    ),
    radial-gradient(
      circle 360px at var(--crd-tilt-gx, 50%) var(--crd-tilt-gy, 50%),
      rgba(255, 255, 255, 0.1),
      rgba(255, 255, 255, 0) 88%
    );
  transition: opacity 300ms cubic-bezier(0.22, 1, 0.36, 1);
}

.crd--tilt.crd--tilt-hover .crd__glare {
  opacity: 0.32;
}

@media (prefers-reduced-motion: reduce) {
  .crd--tilt {
    transform: none !important;
    transition: none !important;
  }

  .crd__glare {
    display: none;
  }
}

/* The tilt tracks a cursor, so it's a hover-only enhancement: on touch devices
   it's flattened, the glare hidden, and touch-action restored — otherwise the
   pointer-driven tilt fires erratically on tap and its touch-action:none
   swallows scroll gestures over the card. */
@media (hover: none) {
  .crd--tilt {
    transform: none !important;
    transition: none !important;
    touch-action: auto;
  }

  .crd--tilt .crd__glare {
    display: none;
  }
}

.crd__front,
.crd__back {
  position: absolute;
  inset: 0;
  border-radius: var(--_crd-radius);
  background: var(--_crd-bg);
  box-shadow: var(--_crd-shadow);
  backface-visibility: hidden;
  overflow: hidden;
  padding: 6.5%;
  box-sizing: border-box;
}

.crd__back {
  transform: rotateY(180deg);
  padding: 0;
}

/* ---- Front ---- */

.crd__chip {
  width: 15%;
  color: #d4b26a;
}

.crd__chip svg,
.crd__logo svg {
  display: block;
  width: 100%;
  height: auto;
}

.crd__logo {
  position: absolute;
  top: 6.5%;
  right: 6.5%;
  width: 26%;
  color: var(--_crd-color);
}

.crd__number {
  margin-top: 9%;
  font-size: calc(var(--_crd-width) / 17.5);
  letter-spacing: 0.08em;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  text-shadow: 0 1px 1px rgba(0, 0, 0, 0.3);
}

.crd__footer {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 4%;
  margin-top: 8%;
}

.crd__name {
  font-size: calc(var(--_crd-width) / 24);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.crd__name--placeholder {
  opacity: 0.55;
}

.crd__expiry {
  text-align: right;
  flex-shrink: 0;
}

.crd__expiry-label {
  display: block;
  font-size: calc(var(--_crd-width) / 41);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  opacity: 0.65;
}

.crd__expiry-value {
  font-size: calc(var(--_crd-width) / 24);
  font-variant-numeric: tabular-nums;
}

/* ---- Display layout ----
   Presents an existing card (dashboards): expiry and CVC sit on a meta row on
   the front, under the number. Hidden by default; the layout='display' class
   reveals it and hides the form-mode expiry in the footer. */

.crd__meta {
  display: none;
}

.crd--l-display .crd__meta {
  display: flex;
  gap: 9%;
  margin-top: 6%;
}

.crd__meta-item {
  display: inline-flex;
  align-items: baseline;
  gap: 0.5em;
}

.crd__meta-label {
  font-size: calc(var(--_crd-width) / 30);
  letter-spacing: 0.02em;
  opacity: 0.55;
}

.crd__meta-expiry,
.crd__meta-cvc {
  font-size: calc(var(--_crd-width) / 22);
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.05em;
}

.crd--l-display .crd__footer .crd__expiry {
  display: none;
}

.crd--l-display .crd__footer {
  margin-top: 5%;
}

/* Copyable fields: a subtle hover affordance and a transient "Copied" bubble.
   The number/expiry already carry padding + radius from the focus-ring block;
   the meta values get their own so the hover pill wraps them snugly. */
[data-crd-copy] {
  position: relative;
  cursor: pointer;
  border-radius: 6px;
  transition: background 0.15s ease-out;
}

.crd__meta-expiry[data-crd-copy],
.crd__meta-cvc[data-crd-copy] {
  padding: 1px 5px;
  margin: -1px -5px;
}

[data-crd-copy]:hover,
[data-crd-copy]:focus-visible {
  background: rgba(255, 255, 255, 0.14);
  outline: none;
}

/* Shared bubble above the field: 'Click to copy' on hover, 'Copied' after a
   copy. One ::after, its content swapped by state. */
[data-crd-copy]::after {
  content: attr(data-copy-label);
  position: absolute;
  bottom: calc(100% + 6px);
  left: 50%;
  transform: translateX(-50%);
  padding: 0.15em 0.5em;
  border-radius: 5px;
  background: rgba(20, 20, 24, 0.92);
  color: #fff;
  font-size: calc(var(--_crd-width) / 30);
  font-weight: 500;
  letter-spacing: 0.02em;
  white-space: nowrap;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.15s ease-out;
}

[data-crd-copy]:hover::after,
[data-crd-copy]:focus-visible::after {
  opacity: 1;
}

/* The copied state wins over hover (later rule) and fades itself out. */
[data-crd-copy][data-copied]::after {
  content: attr(data-copied-label);
  opacity: 1;
  animation: crd-copied 1.2s ease-out forwards;
}

@keyframes crd-copied {
  0%,
  80% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  [data-crd-copy]::after {
    transition: none;
  }
  [data-crd-copy][data-copied]::after {
    animation: none;
  }
}

/* ---- Focus ring ----
   A single ring element travels between the focused sections, sliding and
   resizing with a spring — the core keeps its transform/size in sync. */

.crd__number,
.crd__name,
.crd__expiry {
  border-radius: 6px;
  padding: 2px 6px;
  margin-left: -6px;
}

.crd__ring {
  position: absolute;
  top: 0;
  left: 0;
  width: 0;
  height: 0;
  border-radius: 8px;
  box-shadow: 0 0 0 1.5px rgba(255, 255, 255, 0.7);
  opacity: 0;
  pointer-events: none;
  transition:
    transform 0.4s cubic-bezier(0.3, 1.35, 0.45, 1),
    width 0.4s cubic-bezier(0.3, 1.35, 0.45, 1),
    height 0.4s cubic-bezier(0.3, 1.35, 0.45, 1),
    opacity 0.18s ease;
}

.crd__ring--on {
  opacity: 1;
}

/* Applied for one frame when the ring (re)appears, so it materializes on the
   new section instead of sliding in from a stale position. */
.crd__ring--instant {
  transition: opacity 0.18s ease;
}

@media (prefers-reduced-motion: reduce) {
  .crd__ring {
    transition: opacity 0.18s ease;
  }
}

/* ---- Back ---- */

.crd__stripe {
  margin-top: 8%;
  height: 18%;
  background: rgba(0, 0, 0, 0.55);
}

.crd__signature {
  margin: 6% 6.5% 0;
  height: 16%;
  border-radius: 5px;
  background: repeating-linear-gradient(
    0deg,
    rgba(255, 255, 255, 0.85),
    rgba(255, 255, 255, 0.85) 3px,
    rgba(220, 220, 220, 0.85) 3px,
    rgba(220, 220, 220, 0.85) 6px
  );
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding: 0 3%;
  box-sizing: border-box;
}

.crd__cvc {
  color: #333;
  font-size: calc(var(--_crd-width) / 26);
  font-style: italic;
  letter-spacing: 0.15em;
  font-variant-numeric: tabular-nums;
}

/* The back has no traveling ring, so CVC focus highlights the signature
   strip itself — same stroke as the front ring. */
.crd__signature {
  transition: box-shadow 0.18s ease;
}

.crd--focus-cvc .crd__signature {
  box-shadow: 0 0 0 1.5px rgba(255, 255, 255, 0.7);
}

.crd__logo--back {
  top: auto;
  bottom: 6.5%;
  width: 20%;
  opacity: 0.85;
}


.luno-ui-sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

.luno-checkbox-group{
  display:grid;
  gap:8px;
  max-width:36rem;
}

.luno-checkbox-group__label{
  color:var(--color-text-primary);
  font-size:var(--font-size-sm);
  font-weight:var(--font-weight-semibold);
}

.luno-checkbox-group__description{
  color:var(--color-text-secondary);
  font-size:var(--font-size-xs);
  line-height:var(--line-height-default);
  margin-top:-4px;
}

.luno-checkbox-group__options{
  display:grid;
  gap:0;
}

.luno-checkbox-option{
  align-items:center;
  background:var(--color-surface-card);
  border:1px solid var(--color-control-border);
  border-radius:var(--r-md);
  color:var(--color-text-primary);
  cursor:pointer;
  display:flex;
  font:inherit;
  gap:12px;
  min-height:44px;
  padding:10px 12px;
  position:relative;
  text-align:left;
  width:100%;
}

.luno-checkbox-option + .luno-checkbox-option{margin-top:4px}
.luno-checkbox-option:hover:not(:disabled){background:var(--color-hover-bg);border-color:var(--color-control-border-hover)}
.luno-checkbox-option:disabled{cursor:not-allowed;opacity:.6}
.luno-checkbox-option:focus-visible{outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset);z-index:1}
.luno-checkbox-option.is-checked{background:var(--tone-success-bg);border-color:var(--color-control-border-selected)}
.luno-checkbox-option.is-run-start:not(.is-run-end){border-bottom-left-radius:0;border-bottom-right-radius:0}
.luno-checkbox-option.is-run-middle{border-radius:0;margin-top:-1px}
.luno-checkbox-option.is-run-end:not(.is-run-start){border-top-left-radius:0;border-top-right-radius:0;margin-top:-1px}
.luno-checkbox-option.is-run-start:not(.is-run-end) + .luno-checkbox-option{margin-top:-1px}

.luno-checkbox-option__indicator{
  align-items:center;
  background:var(--color-surface-elevated);
  border:1.5px solid var(--color-control-indicator);
  border-radius:5px;
  color:var(--color-surface-elevated);
  display:grid;
  flex:none;
  height:18px;
  place-items:center;
  width:18px;
}

.luno-checkbox-option.is-checked .luno-checkbox-option__indicator{
  background:var(--color-control-indicator-selected);
  border-color:var(--color-control-indicator-selected);
}

.luno-checkbox-option__check{display:grid;place-items:center;width:16px;height:16px}

.luno-checkbox-option__copy{display:grid;gap:2px;min-width:0}
.luno-checkbox-option__label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);line-height:1.35}
.luno-checkbox-option__description{color:var(--color-text-secondary);font-size:var(--font-size-xs);line-height:1.45}

.luno-textarea{min-height:112px;resize:vertical;line-height:1.55}
.luno-choice-field,.luno-radio-group{display:grid;gap:8px}.luno-choice-field__error{margin:0;color:var(--tone-danger-tx);font-size:var(--font-size-xs);line-height:var(--line-height-default)}
.luno-choice{position:relative;display:flex;align-items:flex-start;gap:10px;min-height:40px;color:var(--color-text-primary);cursor:pointer}.luno-choice>input{position:absolute;width:1px;height:1px;margin:-1px;opacity:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.luno-choice__indicator{display:grid;place-items:center;flex:none;width:20px;height:20px;margin-top:1px;border:1px solid var(--color-control-border);border-radius:6px;background:var(--color-input-bg);color:transparent;box-shadow:var(--shadow-control)}.luno-choice:hover .luno-choice__indicator{border-color:var(--color-control-border-hover)}.luno-choice>input:checked+.luno-choice__indicator,.luno-choice>input:indeterminate+.luno-choice__indicator{border-color:var(--color-control-border-selected);background:var(--color-control-indicator-selected);color:var(--color-action-primary-foreground)}.luno-choice>input:focus-visible+.luno-choice__indicator{outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}.luno-choice>input:disabled~*{opacity:.58}.luno-choice:has(input:disabled){cursor:not-allowed}.luno-choice__copy{display:grid;gap:2px;min-width:0}.luno-choice__copy strong{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);line-height:1.35}.luno-choice__copy>span{color:var(--color-text-secondary);font-size:var(--font-size-xs);line-height:1.45}.luno-choice-field.is-invalid .luno-choice__indicator,.luno-radio-group.is-invalid .luno-choice__indicator{border-color:var(--tone-danger-bd)}
.luno-radio-group{min-width:0;margin:0;padding:0;border:0}.luno-radio-group>legend{padding:0;color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.luno-radio-group>p{margin:2px 0 0;color:var(--color-text-secondary);font-size:var(--font-size-xs);line-height:1.45}.luno-radio-group__options{display:grid;gap:10px;margin-top:4px}.luno-choice--radio .luno-choice__indicator{border-radius:var(--r-full)}.luno-choice--radio>input:checked+.luno-choice__indicator{border:5px solid var(--color-control-indicator-selected);background:var(--color-action-primary-foreground)}
.luno-toast{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:flex-start;gap:10px;width:min(100%,380px);padding:12px;border:0;border-radius:var(--r-surface);background:var(--color-surface-card);box-shadow:var(--shadow-toast);color:var(--color-text-primary)}.luno-toast__icon{display:grid;place-items:center;width:28px;height:28px;border-radius:var(--r-control);background:var(--tone-neutral-bg);box-shadow:inset 0 0 0 .8px var(--tone-neutral-bd);color:var(--tone-neutral-tx)}.luno-toast__content{display:grid;gap:2px;min-width:0}.luno-toast__content>strong{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);line-height:1.35}.luno-toast__content>div:not(.luno-toast__action){color:var(--color-text-secondary);font-size:var(--font-size-xs);line-height:1.45}.luno-toast__action{margin-top:7px}.luno-toast__dismiss{display:grid;place-items:center;width:40px;height:40px;margin:-5px -5px -5px 0;padding:0;border:0;border-radius:var(--r-md);background:transparent;color:var(--color-text-muted);cursor:pointer}.luno-toast__dismiss:hover{background:var(--color-hover-bg);color:var(--color-text-primary)}.luno-toast__dismiss:focus-visible{outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}.luno-toast--success .luno-toast__icon{background:var(--tone-success-bg);box-shadow:inset 0 0 0 .8px var(--tone-success-bd);color:var(--tone-success-tx)}.luno-toast--warning .luno-toast__icon{background:var(--tone-warning-bg);box-shadow:inset 0 0 0 .8px var(--tone-warning-bd);color:var(--tone-warning-tx)}.luno-toast--danger .luno-toast__icon{background:var(--tone-danger-bg);box-shadow:inset 0 0 0 .8px var(--tone-danger-bd);color:var(--tone-danger-tx)}.luno-toast--info .luno-toast__icon{background:var(--tone-info-bg);box-shadow:inset 0 0 0 .8px var(--tone-info-bd);color:var(--tone-info-tx)}

.luno-text-morph{display:inline-block}

.luno-number-flow{
  font-family:var(--font-mono);
  font-variant-numeric:tabular-nums;
}

.luno-payment-card{display:grid;gap:10px;justify-items:start;width:100%}
.luno-payment-card:not(.luno-payment-card--provider-original) .crd{
  --crd-font:var(--font-sans);
  --crd-radius:var(--r-xl);
  --crd-shadow:var(--shadow-card);
  --crd-width:320px;
  max-width:100%;
  width:320px;
}
.luno-payment-card--artwork .crd{--crd-bg:var(--luno-card-background)}
.luno-payment-card__notice{color:var(--color-text-secondary);font-size:var(--font-size-xs);line-height:1.5;max-width:320px;margin:0}

/* Baseline primitives: default controls meet 44px; compact visual controls must be wrapped by a 40px hit target. */
.luno-button{align-items:center;border:1px solid transparent;border-radius:var(--r-control);cursor:pointer;display:inline-flex;font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);justify-content:center;line-height:var(--line-height-compact);min-height:var(--control-default);padding:var(--space-2) var(--space-4);transition:background var(--motion-color) var(--motion-ease-standard),border-color var(--motion-color) var(--motion-ease-standard),box-shadow var(--motion-color) var(--motion-ease-standard),color var(--motion-color) var(--motion-ease-standard)}
.luno-button--primary{background:var(--color-action-primary);color:var(--color-action-primary-foreground)}.luno-button--primary:hover:not(:disabled){background:var(--color-action-primary-hover)}.luno-button--secondary{background:var(--color-surface-card);border-color:var(--color-control-border);box-shadow:var(--shadow-control);color:var(--color-text-primary)}.luno-button--secondary:hover:not(:disabled),.luno-button--tertiary:is(:hover,:focus-visible):not(:disabled){background:var(--color-hover-bg);text-decoration:underline;text-underline-offset:3px}.luno-button--tertiary{background:transparent;color:var(--color-text-accent)}.luno-button--destructive{background:var(--tone-danger-bg);border-color:var(--tone-danger-bd);color:var(--tone-danger-tx)}.luno-button:disabled{cursor:not-allowed;opacity:.6}.luno-button:focus-visible,.luno-field__input:focus-visible,.luno-switch:focus-visible{outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}
.luno-field{display:grid;gap:var(--space-1)}.luno-field>label{color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.luno-field__input{background:var(--color-input-bg);border:1px solid var(--color-control-border);border-radius:var(--r-control);box-shadow:var(--shadow-control);color:var(--color-text-primary);font:inherit;min-height:var(--control-default);padding:0 var(--space-3);width:100%}.luno-field__input:disabled{cursor:not-allowed;opacity:.6}.luno-field__hint,.luno-field__error{font-size:var(--font-size-xs);line-height:var(--line-height-default);margin:0}.luno-field__hint{color:var(--color-text-secondary)}.luno-field__error{color:var(--tone-danger-tx)}.luno-field.is-invalid .luno-field__input{border-color:var(--color-control-invalid)}
/* Custom select affordance: subtle chevron with breathing room instead of the edge-hugging native arrow. */
.luno-select-wrap{position:relative;display:block}
.luno-select{align-items:center;cursor:pointer;display:flex;gap:var(--space-2);justify-content:space-between;text-align:left;width:100%}
.luno-select__value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.luno-select[data-placeholder] .luno-select__value{color:var(--color-text-hint)}
.luno-select__popup{max-height:min(320px,var(--available-height));min-width:var(--anchor-width);overflow-y:auto}

.luno-select__chevron{color:var(--color-text-muted);display:grid;flex:none;transition:transform var(--motion-slow) var(--motion-ease)}
.luno-select[data-popup-open] .luno-select__chevron{transform:rotate(180deg)}
.luno-select-wrap:has(.luno-select:disabled) .luno-select__chevron{opacity:.6}
/* Portable products keep a native select.luno-select; luno-portable-select.js opens this LUNO list for it. */
select.luno-select{appearance:none;display:block;padding-right:var(--space-10);text-overflow:ellipsis}
select.luno-select::-ms-expand{display:none}
.luno-select-wrap:has(>select.luno-select)>.luno-select__chevron{display:block;pointer-events:none;position:absolute;right:var(--space-4);top:50%;transform:translateY(-50%)}
.luno-select-wrap:has(>select.luno-select[data-popup-open])>.luno-select__chevron{transform:translateY(-50%) rotate(180deg)}
.luno-select__popup--portable{position:fixed;z-index:var(--z-popover);margin:0;width:var(--anchor-width);max-width:calc(100vw - 16px);animation:luno-dd-in var(--motion-pop) var(--motion-ease-out)}
.luno-switch-wrap{align-items:flex-start;cursor:pointer;display:inline-flex;gap:var(--space-2);min-height:var(--control-default);padding-block:4px;position:relative}.luno-switch__input{block-size:1px;clip:rect(0 0 0 0);inline-size:1px;margin:-1px;opacity:0;overflow:hidden;position:absolute;white-space:nowrap}.luno-switch{align-items:center;background:var(--color-control-track-interior);border:1px solid var(--color-control-border);border-radius:var(--r-full);display:inline-flex;flex:none;height:24px;margin-block:6px;padding:2px;width:40px}.luno-switch__thumb{background:var(--color-control-indicator);border-radius:var(--r-full);height:18px;transition:transform var(--motion-slow) var(--motion-ease);width:18px}.luno-switch__input:checked + .luno-switch{background:var(--color-action-primary);border-color:var(--color-action-primary)}.luno-switch__input:checked + .luno-switch .luno-switch__thumb{background:var(--color-action-primary-foreground);transform:translateX(16px)}.luno-switch__input:focus-visible + .luno-switch{outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}.luno-switch__input:disabled + .luno-switch{cursor:not-allowed;opacity:.6}.luno-switch-wrap:has(.luno-switch__input:disabled){cursor:not-allowed}.luno-switch-wrap__label,.luno-switch-wrap__description{display:block}.luno-switch-wrap__label{color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);line-height:20px}.luno-switch-wrap__description{color:var(--color-text-secondary);font-size:var(--font-size-xs);line-height:var(--line-height-default);margin-top:var(--space-1)}
.luno-badge{align-items:center;background:var(--tone-neutral-bg);border:1px solid var(--tone-neutral-bd);border-radius:var(--r-full);color:var(--tone-neutral-tx);display:inline-flex;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);line-height:var(--line-height-compact);padding:var(--space-1) var(--space-2)}.luno-badge--success{gap:var(--space-1);background:var(--tone-success-bg);border-color:var(--tone-success-bd);color:var(--tone-success-tx)}.luno-badge--warning{background:var(--tone-warning-bg);border-color:var(--tone-warning-bd);color:var(--tone-warning-tx)}.luno-badge--danger{background:var(--tone-danger-bg);border-color:var(--tone-danger-bd);color:var(--tone-danger-tx)}.luno-badge--info{background:var(--tone-info-bg);border-color:var(--tone-info-bd);color:var(--tone-info-tx)}
.luno-alert{align-items:flex-start;background:var(--color-surface-card);border:1px solid var(--tone-info-bd);border-radius:var(--r-surface);color:var(--color-text-primary);display:flex;gap:var(--space-3);padding:10px var(--space-3)}.luno-alert--danger{border-color:var(--tone-danger-bd)}.luno-alert--danger .luno-alert__symbol{align-items:center;background:var(--tone-info-bg);border:0;border-radius:var(--r-control);box-shadow:inset 0 0 0 .8px var(--tone-info-bd);color:var(--tone-info-tx);display:inline-flex;flex:none;font-family:var(--font-mono);font-weight:var(--font-weight-semibold);height:28px;justify-content:center;width:28px}.luno-alert--warning{border-color:var(--tone-warning-bd)}.luno-alert--warning .luno-alert__symbol{background:var(--tone-warning-bg);box-shadow:inset 0 0 0 .8px var(--tone-warning-bd);color:var(--tone-warning-tx)}.luno-alert--success{border-color:var(--tone-success-bd)}.luno-alert--success .luno-alert__symbol{background:var(--tone-success-bg);box-shadow:inset 0 0 0 .8px var(--tone-success-bd);color:var(--tone-success-tx)}.luno-alert__symbol{align-items:center;border:1px solid currentColor;border-radius:var(--r-full);display:inline-flex;font-family:var(--font-mono);font-weight:var(--font-weight-semibold);height:var(--space-5);justify-content:center;width:var(--space-5)}.luno-alert strong{display:block;font-weight:var(--font-weight-medium);margin-bottom:2px}.luno-alert strong+div{color:var(--color-text-muted)}.luno-alert__action{margin-top:var(--space-2)}
.luno-card{background:var(--color-surface-card);border:1px solid var(--color-border-subtle);border-radius:var(--r-lg);color:var(--color-text-primary);padding:var(--space-5)}.luno-card>header{margin-bottom:var(--space-4)}.luno-card h2{font-size:var(--font-size-lg);line-height:var(--line-height-compact);margin:0}.luno-card header p{color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:var(--line-height-default);margin:var(--space-1) 0 0}
.luno-icon{display:inline-block;flex:none;vertical-align:middle}
.luno-app-shell{--luno-shell-content-max:1200px;background:var(--color-surface);color:var(--color-text-primary);display:grid;grid-template-columns:var(--shell-sidebar) minmax(0,1fr);min-height:100vh;transition:grid-template-columns var(--motion-slow) var(--motion-ease)}.luno-app-shell--content-wide{--luno-shell-content-max:1600px}.luno-app-shell--content-workbench{--luno-shell-content-max:none}.luno-app-shell.is-collapsed{grid-template-columns:var(--shell-sidebar-collapsed) minmax(0,1fr)}.luno-app-shell__sidebar{background:var(--color-surface);border-right:0;display:flex;flex-direction:column;min-width:0}.luno-app-shell__sidebar-head{align-items:center;display:flex;height:var(--shell-topbar);min-width:0;padding:0 var(--space-4)}.luno-app-shell__brand{align-items:center;display:flex;min-width:0}.luno-app-shell__brand-full{align-items:center;display:flex;min-width:0}.luno-app-shell__collapse{margin-left:calc(var(--space-2) * -1);align-items:center;background:transparent;border:1px solid transparent;border-radius:var(--r-md);color:var(--color-text-secondary);cursor:pointer;display:inline-flex;flex:none;height:var(--control-dense-hit-target);justify-content:center;padding:0;width:var(--control-dense-hit-target)}.luno-app-shell__collapse:hover{background:var(--color-hover-bg);border-color:var(--color-border-subtle);color:var(--color-text-primary)}.luno-app-shell__collapse:focus-visible{outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}.luno-app-shell__sidebar-body{flex:1;overflow-x:hidden;overflow-y:auto;padding:var(--space-2) var(--space-3)}
.luno-app-shell__search{align-items:center;background:var(--color-surface-card);border:0;border-radius:var(--r-control);box-shadow:inset 0 0 0 .8px var(--color-border-default),var(--shadow-control);color:var(--color-text-muted);cursor:pointer;display:flex;font:inherit;font-size:var(--font-size-body);gap:var(--space-2);height:34px;margin:0 var(--space-3) var(--space-2);padding:0 var(--space-2) 0 10px;transition:box-shadow var(--motion-color) var(--motion-ease-standard)}
.luno-app-shell__search:hover{box-shadow:inset 0 0 0 .8px var(--color-border-hover),var(--shadow-control)}
.luno-app-shell__search:focus-visible{outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}
.luno-app-shell__search span{flex:1;text-align:left}
.luno-app-shell__search kbd{color:var(--color-text-muted);font-family:var(--font-mono);font-size:var(--font-size-caption)}
.luno-app-shell__sidebar-foot{padding:var(--space-3)}
.luno-app-shell__topbar-rule{background:var(--color-border-default);flex:none;height:16px;margin:0 var(--space-3) 0 var(--space-1);width:1px}
.luno-app-shell__topbar-content{align-items:center;display:flex;flex:1;min-width:0}.luno-app-shell__main{background:var(--color-surface-card);box-shadow:inset .8px 0 0 var(--color-border-default);min-width:0}.luno-app-shell__topbar{align-items:center;background:var(--color-surface-card);border-bottom:1px solid var(--color-border-subtle);display:flex;height:var(--shell-topbar);padding:0 var(--space-5);position:sticky;top:0;z-index:var(--z-sticky)}.luno-app-shell__content{box-sizing:border-box;margin:0 auto;max-width:var(--luno-shell-content-max);padding:var(--space-6);width:100%}
.luno-app-shell.is-collapsed .luno-app-shell__sidebar-head{justify-content:center;padding:0}.luno-app-shell.is-collapsed .luno-app-shell__search{justify-content:center;margin:0 var(--space-2) var(--space-2);padding:0}.luno-app-shell.is-collapsed .luno-app-shell__search :is(span,kbd){display:none}.luno-app-shell.is-collapsed .luno-app-shell__brand{display:flex;justify-content:center}.luno-app-shell.is-collapsed .luno-brand-lockup{--luno-lockup-height:20px;gap:0;overflow:hidden;width:var(--luno-lockup-height)}.luno-app-shell.is-collapsed .luno-brand-lockup__divider,.luno-app-shell.is-collapsed .luno-brand-lockup__product{display:none}.luno-app-shell.is-collapsed .luno-app-shell__sidebar-body{padding:var(--space-3) var(--space-2)}.luno-app-shell.is-collapsed [data-luno-sidebar-label]{display:none}
.luno-shell-nav{display:grid;gap:var(--space-1)}.luno-shell-nav__group{color:var(--color-sidebar-group-text);font-size:var(--font-size-caption);font-weight:var(--font-weight-medium);letter-spacing:.025em;line-height:1;margin:var(--space-4) var(--space-2) var(--space-2);text-transform:uppercase}
.luno-shell-nav__tree{border-left:1px solid var(--color-border-default);display:grid;gap:2px;margin:2px 0 var(--space-1) 15px;padding-left:var(--space-3)}
.luno-shell-nav__sub{background:transparent;border:0;border-radius:var(--r-inset);color:var(--color-text-muted);cursor:pointer;font:inherit;font-size:var(--font-size-label);min-height:28px;padding:0 var(--space-2);position:relative;text-align:left;text-decoration:none;display:flex;align-items:center;transition:background-color var(--motion-color) var(--motion-ease-standard),color var(--motion-color) var(--motion-ease-standard)}
.luno-shell-nav__sub::before{border-top:1px solid var(--color-border-default);content:"";left:calc(var(--space-3) * -1);position:absolute;top:50%;width:8px}
.luno-shell-nav__sub:hover,.luno-shell-nav__sub[aria-current="page"]{background:var(--color-hover-bg);color:var(--color-text-primary)}
.luno-shell-nav__sub:focus-visible{outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}
.luno-app-shell.is-collapsed .luno-shell-nav__tree{display:none}.luno-shell-nav__item{align-items:center;background:transparent;border:.8px solid transparent;border-radius:var(--r-md);color:var(--color-nav-text);display:flex;font-size:13px;gap:var(--space-3);min-height:var(--control-dense-hit-target);padding:var(--space-2) var(--space-3);text-decoration:none}.luno-shell-nav__item .luno-icon{color:var(--color-nav-icon)}.luno-shell-nav__item[aria-current="page"] .luno-icon,.luno-shell-nav__item.is-active .luno-icon{color:var(--color-nav-active-text)}.luno-shell-nav__item:hover{background:var(--color-hover-bg);color:var(--color-text-primary)}.luno-shell-nav__item:focus-visible{outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}.luno-shell-nav__item[aria-current="page"],.luno-shell-nav__item.is-active{background:var(--color-nav-active-surface);border-color:var(--color-nav-active-border);box-shadow:var(--shadow-control);color:var(--color-nav-active-text);font-weight:var(--font-weight-medium)}.luno-app-shell.is-collapsed .luno-shell-nav__item{gap:0;justify-content:center;padding-left:0;padding-right:0}.luno-app-shell.is-collapsed .luno-shell-nav__group{display:none}

.luno-auth-shell{align-items:center;background:var(--color-surface);color:var(--color-text-primary);display:flex;justify-content:center;min-height:100vh;padding:var(--space-8) var(--space-5)}
.luno-auth-card{background:var(--color-surface-card);border:1px solid var(--color-border-subtle);border-radius:var(--r-lg);box-shadow:var(--shadow-card);padding:var(--space-8);width:min(100%,440px)}
.luno-auth-card__brand{align-items:center;display:flex;justify-content:flex-start;margin-bottom:var(--space-6)}
.luno-auth-card__brand:has(.luno-auth-card__action){justify-content:space-between}
.luno-auth-card__lockup{align-items:center;display:flex;justify-content:flex-start;min-width:0}
.luno-auth-card__lockup img{height:auto;max-height:40px;max-width:160px}
.luno-auth-card__action{margin:-6px -6px 0 0}
.luno-auth-card__intro{margin-bottom:var(--space-6);text-align:left}
.luno-auth-card__eyebrow{color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);margin:0 0 var(--space-2);text-transform:uppercase}
.luno-auth-card__intro h1{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);line-height:var(--line-height-compact);margin:0 0 var(--space-2);text-wrap:balance}
.luno-auth-card__intro>p:last-child{color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:var(--line-height-default);margin:0;max-width:340px}
.luno-auth-form{display:grid;gap:var(--space-4);margin-top:0}
.luno-auth-form .luno-field{gap:var(--space-2)}
.luno-auth-form .luno-field>label{color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}
.luno-auth-form .luno-field__input{border-color:var(--color-border-subtle);border-radius:var(--r-md);box-shadow:none;min-height:var(--control-default)}
.luno-auth-form__utilities{align-items:center;color:var(--color-text-secondary);display:flex;font-size:var(--font-size-xs);justify-content:space-between;min-height:18px}
.luno-auth-form__utilities a{color:inherit;text-decoration:none}
.luno-auth-form__utilities a:hover{color:var(--color-brand-accent)}
.luno-auth-form__mode{background:transparent;border:0;color:var(--color-text-secondary);cursor:pointer;font:inherit;font-size:var(--font-size-xs);justify-self:center;padding:var(--space-1) 0}
.luno-auth-form__mode:hover{color:var(--color-brand-accent)}
.luno-auth-form__mode:focus-visible{outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}
/* Canonical login action, ported from the production NORMA/Legal login: navy→green
   gradient, 58px pill (18px radius from the approved reference), inverse mark inline. */
.luno-auth-form__submit{width:100%;min-height:58px;margin-top:var(--space-1);border:0;border-radius:18px;background:var(--luno-auth-action-gradient,var(--color-action-primary));font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);box-shadow:0 20px 34px color-mix(in srgb,var(--luno-auth-action-shadow,var(--color-action-primary)) 24%,transparent),inset 0 1px 0 color-mix(in srgb,var(--luno-auth-action-foreground,var(--color-action-primary-foreground)) 14%,transparent);transition:transform var(--motion-fast) var(--motion-ease-out),box-shadow var(--motion-color) var(--motion-ease-standard),opacity var(--motion-color) var(--motion-ease-standard)}
.luno-auth-form__submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 24px 40px color-mix(in srgb,var(--luno-auth-action-shadow,var(--color-action-primary)) 28%,transparent),inset 0 1px 0 color-mix(in srgb,var(--luno-auth-action-foreground,var(--color-action-primary-foreground)) 16%,transparent)}
.luno-auth-form__submit-content{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2)}
.luno-auth-form__submit-brand{display:inline-flex;align-items:center;gap:var(--space-2)}
.luno-auth-form__submit-mark{display:block;flex:none;height:18px;width:auto}
.luno-auth-form__divider{display:flex;align-items:center;gap:var(--space-3);margin:var(--space-2) 0 0;color:var(--color-text-muted);font-size:var(--font-size-xs)}
.luno-auth-form__divider::before,.luno-auth-form__divider::after{content:"";height:1px;flex:1;background:var(--color-border-subtle)}
.luno-auth-form__providers{display:grid;gap:var(--space-3)}
.luno-auth-form__provider{display:flex;align-items:center;justify-content:center;gap:var(--space-3);min-height:52px;border:1px solid var(--color-border-default);border-radius:var(--r-lg);background:var(--color-surface-card);color:var(--color-text-primary);font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:transform var(--motion-fast) var(--motion-ease-out),border-color var(--motion-color) var(--motion-ease-standard),background var(--motion-color) var(--motion-ease-standard)}
.luno-auth-form__provider:hover:not(:disabled){transform:translateY(-1px);border-color:var(--color-border-accent);background:var(--color-hover-bg)}
.luno-auth-form__provider:focus-visible{outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}
.luno-auth-form__provider:disabled{cursor:not-allowed;opacity:.6}
.luno-vendor-mark{display:block;flex:none}
.luno-two-factor-form{gap:var(--space-5)}

.luno-profile-panel{display:grid;gap:18px;grid-template-columns:190px minmax(0,1fr)}.luno-profile-panel__summary{align-items:center;background:var(--color-surface);border-radius:var(--r-lg);display:flex;flex-direction:column;padding:var(--space-5) 14px 14px;text-align:center}.luno-profile-panel__avatar{align-items:center;background:var(--color-surface-accent);border-radius:var(--r-full);color:var(--color-text-accent);display:inline-flex;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);height:64px;justify-content:center;margin-bottom:var(--space-3);width:64px}.luno-profile-panel__summary>strong{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.luno-profile-panel__job{color:var(--color-text-secondary);font-size:var(--font-size-xs);margin:3px 0 var(--space-3)}.luno-profile-panel__member{color:var(--color-text-muted);font-size:var(--font-size-xs);margin-top:9px}.luno-profile-panel__security{margin-top:var(--space-4);width:100%}.luno-profile-panel__security>*{width:100%}.luno-profile-panel__details{align-content:start;display:grid;gap:var(--space-3)}.luno-profile-panel__details .luno-field__input:disabled{cursor:default;opacity:1}.luno-profile-panel__details>p{color:var(--color-text-secondary);font-size:var(--font-size-xs);line-height:var(--line-height-default);margin:0}

.luno-email-preview{background:var(--color-surface-secondary);border:1px solid var(--color-border-subtle);border-radius:var(--r-lg);color:var(--color-text-primary);margin:auto;max-width:620px;overflow:hidden;padding:var(--space-6)}.luno-email-preview>header{background:var(--color-surface-card);padding:var(--space-6) var(--space-6) 0}.luno-email-preview>header img{height:auto;max-height:22px;max-width:112px}.luno-email-preview__body{background:var(--color-surface-card);padding:var(--space-6)}.luno-email-preview__eyebrow{color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);margin:0 0 var(--space-2);text-transform:uppercase}.luno-email-preview h2{font-size:var(--font-size-lg);line-height:var(--line-height-compact);margin:0 0 var(--space-3)}.luno-email-preview__copy{color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:var(--line-height-relaxed)}.luno-email-preview__copy p{margin:0 0 var(--space-3)}.luno-email-preview__action{margin-top:var(--space-5)}.luno-email-preview>footer{align-items:flex-start;color:var(--color-text-muted);display:flex;font-size:var(--font-size-xs);gap:var(--space-2);line-height:var(--line-height-default);padding:var(--space-4) var(--space-5)}

@media (max-width:768px){.luno-app-shell,.luno-app-shell.is-collapsed{grid-template-columns:1fr}.luno-app-shell__sidebar{border-bottom:1px solid var(--color-border-subtle);border-right:0}.luno-app-shell__sidebar-head,.luno-app-shell.is-collapsed .luno-app-shell__sidebar-head{justify-content:space-between;padding:0 var(--space-3)}.luno-app-shell.is-collapsed .luno-app-shell__brand{display:flex}.luno-app-shell__sidebar-body,.luno-app-shell.is-collapsed .luno-app-shell__sidebar-body{padding:var(--space-3)}.luno-app-shell.is-collapsed [data-luno-sidebar-label]{display:initial}.luno-app-shell.is-collapsed .luno-shell-nav__group{display:block}.luno-app-shell.is-collapsed .luno-shell-nav__item{gap:var(--space-3);justify-content:flex-start;padding:var(--space-2) var(--space-3)}.luno-app-shell__content{padding:var(--space-4)}.luno-profile-panel{grid-template-columns:1fr}}
@media (max-width:520px){.luno-auth-shell{padding:var(--space-5) 14px}.luno-auth-card{padding:28px 22px}.luno-auth-form__utilities{align-items:flex-start;flex-direction:column;gap:var(--space-2)}.luno-email-preview{padding:var(--space-3)}.luno-email-preview__body{padding:var(--space-6) var(--space-4)}}

/* Keep the canonical primary label white even when a consumer supplies a
   broader button color rule. The visual track stays compact while its label
   aligns to the first 24px text line inside the 44px hit target. */
.luno-button--primary,
.luno-button--primary:hover:not(:disabled),
.luno-button:active:not(:disabled){transform:scale(.97)}
.luno-button--primary:active:not(:disabled){color:var(--color-action-primary-foreground)!important}
/* The login action sits on a theme-invariant LUNO blue gradient, so its label
   keeps its own foreground while the graphite theme inverts the primary label. */
.luno-button--primary.luno-auth-form__submit,
.luno-button--primary.luno-auth-form__submit:hover:not(:disabled),
.luno-button--primary.luno-auth-form__submit:active:not(:disabled){color:var(--luno-auth-action-foreground,var(--color-action-primary-foreground))!important}
.luno-switch{margin-block:0}
.luno-switch-wrap__label{line-height:24px}

/* Canonical visual refinements: compact feedback, Geist data, and calm forms. */
.luno-alert{align-self:start;justify-self:start;width:fit-content;max-width:100%}
.luno-toast__dismiss{
  align-self:start;
  width:40px;
  height:40px;
  margin:-5px -5px -5px 2px;
  border:1px solid var(--color-border-subtle);
  border-radius:var(--r-full);
  background:var(--color-surface-secondary);
  box-shadow:var(--shadow-control);
}
.luno-toast__dismiss:hover{border-color:var(--color-control-border-hover);background:var(--color-surface-accent);color:var(--color-text-accent)}
.luno-number-flow{font-family:var(--font-sans);font-variant-numeric:tabular-nums}
.luno-badge{justify-self:start;width:fit-content;max-width:100%;white-space:nowrap}
.luno-field{gap:var(--space-2)}
.luno-field__input{font-family:var(--font-sans);font-size:var(--font-size-sm);line-height:var(--line-height-default)}
.luno-field__input::placeholder{color:var(--color-text-hint);font-family:var(--font-sans);opacity:.78}
.luno-textarea{padding-block:var(--space-3)}
.luno-two-factor-form .luno-field__input{font-size:var(--font-size-md);font-weight:var(--font-weight-medium);letter-spacing:.18em;text-align:center}
.luno-profile-panel__summary{border:1px solid var(--color-border-subtle);background:var(--color-surface-secondary)}
.luno-profile-panel__avatar{box-shadow:0 0 0 4px var(--color-surface-accent)}
.luno-profile-panel__details{gap:var(--space-4)}

.luno-dialog__backdrop{position:fixed;inset:0;z-index:var(--z-modal);background:color-mix(in srgb,var(--color-brand-navy) 48%,transparent);backdrop-filter:blur(3px);transition:opacity var(--motion-slow) var(--motion-ease-standard)}
.luno-dialog__viewport{position:fixed;inset:0;z-index:var(--z-modal);display:grid;place-items:center;padding:var(--space-5);overflow:auto}
/* Modals are flat by owner decision (2026-08-25): separation comes from the backdrop and border, not drop shadows. */
.luno-dialog{position:relative;width:min(100%,560px);max-height:min(760px,calc(100dvh - 40px));overflow:auto;border:1px solid var(--color-border-subtle);border-radius:var(--r-xl);background:var(--color-surface-card);color:var(--color-text-primary);padding:var(--space-6);transition:opacity var(--motion-color) var(--motion-ease-standard),transform var(--motion-fast) var(--motion-ease-out)}
.luno-dialog__header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:var(--space-4)}
.luno-dialog__eyebrow{margin:0 0 var(--space-2);color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase}
.luno-dialog__title{margin:0;font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-compact)}
.luno-dialog__description{max-width:46rem;margin:var(--space-3) 0 0;color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:var(--line-height-relaxed)}
.luno-dialog__body{margin-top:var(--space-5);font-size:var(--font-size-sm);line-height:var(--line-height-relaxed)}
.luno-dialog__body>:first-child{margin-top:0}.luno-dialog__body>:last-child{margin-bottom:0}
.luno-dialog__footer{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-6)}
.luno-dialog__close{display:grid;place-items:center;width:40px;height:40px;margin:-6px -6px 0 0;padding:0;border:1px solid var(--color-border-subtle);border-radius:var(--r-full);background:var(--color-surface-secondary);box-shadow:var(--shadow-control);color:var(--color-text-secondary);cursor:pointer}
.luno-dialog__close:hover{border-color:var(--color-control-border-hover);background:var(--color-surface-accent);color:var(--color-text-accent)}
.luno-dialog__close:focus-visible{outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}
.luno-dialog[data-starting-style]{opacity:0;transform:translateY(8px) scale(.985)}
.luno-dialog[data-ending-style]{opacity:0;transform:scale(.985);transition-duration:var(--motion-fast);transition-timing-function:var(--motion-ease-in)}
.luno-dialog__backdrop[data-starting-style],.luno-dialog__backdrop[data-ending-style]{opacity:0}

@media (prefers-reduced-motion:reduce){
  .luno-button,.luno-switch__thumb,.luno-app-shell{transition:none !important}
  .luno-app-shell__search,.luno-shell-nav__sub{transition:none !important}
  .luno-checkbox-option{transition:none !important}
  .luno-payment-card .crd__inner{transition:none !important}
  .luno-dialog,.luno-dialog__backdrop{transition:none !important}
}

@media (max-width:520px){.luno-dialog__viewport{align-items:end;padding:var(--space-3)}.luno-dialog{width:100%;max-height:calc(100dvh - 24px);padding:var(--space-5)}}

.luno-drawer__backdrop{position:fixed;inset:0;z-index:var(--z-modal);background:color-mix(in srgb,var(--color-brand-navy) 48%,transparent);backdrop-filter:blur(3px);transition:opacity var(--motion-slow) var(--motion-ease-standard)}
.luno-drawer__viewport{position:fixed;inset:0;z-index:var(--z-modal);display:flex;pointer-events:none}
.luno-drawer__viewport--right{justify-content:flex-end}.luno-drawer__viewport--left{justify-content:flex-start}.luno-drawer__viewport--bottom{align-items:flex-end}
.luno-drawer{pointer-events:auto;width:min(92vw,440px);height:100%;border:1px solid var(--color-border-subtle);background:var(--color-surface-card);color:var(--color-text-primary);transition:transform var(--motion-sheet) var(--motion-ease)}
.luno-drawer--right{border-radius:var(--r-xl) 0 0 var(--r-xl)}.luno-drawer--left{border-radius:0 var(--r-xl) var(--r-xl) 0}.luno-drawer--bottom{width:100%;height:auto;max-height:min(82dvh,760px);border-radius:var(--r-xl) var(--r-xl) 0 0}
.luno-drawer__content{display:flex;min-height:100%;max-height:100%;flex-direction:column;padding:var(--space-6)}
.luno-drawer__header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:var(--space-4)}
.luno-drawer__eyebrow{margin:0 0 var(--space-2);color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase}
.luno-drawer__title{margin:0;font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-compact)}
.luno-drawer__description{margin:var(--space-3) 0 0;color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:var(--line-height-relaxed)}
.luno-drawer__body{flex:1;overflow:auto;margin-top:var(--space-6);font-size:var(--font-size-sm);line-height:var(--line-height-relaxed)}
.luno-drawer__footer{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--color-border-subtle)}
.luno-drawer__close{display:grid;place-items:center;width:40px;height:40px;margin:-6px -6px 0 0;padding:0;border:1px solid var(--color-border-subtle);border-radius:var(--r-full);background:var(--color-surface-secondary);box-shadow:var(--shadow-control);color:var(--color-text-secondary);cursor:pointer}
.luno-drawer__close:hover{border-color:var(--color-control-border-hover);background:var(--color-surface-accent);color:var(--color-text-accent)}.luno-drawer__close:focus-visible{outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}
.luno-drawer--right[data-starting-style],.luno-drawer--right[data-ending-style]{transform:translateX(100%)}.luno-drawer--left[data-starting-style],.luno-drawer--left[data-ending-style]{transform:translateX(-100%)}.luno-drawer--bottom[data-starting-style],.luno-drawer--bottom[data-ending-style]{transform:translateY(100%)}
.luno-drawer__backdrop[data-starting-style],.luno-drawer__backdrop[data-ending-style]{opacity:0}

@media (prefers-reduced-motion:reduce){.luno-drawer,.luno-drawer__backdrop{transition:none !important}}
@media (max-width:520px){.luno-drawer:not(.luno-drawer--bottom){width:100%;border-radius:0}.luno-drawer__content{padding:var(--space-5)}}

.luno-dropdown{min-width:11rem;max-width:min(320px,calc(100vw - 16px));padding:var(--space-1);border:0;border-radius:var(--r-surface);background:var(--color-surface-card);box-shadow:var(--shadow-toast);color:var(--color-text-primary);outline:none;transform-origin:var(--transform-origin);transition:opacity var(--motion-normal) var(--motion-ease),transform var(--motion-normal) var(--motion-ease)}
.luno-dropdown[data-starting-style]{opacity:0;transform:translateY(-4px) scale(.97)}
.luno-dropdown[data-ending-style]{opacity:0;transform:scale(.98);transition-duration:var(--motion-fast);transition-timing-function:var(--motion-ease-in)}
.luno-dropdown__entry{display:contents}.luno-dropdown__item{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:var(--space-2);min-height:28px;padding:6px var(--space-2);border-radius:var(--r-control);color:var(--color-text-secondary);font-size:var(--font-size-body);line-height:1.1;outline:none;cursor:default;user-select:none;transition:background-color var(--motion-color) var(--motion-ease-standard),color var(--motion-color) var(--motion-ease-standard)}
.luno-dropdown__item--check{padding-right:28px}
.luno-dropdown__check{position:absolute;right:var(--space-2);display:grid;place-items:center;color:var(--color-text-primary);animation:luno-pop var(--motion-pop) var(--motion-ease)}
.luno-dropdown__group-label{padding:6px var(--space-2) var(--space-1);color:var(--color-text-hint);font-size:var(--font-size-caption);font-weight:var(--font-weight-medium);letter-spacing:.025em;line-height:1;text-transform:uppercase}
.luno-dropdown__item[data-highlighted]{background:var(--color-hover-bg);color:var(--color-text-primary)}.luno-dropdown__item[data-disabled]{color:var(--color-text-muted);cursor:not-allowed;opacity:.62}.luno-dropdown__item--destructive:not([data-disabled]){color:var(--tone-danger-tx)}
.luno-dropdown__icon,.luno-dropdown__chevron{display:grid;place-items:center}.luno-dropdown__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.luno-dropdown__shortcut{padding:0;border:0;background:transparent;color:var(--color-text-muted);font-family:var(--font-mono);font-size:var(--font-size-xs)}
.luno-dropdown__separator{height:1px;margin:var(--space-1) calc(var(--space-1) * -1);background:var(--color-border-default)}

@media (prefers-reduced-motion:reduce){.luno-dropdown{transition:none !important}.luno-dropdown__item{transition:none !important}.luno-dropdown__check{animation:none !important}}

.luno-tooltip{z-index:var(--z-toast);max-width:min(280px,calc(100vw - 16px));padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-default);border-radius:var(--r-md);background:var(--color-surface-elevated);color:var(--color-text-primary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);line-height:var(--line-height-default);text-wrap:balance;transform-origin:var(--transform-origin);transition:opacity var(--motion-normal) var(--motion-ease),transform var(--motion-normal) var(--motion-ease)}
.luno-tooltip[data-starting-style]{opacity:0;transform:translateY(-4px) scale(.97)}
.luno-tooltip[data-ending-style]{opacity:0;transform:scale(.98);transition-duration:var(--motion-fast);transition-timing-function:var(--motion-ease-in)}.luno-tooltip__arrow{display:flex;color:var(--color-surface-elevated)}.luno-tooltip__arrow>svg{fill:currentColor}

@media (prefers-reduced-motion:reduce){.luno-tooltip{transition:none !important}}

.luno-combobox{display:grid;gap:var(--space-2);width:100%}.luno-combobox__label{color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}
.luno-combobox__control{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;min-height:var(--control-default);border:1px solid var(--color-control-border);border-radius:var(--r-control);background:var(--color-input-bg);box-shadow:var(--shadow-control);color:var(--color-text-secondary);transition:border-color var(--motion-color) var(--motion-ease-standard),box-shadow var(--motion-color) var(--motion-ease-standard)}
.luno-combobox__control:focus-within{border-color:var(--color-control-border-selected);outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}.luno-combobox--invalid .luno-combobox__control{border-color:var(--color-control-invalid)}
.luno-combobox__search{margin-left:var(--space-3)}.luno-combobox__input{min-width:0;width:100%;height:42px;padding:0 var(--space-3);border:0;background:transparent;color:var(--color-text-primary);font:inherit;font-size:var(--font-size-sm);outline:none}.luno-combobox__input::placeholder{color:var(--color-text-hint)}
.luno-combobox__clear{display:grid;place-items:center;width:40px;height:40px;margin-right:var(--space-1);padding:0;border:0;border-radius:var(--r-full);background:transparent;color:var(--color-text-muted);cursor:pointer}.luno-combobox__clear:hover{background:var(--color-surface-accent);color:var(--color-text-accent)}.luno-combobox__clear:focus-visible{outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}.luno-combobox__clear[data-disabled]{display:none}
.luno-combobox__help{margin:0;color:var(--color-text-muted);font-size:var(--font-size-xs);line-height:var(--line-height-default)}.luno-combobox__help--error{color:var(--tone-danger-tx)}
.luno-combobox__popup{min-width:var(--anchor-width);max-width:min(420px,calc(100vw - 16px));max-height:min(320px,var(--available-height));overflow:auto;padding:var(--space-2);border:1px solid var(--color-border-subtle);border-radius:var(--r-lg);background:var(--color-surface-card);color:var(--color-text-primary);outline:none;transform-origin:var(--transform-origin);transition:opacity var(--motion-normal) var(--motion-ease),transform var(--motion-normal) var(--motion-ease)}
.luno-combobox__popup[data-starting-style]{opacity:0;transform:translateY(-4px) scale(.97)}
.luno-combobox__popup[data-ending-style]{opacity:0;transform:scale(.98);transition-duration:var(--motion-fast);transition-timing-function:var(--motion-ease-in)}.luno-combobox__list{display:grid;gap:var(--space-1)}
.luno-combobox__option{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--space-2);min-height:40px;padding:var(--space-2) var(--space-3);border-radius:var(--r-md);color:var(--color-text-secondary);font-size:var(--font-size-sm);outline:none;cursor:pointer}.luno-combobox__option[data-highlighted]{background:var(--color-surface-accent);color:var(--color-text-accent)}.luno-combobox__option[data-disabled]{color:var(--color-text-muted);cursor:not-allowed;opacity:.62}.luno-combobox__indicator{display:grid;place-items:center;color:var(--color-text-accent)}.luno-combobox__empty{padding:var(--space-4);color:var(--color-text-muted);font-size:var(--font-size-sm);text-align:center}

@media (prefers-reduced-motion:reduce){.luno-combobox__control,.luno-combobox__popup{transition:none !important}}

.luno-data-grid{width:100%;overflow-x:auto;border:1px solid var(--color-border-subtle);border-radius:var(--r-lg);background:var(--color-surface-card);box-shadow:var(--shadow-control)}
.luno-data-grid table{width:100%;min-width:640px;border-collapse:collapse;color:var(--color-text-primary);font-size:var(--font-size-sm)}.luno-data-grid caption{padding:var(--space-4);border-bottom:1px solid var(--color-border-subtle);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);text-align:left}.luno-data-grid th,.luno-data-grid td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border-subtle);text-align:left;vertical-align:middle}.luno-data-grid th{background:var(--color-surface-secondary);color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);}.luno-data-grid tbody tr:last-child td{border-bottom:0}.luno-data-grid tbody tr:hover{background:var(--color-hover-bg)}.luno-data-grid tbody tr[aria-selected="true"]{background:var(--color-surface-accent)}.luno-data-grid [data-align="center"]{text-align:center}.luno-data-grid [data-align="end"]{text-align:right}.luno-data-grid__selection{width:48px;padding:0!important;text-align:center!important}.luno-data-grid__selection-control{display:grid;width:40px;height:40px;margin:auto;place-items:center;cursor:pointer}.luno-data-grid__selection-control:has(input:disabled){cursor:not-allowed;opacity:.58}.luno-data-grid__selection-control input{width:18px;height:18px;margin:0;accent-color:var(--color-action-primary)}.luno-data-grid__selection-control input:focus-visible{outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}
.luno-data-grid__state{display:grid;gap:var(--space-2);min-height:136px;place-content:center;padding:var(--space-6);border:1px dashed var(--color-control-border);border-radius:var(--r-lg);background:var(--color-surface-secondary);color:var(--color-text-secondary);font-size:var(--font-size-sm);text-align:center}.luno-data-grid__state strong{color:var(--color-text-primary);font-size:var(--font-size-base)}.luno-data-grid__state--error{border-color:var(--tone-danger-bd);background:var(--tone-danger-bg);color:var(--tone-danger-tx)}.luno-data-grid__state--error strong{color:inherit}

.luno-pagination{display:flex;align-items:center;gap:var(--space-2)}.luno-pagination__pages{display:flex;align-items:center;gap:var(--space-1);margin:0;padding:0;list-style:none}.luno-pagination__entry{display:flex;align-items:center;gap:var(--space-1)}.luno-pagination__button{display:grid;min-width:40px;height:40px;padding:0 var(--space-2);place-items:center;border:1px solid transparent;border-radius:var(--r-md);background:transparent;color:var(--color-text-secondary);font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer}.luno-pagination__button:hover:not(:disabled){border-color:var(--color-border-subtle);background:var(--color-hover-bg);color:var(--color-text-primary)}.luno-pagination__button[aria-current="page"]{border-color:var(--color-control-border-selected);background:var(--color-surface-accent);color:var(--color-text-accent);font-weight:var(--font-weight-semibold)}.luno-pagination__button:focus-visible{outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}.luno-pagination__button:disabled{cursor:not-allowed;opacity:.45}.luno-pagination__ellipsis{display:grid;width:24px;height:40px;place-items:center;color:var(--color-text-muted)}

.luno-skeleton{width:100%}.luno-skeleton__visual{display:grid;gap:var(--space-2)}.luno-skeleton__line{display:block;width:var(--luno-skeleton-width,100%);height:14px;border-radius:var(--r-full);background:linear-gradient(90deg,var(--color-surface-accent),var(--color-surface-secondary),var(--color-surface-accent));background-size:200% 100%;animation:luno-skeleton-shimmer var(--motion-loop) var(--motion-ease-standard) infinite}.luno-skeleton--avatar .luno-skeleton__line{width:48px;height:48px}.luno-skeleton--card .luno-skeleton__line{width:min(100%,520px);height:104px;border-radius:var(--r-lg)}
@keyframes luno-skeleton-shimmer{to{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){.luno-skeleton__line{animation:none!important}}
@media (max-width:640px){.luno-data-grid{border-radius:var(--r-md)}.luno-pagination{justify-content:space-between}.luno-pagination__pages li:not(:has([aria-current="page"])){display:none}.luno-pagination__pages li:has([aria-current="page"]){display:flex}.luno-pagination__ellipsis{display:none}}

.luno-file-upload{display:grid;gap:var(--space-4);width:100%}.luno-file-upload__dropzone{position:relative;display:grid;min-height:184px;padding:var(--space-6);place-content:center;justify-items:center;gap:var(--space-2);border:1.5px dashed var(--color-control-border);border-radius:var(--r-xl);background:var(--color-surface-secondary);color:var(--color-text-secondary);text-align:center;cursor:pointer;transition:border-color var(--motion-color) var(--motion-ease-standard),background var(--motion-color) var(--motion-ease-standard),box-shadow var(--motion-color) var(--motion-ease-standard)}.luno-file-upload__dropzone:hover:not([data-disabled]){border-color:var(--color-control-border-hover);background:var(--color-surface-accent)}.luno-file-upload__dropzone:focus-within{border-color:var(--color-control-border-selected);outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}.luno-file-upload__dropzone[data-disabled]{cursor:not-allowed;opacity:.58}.luno-file-upload__dropzone>input{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.luno-file-upload__icon{display:grid;width:44px;height:44px;place-items:center;border:1px solid var(--color-border-subtle);border-radius:var(--r-full);background:var(--color-surface-card);box-shadow:var(--shadow-control);color:var(--color-text-accent)}.luno-file-upload__dropzone strong{color:var(--color-text-primary);font-size:var(--font-size-base)}.luno-file-upload__dropzone>span:not(.luno-file-upload__icon){font-size:var(--font-size-sm)}.luno-file-upload__dropzone small{color:var(--color-text-muted);font-size:var(--font-size-xs)}
.luno-file-upload__rejections{display:grid;gap:var(--space-2)}.luno-file-upload__rejections:empty{display:none}.luno-file-upload__rejections p{display:flex;align-items:flex-start;gap:var(--space-2);margin:0;padding:var(--space-3);border:1px solid var(--tone-danger-bd);border-radius:var(--r-md);background:var(--tone-danger-bg);color:var(--tone-danger-tx);font-size:var(--font-size-sm)}
.luno-file-upload__items{display:grid;gap:var(--space-2);margin:0;padding:0;list-style:none}.luno-file-upload__item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--space-3);min-height:64px;padding:var(--space-3);border:1px solid var(--color-border-subtle);border-radius:var(--r-lg);background:var(--color-surface-card);color:var(--color-text-primary)}.luno-file-upload__item[data-status="error"]{border-color:var(--tone-danger-bd)}.luno-file-upload__item[data-status="complete"]{border-color:var(--tone-success-bd)}.luno-file-upload__file-icon{display:grid;width:36px;height:36px;place-items:center;border-radius:var(--r-md);background:var(--color-surface-accent);color:var(--color-text-accent)}.luno-file-upload__item[data-status="error"] .luno-file-upload__file-icon{background:var(--tone-danger-bg);color:var(--tone-danger-tx)}.luno-file-upload__item[data-status="complete"] .luno-file-upload__file-icon{background:var(--tone-success-bg);color:var(--tone-success-tx)}.luno-file-upload__item-copy{display:grid;gap:var(--space-1);min-width:0}.luno-file-upload__item-copy>strong{overflow:hidden;font-size:var(--font-size-sm);text-overflow:ellipsis;white-space:nowrap}.luno-file-upload__item-copy>span{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.luno-file-upload__progress{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--space-2)}.luno-file-upload__progress progress{width:100%;height:8px;accent-color:var(--color-action-primary)}.luno-file-upload__actions{display:flex;gap:var(--space-1)}.luno-file-upload__actions button{display:grid;width:40px;height:40px;padding:0;place-items:center;border:1px solid var(--color-border-subtle);border-radius:var(--r-full);background:var(--color-surface-secondary);color:var(--color-text-secondary);cursor:pointer}.luno-file-upload__actions button:hover{border-color:var(--color-control-border-hover);background:var(--color-surface-accent);color:var(--color-text-accent)}.luno-file-upload__actions button:focus-visible{outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}
@media (prefers-reduced-motion:reduce){.luno-file-upload__dropzone{transition:none!important}}
@media (max-width:520px){.luno-file-upload__dropzone{min-height:164px;padding:var(--space-5)}.luno-file-upload__item{grid-template-columns:auto minmax(0,1fr)}.luno-file-upload__actions{grid-column:1/-1;justify-content:flex-end}}

.luno-error-boundary{position:relative;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);padding-right:calc(var(--space-4) + 36px);border:1px solid var(--tone-danger-bd);border-radius:var(--r-xl);background:var(--tone-danger-bg);color:var(--tone-danger-tx)}.luno-error-boundary__icon{display:grid;flex:none;width:36px;height:36px;place-items:center;border:1px solid currentColor;border-radius:var(--r-full)}.luno-error-boundary__copy{display:grid;gap:var(--space-1);min-width:0}.luno-error-boundary__retry{position:absolute;top:var(--space-3);right:var(--space-3);display:grid;place-items:center;width:28px;height:28px;padding:0;border:1px solid color-mix(in srgb,currentColor 35%,transparent);border-radius:var(--r-full);background:transparent;color:inherit;cursor:pointer;transition:background var(--motion-color) var(--motion-ease-standard),border-color var(--motion-color) var(--motion-ease-standard)}.luno-error-boundary__retry:hover{background:color-mix(in srgb,currentColor 10%,transparent);border-color:currentColor}.luno-error-boundary__retry:focus-visible{outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}.luno-error-boundary__copy h2{margin:0;color:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);line-height:var(--line-height-compact)}.luno-error-boundary__copy p{margin:0;color:inherit;font-size:var(--font-size-xs);line-height:var(--line-height-default)}
.luno-theme-toggle{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:44px;padding:var(--space-2) var(--space-4);border:1px solid var(--color-control-border);border-radius:var(--r-control);background:var(--color-surface-card);box-shadow:var(--shadow-control);color:var(--color-text-primary);font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:background var(--motion-color) var(--motion-ease-standard),border-color var(--motion-color) var(--motion-ease-standard),box-shadow var(--motion-color) var(--motion-ease-standard),color var(--motion-color) var(--motion-ease-standard)}.luno-theme-toggle:hover{border-color:var(--color-control-border-hover);background:var(--color-hover-bg)}.luno-theme-toggle:focus-visible{outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}
@media (prefers-reduced-motion:reduce){.luno-theme-toggle{transition:none!important}}

.luno-tabs{display:grid;gap:var(--space-3);width:100%}.luno-tabs__list{position:relative;display:flex;gap:var(--space-1);padding:var(--space-1);border:1px solid var(--color-control-border);border-radius:var(--r-lg);background:var(--color-surface-card);overflow-x:auto}.luno-tabs__tab{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 var(--space-3);border:0;border-radius:var(--r-md);background:transparent;color:var(--color-text-secondary);font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);white-space:nowrap;cursor:pointer}.luno-tabs__tab:hover:not([data-disabled]){background:var(--color-hover-bg);color:var(--color-text-primary)}.luno-tabs__tab[data-active]{color:var(--color-action-primary-foreground)}.luno-tabs__tab[data-disabled]{cursor:not-allowed;opacity:.5}.luno-tabs__tab:focus-visible{outline:var(--color-focus-ring);outline-offset:calc(-1 * var(--focus-ring-width));box-shadow:inset 0 0 0 calc(2 * var(--focus-ring-width)) var(--color-focus-gap)}.luno-tabs__indicator{position:absolute;z-index:0;left:var(--active-tab-left);top:var(--space-1);width:var(--active-tab-width);height:var(--active-tab-height);border-radius:var(--r-md);background:var(--color-action-primary);transition:left var(--motion-slow) var(--motion-ease),top var(--motion-slow) var(--motion-ease),width var(--motion-slow) var(--motion-ease),height var(--motion-slow) var(--motion-ease)}.luno-tabs__panels{min-width:0}.luno-tabs__panel{color:var(--color-text-primary);outline:none}.luno-tabs__panel:focus-visible{border-radius:var(--r-md);outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}.luno-tabs--vertical{grid-template-columns:minmax(140px,220px) minmax(0,1fr);align-items:start}.luno-tabs--vertical .luno-tabs__list{flex-direction:column;overflow:visible}.luno-tabs--vertical .luno-tabs__tab{justify-content:flex-start}.luno-tabs--vertical .luno-tabs__indicator{left:var(--space-1);top:var(--active-tab-top);width:var(--active-tab-width);height:var(--active-tab-height)}
@media (prefers-reduced-motion:reduce){.luno-tabs__indicator{transition:none!important}}
@media (max-width:520px){.luno-tabs--vertical{grid-template-columns:1fr}.luno-tabs--vertical .luno-tabs__list{flex-direction:row;overflow-x:auto}.luno-tabs--vertical .luno-tabs__tab{justify-content:center}.luno-tabs--vertical .luno-tabs__indicator{left:var(--active-tab-left);top:var(--space-1)}}

.luno-accordion{border:1px solid var(--color-control-border);border-radius:var(--r-lg);background:var(--color-surface-card);overflow:hidden}.luno-accordion__item+.luno-accordion__item{border-top:1px solid var(--color-border-subtle)}.luno-accordion__header{margin:0}.luno-accordion__trigger{align-items:center;background:transparent;border:0;color:var(--color-text-primary);cursor:pointer;display:flex;font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);gap:var(--space-3);justify-content:space-between;min-height:var(--control-default);padding:var(--space-3) var(--space-4);text-align:left;width:100%}.luno-accordion__trigger:hover:not([data-disabled]){background:var(--color-hover-bg)}.luno-accordion__trigger[data-disabled]{color:var(--color-text-muted);cursor:not-allowed}.luno-accordion__trigger:focus-visible{outline:var(--color-focus-ring);outline-offset:calc(-1 * var(--focus-ring-width))}.luno-accordion__chevron{flex:none;transition:transform var(--motion-slow) var(--motion-ease)}.luno-accordion__trigger[data-panel-open] .luno-accordion__chevron{transform:rotate(180deg)}.luno-accordion__panel{height:var(--accordion-panel-height);overflow:hidden;transition:height var(--motion-slow) var(--motion-ease)}.luno-accordion__panel>div{color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:var(--line-height-default);padding:0 var(--space-4) var(--space-4)}

.luno-avatar-wrap{align-items:center;display:inline-flex;gap:var(--space-2)}.luno-avatar{align-items:center;background:var(--color-surface-accent);border:1px solid var(--color-border-subtle);border-radius:var(--r-full);color:var(--color-text-accent);display:inline-flex;flex:none;font-weight:var(--font-weight-semibold);justify-content:center;overflow:hidden}.luno-avatar--sm{font-size:var(--font-size-xs);height:32px;width:32px}.luno-avatar--md{font-size:var(--font-size-sm);height:40px;width:40px}.luno-avatar--lg{font-size:var(--font-size-lg);height:56px;width:56px}.luno-avatar__image{height:100%;object-fit:cover;width:100%}.luno-avatar__fallback{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.luno-avatar__status{align-items:center;color:var(--color-text-secondary);display:inline-flex;font-size:var(--font-size-xs);gap:var(--space-1);white-space:nowrap}.luno-avatar__status>span{background:var(--tone-neutral-tx);border-radius:var(--r-full);height:8px;width:8px}.luno-avatar__status--online>span{background:var(--tone-success-tx)}.luno-avatar__status--away>span{background:var(--tone-warning-tx)}.luno-avatar__status--busy>span{background:var(--tone-danger-tx)}

.luno-breadcrumb{min-width:0}.luno-breadcrumb ol{align-items:center;display:flex;list-style:none;margin:0;min-width:0;padding:0}.luno-breadcrumb li{align-items:center;color:var(--color-text-secondary);display:flex;font-size:var(--font-size-sm);min-width:0}.luno-breadcrumb a,.luno-breadcrumb li>span{border-radius:var(--r-sm);overflow:hidden;padding:var(--space-1);text-overflow:ellipsis;white-space:nowrap}.luno-breadcrumb a{color:var(--color-text-accent);text-decoration:none}.luno-breadcrumb a:is(:hover,:focus-visible){text-decoration:underline;text-underline-offset:3px}.luno-breadcrumb a:focus-visible{outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}.luno-breadcrumb [aria-current="page"]{color:var(--color-text-primary);font-weight:var(--font-weight-semibold)}.luno-breadcrumb__separator{flex:none;margin:0 var(--space-1)}.luno-breadcrumb__responsive-ellipsis{display:none!important}@media (prefers-reduced-motion:reduce){.luno-accordion__chevron,.luno-accordion__panel{transition:none!important}}@media (max-width:520px){.luno-breadcrumb__responsive-middle{display:none!important}.luno-breadcrumb__responsive-ellipsis{display:flex!important}}

/* Windows High Contrast and browser forced-colors contract. System colors are
 * intentional here: the operating system, not a LUNO token, is authoritative
 * when a user requests an enforced contrast palette. */
@media (forced-colors:active){
  :where(.luno-button,.luno-field__input,.luno-textarea,.luno-select__trigger,.luno-switch,.luno-checkbox,.luno-radio,.luno-dialog,.luno-drawer,.luno-dropdown,.luno-tooltip,.luno-combobox__control,.luno-combobox__popup,.luno-data-grid,.luno-file-upload__dropzone,.luno-tabs__list,.luno-accordion,.luno-card,.luno-alert,.luno-toast){
    border-color:CanvasText;
    box-shadow:none;
    forced-color-adjust:auto;
  }
  :where(button,[href],input,select,textarea,[tabindex]):focus-visible,
  :where(.luno-combobox__control,.luno-file-upload__dropzone):focus-within{
    outline:3px solid Highlight;
    outline-offset:3px;
    box-shadow:none;
  }
  :where([aria-current="page"],[aria-selected="true"],[aria-checked="true"],[data-active],[data-highlighted],[data-panel-open]){
    outline:2px solid Highlight;
    outline-offset:-2px;
  }
  :where(:disabled,[aria-disabled="true"],[data-disabled]){
    border-color:GrayText;
    color:GrayText;
  }
  :where(.luno-tabs__indicator,.luno-switch__thumb,.luno-progress__bar,.luno-skeleton__line){
    background:Highlight;
    forced-color-adjust:none;
  }
  :where(.luno-alert,.luno-toast,.luno-error-boundary,.luno-data-grid__state,.luno-file-upload__rejections p){
    border:1px solid currentColor;
  }
}

/* Runtime LUNO lockup (ADR 0009, owner review 2026-09-27): the LUNO mark and wordmark
   stay unchanged; the product name uses secondary ink at weight 500 and its cap height
   equals the wordmark cap height (wordmark caps .59 of the logo height, Geist caps .726 em). */
.luno-brand-lockup{--luno-lockup-height:20px;display:inline-flex;align-items:center;gap:calc(var(--luno-lockup-height) * .4);min-width:0;white-space:nowrap}
.luno-brand-lockup__logo{color:var(--color-wordmark);display:block;flex:none;height:var(--luno-lockup-height);width:auto}
/* Inherited display roles follow the nearest boundary, not any dark ancestor.
   These select existing approved SVGs; they never redraw or recolor the mark. */
:root,.light,[data-theme="light"]{--luno-brand-light-display:block;--luno-brand-dark-display:none}
.dark,[data-theme="dark"]{--luno-brand-light-display:none;--luno-brand-dark-display:block}
.luno-brand-lockup__divider{background:var(--color-border-default);flex:none;height:calc(var(--luno-lockup-height) * .8);width:1px}
.luno-brand-lockup__product{color:var(--color-text-secondary);font-family:var(--font-sans);font-size:calc(var(--luno-lockup-height) * .8125);font-weight:var(--font-weight-medium);letter-spacing:0;line-height:1;min-width:0;overflow:hidden;text-overflow:ellipsis;text-transform:none}
.luno-brand-lockup--sm{--luno-lockup-height:16px}
.luno-brand-lockup--md{--luno-lockup-height:20px}
.luno-brand-lockup--lg{--luno-lockup-height:26px}

/* User card and menu (ADR 0009). */
.luno-user-card{align-items:center;background:var(--color-surface-card);border:0;border-radius:var(--r-control);box-shadow:inset 0 0 0 .8px var(--color-border-default),var(--shadow-card);color:var(--color-text-primary);cursor:pointer;display:flex;font:inherit;gap:10px;min-width:0;padding:var(--space-2);text-align:left;transition:box-shadow var(--motion-color) var(--motion-ease-standard),transform var(--motion-fast) var(--motion-ease-out);width:100%}
.luno-user-card:hover{box-shadow:inset 0 0 0 .8px var(--color-border-hover),var(--shadow-card)}
.luno-user-card:active{transform:scale(.985)}
.luno-user-card:focus-visible{outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}
.luno-user-card__avatar{align-items:center;background:var(--color-avatar-from);border-radius:var(--r-pill);box-shadow:inset 0 0 0 .8px var(--color-border-default);color:var(--color-avatar-text);display:flex;flex:none;font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);height:30px;justify-content:center;width:30px}
.luno-user-card__copy{display:grid;flex:1;min-width:0}
.luno-user-card__copy strong{font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.luno-user-card__copy span{color:var(--color-text-muted);font-size:var(--font-size-label);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.luno-user-card__chevron{color:var(--color-text-muted);flex:none;transform:rotate(180deg)}
.luno-app-shell.is-collapsed .luno-user-card{justify-content:center;padding:var(--space-1)}
.luno-app-shell.is-collapsed .luno-user-card__chevron{display:none}
.luno-user-menu__popup{min-width:14rem}

/* Toast queue (ADR 0009): bottom right, three at most, closes on its own unless someone is reading. */
.luno-toast-queue{bottom:var(--space-5);display:flex;flex-direction:column;gap:var(--space-2);pointer-events:none;position:fixed;right:var(--space-5);width:min(360px,calc(100vw - 2 * var(--space-5)));z-index:var(--z-toast)}
.luno-toast-queue__item{animation:luno-rise-in var(--motion-slow) var(--motion-ease) both;border-radius:var(--r-surface);overflow:hidden;pointer-events:auto;position:relative}
.luno-toast-queue__item .luno-toast{box-shadow:var(--shadow-toast);width:100%}
.luno-toast-queue__timer{animation:luno-toast-timer var(--luno-toast-duration,5000ms) var(--motion-ease-linear) forwards;background:var(--color-border-default);bottom:0;height:2px;left:0;position:absolute;right:0;transform-origin:left}
.luno-toast-queue__item[data-paused] .luno-toast-queue__timer{animation-play-state:paused}
@keyframes luno-toast-timer{from{transform:scaleX(1)}to{transform:scaleX(0)}}
@media (prefers-reduced-motion:reduce){.luno-user-card{transition:none !important}.luno-toast-queue__item,.luno-toast-queue__timer{animation:none !important}}

/* Filter bar (ADR 0009). */
.luno-filter-bar{display:grid;gap:var(--space-2)}
.luno-filter-bar__row{align-items:center;display:flex;flex-wrap:wrap;gap:6px}
.luno-filter-bar__search{align-items:center;background:var(--color-input-bg);border-radius:var(--r-control);box-shadow:inset 0 0 0 1px var(--color-control-border);color:var(--color-text-muted);display:flex;flex:1 1 220px;gap:var(--space-2);height:var(--control-default);max-width:280px;padding:0 10px;transition:box-shadow var(--motion-color) var(--motion-ease-standard)}
.luno-filter-bar__search:focus-within{box-shadow:inset 0 0 0 1px var(--color-control-border-selected),0 0 0 3px var(--color-selected-bg)}
.luno-filter-bar__search input{background:none;border:0;color:var(--color-text-primary);flex:1;font:inherit;font-size:var(--font-size-body);min-width:0;outline:0}
.luno-filter-bar__button,.luno-filter-bar__clear{align-items:center;background:var(--color-surface-card);border:0;border-radius:var(--r-control);color:var(--color-text-secondary);cursor:pointer;display:inline-flex;font:inherit;font-size:var(--font-size-label);font-weight:var(--font-weight-medium);gap:6px;height:var(--control-default);padding:0 10px;transition:background-color var(--motion-color) var(--motion-ease-standard),color var(--motion-color) var(--motion-ease-standard),box-shadow var(--motion-color) var(--motion-ease-standard)}
.luno-filter-bar__button{outline:1px dashed var(--color-control-border);outline-offset:-1px}
.luno-filter-bar__button.is-active{box-shadow:inset 0 0 0 1px var(--color-control-border-selected);color:var(--color-text-primary);outline:0}
.luno-filter-bar__button:hover,.luno-filter-bar__clear:hover{background:var(--color-hover-bg);color:var(--color-text-primary)}
.luno-filter-bar__button:focus-visible,.luno-filter-bar__clear:focus-visible{box-shadow:0 0 0 var(--focus-ring-offset) var(--color-focus-gap);outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}
.luno-filter-bar__clear{background:transparent}
.luno-filter-bar__count{align-items:center;background:var(--color-hover-bg);border-radius:var(--r-pill);box-shadow:inset 0 0 0 .8px var(--color-border-default);color:var(--color-text-primary);display:inline-flex;font-size:var(--font-size-caption);height:18px;justify-content:center;min-width:18px;padding:0 5px;animation:luno-pop var(--motion-pop) var(--motion-ease)}
.luno-filter-bar__chips{display:flex;flex-wrap:wrap;gap:6px}
.luno-filter-bar__chip-group{color:var(--color-text-muted)}

/* Notification center (ADR 0009, variant A). */
.luno-notification-bell{align-items:center;background:transparent;border:0;border-radius:var(--r-control);color:var(--color-text-secondary);cursor:pointer;display:inline-flex;height:32px;justify-content:center;position:relative;transition:background-color var(--motion-color) var(--motion-ease-standard),color var(--motion-color) var(--motion-ease-standard);width:32px}
.luno-notification-bell:hover,.luno-notification-bell[data-popup-open]{background:var(--color-hover-bg);color:var(--color-text-primary)}
.luno-notification-bell:focus-visible{outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}
.luno-notification-bell__icon{transform-origin:50% 2px}
.luno-notification-bell__icon.is-ringing{animation:luno-ring var(--motion-sheet) var(--motion-ease-in-out)}
.luno-notification-bell__count{align-items:center;animation:luno-pop var(--motion-pop) var(--motion-ease);background:var(--color-action-primary);border:2px solid var(--color-surface-card);border-radius:var(--r-pill);color:var(--color-action-primary-foreground);display:flex;font-size:9.5px;font-weight:var(--font-weight-semibold);height:16px;justify-content:center;min-width:16px;padding:0 3px;position:absolute;right:1px;top:2px}
.luno-notification-center{background:var(--color-surface-card);border-radius:var(--r-surface);box-shadow:var(--shadow-toast);color:var(--color-text-primary);max-width:calc(100vw - 16px);overflow:hidden;transform-origin:var(--transform-origin);transition:opacity var(--motion-normal) var(--motion-ease),transform var(--motion-normal) var(--motion-ease);width:380px;z-index:var(--z-popover)}
.luno-notification-center[data-starting-style]{opacity:0;transform:translateY(-4px) scale(.97)}
.luno-notification-center[data-ending-style]{opacity:0;transform:scale(.98);transition-duration:var(--motion-fast);transition-timing-function:var(--motion-ease-in)}
.luno-notification-center__head{align-items:center;display:flex;justify-content:space-between;padding:14px 14px 10px}
.luno-notification-center__title{font-size:var(--font-size-h3);font-weight:var(--font-weight-semibold);margin:0}
.luno-notification-center__link{background:none;border:0;border-radius:var(--r-tight);color:var(--color-text-secondary);cursor:pointer;font:inherit;font-size:var(--font-size-label);font-weight:var(--font-weight-medium);padding:2px}
.luno-notification-center__link:is(:hover,:focus-visible):not(:disabled){color:var(--color-text-primary);text-decoration:underline;text-underline-offset:3px}
.luno-notification-center__link:focus-visible{outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}
.luno-notification-center__link:disabled{cursor:default;opacity:.5}
.luno-notification-center__tabs{background:var(--color-hover-bg);border-radius:9px;display:inline-flex;gap:2px;margin:0 14px var(--space-2);padding:2px}
.luno-notification-center__tabs button{align-items:center;background:none;border:0;border-radius:7px;color:var(--color-text-muted);cursor:pointer;display:inline-flex;font:inherit;font-size:var(--font-size-label);font-weight:var(--font-weight-medium);gap:6px;height:26px;padding:0 10px;transition:background-color var(--motion-color) var(--motion-ease-standard),color var(--motion-color) var(--motion-ease-standard)}
.luno-notification-center__tabs button[aria-selected="true"]{background:var(--color-surface-card);box-shadow:var(--shadow-control),inset 0 0 0 .8px var(--color-border-default);color:var(--color-text-primary)}
.luno-notification-center__tabs button:focus-visible{outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}
.luno-notification-center__count{background:var(--color-surface-card);border-radius:var(--r-pill);box-shadow:inset 0 0 0 .8px var(--color-border-default);font-size:10.5px;min-width:18px;padding:1px 5px;text-align:center}
.luno-notification-center__list{display:grid;max-height:380px;overflow-y:auto;padding:0 6px 6px}
.luno-notification-center__group-label{color:var(--color-text-hint);font-size:var(--font-size-caption);font-weight:var(--font-weight-medium);letter-spacing:.025em;margin:0;padding:6px 8px 4px;text-transform:uppercase}
.luno-notification-center .luno-notification-row__title{white-space:normal}.luno-notification-center__text{display:grid;gap:2px;min-width:0}.luno-notification-center__text>strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.luno-notification-center__body{color:var(--color-text-secondary);font-size:var(--font-size-caption);font-weight:var(--font-weight-regular);line-height:var(--line-height-default)}
.luno-notification-center__empty{align-items:center;color:var(--color-text-muted);display:grid;gap:4px;justify-items:center;padding:36px 16px;text-align:center;animation:luno-fade-in var(--motion-slow) var(--motion-ease-out)}
.luno-notification-center__empty>span:first-child{align-items:center;background:var(--color-hover-bg);border-radius:var(--r-pill);display:flex;height:40px;justify-content:center;margin-bottom:6px;width:40px}
.luno-notification-center__empty strong{color:var(--color-text-primary)}
.luno-notification-center__foot{border-top:1px solid var(--color-border-default);padding:8px 14px 12px;text-align:center}
@media (prefers-reduced-motion:reduce){.luno-filter-bar__search,.luno-filter-bar__button,.luno-filter-bar__clear,.luno-notification-bell,.luno-notification-center,.luno-notification-center__tabs button{transition:none !important}.luno-filter-bar__count,.luno-notification-bell__icon,.luno-notification-bell__count,.luno-notification-center__empty{animation:none !important}}
.luno-notification-center .luno-notification-row{background:transparent;border-color:transparent;box-shadow:none}
.luno-notification-center button.luno-notification-row:hover{background:var(--color-hover-bg)}

/* Account pages: profile (variant C) and settings (variant B), ADR 0009. */
.luno-account-card{background:var(--color-surface-secondary);border-radius:var(--r-surface);box-shadow:inset 0 0 0 .8px var(--color-border-default);overflow:hidden}
.luno-account-card__head{align-items:center;background-image:repeating-linear-gradient(135deg,var(--color-surface-accent) 0 .8px,transparent .8px 6px);color:var(--color-text-primary);display:flex;gap:var(--space-2);min-height:38px;padding:0 14px}
.luno-account-card__head h2{flex:1;font-size:var(--font-size-body);font-weight:var(--font-weight-medium);margin:0}
.luno-account-card__head .luno-icon{color:var(--color-text-muted)}
.luno-account-card__body{background:var(--color-surface-card);border-radius:9px;box-shadow:inset 0 0 0 .8px var(--color-border-default),var(--shadow-card);display:grid;gap:var(--space-2);margin:0 4px 4px;padding:var(--space-4)}
.luno-profile-page{align-items:start;display:grid;gap:var(--space-4);grid-template-columns:300px minmax(0,1fr)}
.luno-profile-page__identity{align-items:center;background:var(--color-surface-card);border-radius:var(--r-surface);box-shadow:inset 0 0 0 .8px var(--color-border-default),var(--shadow-card);display:grid;gap:var(--space-1);justify-items:center;padding:var(--space-6) var(--space-4);position:sticky;text-align:center;top:calc(var(--shell-topbar) + var(--space-4))}
.luno-profile-page__identity>strong{font-size:var(--font-size-h3);font-weight:var(--font-weight-semibold);margin-top:var(--space-2)}
.luno-profile-page__identity>span{color:var(--color-text-muted);font-size:var(--font-size-label)}
.luno-profile-page__avatar{align-items:center;background:var(--color-avatar-from);border-radius:var(--r-pill);box-shadow:inset 0 0 0 .8px var(--color-border-default);color:var(--color-avatar-text);display:flex;font-size:18px;font-weight:var(--font-weight-semibold);height:64px;justify-content:center;width:64px}
.luno-profile-page__meta{border-top:1px solid var(--color-border-default);display:grid;font-size:var(--font-size-label);gap:6px var(--space-3);grid-template-columns:auto 1fr;margin:var(--space-3) 0 0;padding-top:var(--space-3);text-align:left;width:100%}
.luno-profile-page__meta dt{color:var(--color-text-muted)}
.luno-profile-page__meta dd{font-weight:var(--font-weight-medium);margin:0;text-align:right}
.luno-profile-page__main{display:grid;gap:var(--space-4);min-width:0}
.luno-profile-page__fields{display:grid;gap:14px var(--space-4);grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.luno-profile-field{display:grid;gap:6px;min-width:0}
.luno-profile-field label{color:var(--color-text-secondary);font-size:var(--font-size-label);font-weight:var(--font-weight-medium)}
.luno-profile-field__control{align-items:center;background:var(--color-input-bg);border-radius:var(--r-control);box-shadow:inset 0 0 0 1px var(--color-control-border);display:flex;gap:var(--space-2);height:var(--control-default);padding:0 10px;transition:box-shadow var(--motion-color) var(--motion-ease-standard)}
.luno-profile-field__control:focus-within{box-shadow:inset 0 0 0 1px var(--color-control-border-selected),0 0 0 3px var(--color-selected-bg)}
.luno-profile-field__control input{background:none;border:0;color:var(--color-text-primary);flex:1;font:inherit;font-size:var(--font-size-body);min-width:0;outline:0;text-overflow:ellipsis;width:100%}
.luno-profile-field__control.is-readonly{background:var(--color-surface-secondary);box-shadow:inset 0 0 0 .8px var(--color-border-default)}
.luno-profile-field__control.is-readonly input{color:var(--color-text-secondary)}
.luno-profile-field__control .luno-icon{color:var(--color-text-muted)}
.luno-profile-page__note{align-items:center;color:var(--color-text-muted);display:flex;font-size:var(--font-size-label);gap:6px;margin:var(--space-1) 0 0}
.luno-profile-page__sessions{display:grid;gap:6px;list-style:none;margin:0;padding:0}
.luno-profile-page__sessions li{align-items:center;background:var(--color-surface-secondary);border-radius:var(--r-control);box-shadow:inset 0 0 0 .8px var(--color-border-default);color:var(--color-text-muted);display:flex;font-size:var(--font-size-label);gap:10px;padding:var(--space-2) var(--space-3)}
.luno-profile-page__sessions li>span:nth-child(2){display:grid;flex:1}
.luno-profile-page__sessions strong{color:var(--color-text-primary);font-size:var(--font-size-body);font-weight:var(--font-weight-medium)}
.luno-profile-page__live{background:var(--color-action-primary);border-radius:var(--r-pill);height:8px;width:8px}
.luno-profile-page__all{justify-self:start;margin-top:var(--space-2)}
.luno-setting-row{align-items:center;border-top:1px solid var(--color-border-default);display:grid;gap:var(--space-2) var(--space-6);grid-template-columns:minmax(0,1fr) auto;padding:14px 0}
.luno-account-card__body>.luno-setting-row:first-child,.luno-account-card__body>.luno-settings-section__description+.luno-setting-row{border-top:0;padding-top:0}
.luno-setting-row__copy{display:grid;gap:2px;min-width:0}
.luno-setting-row__copy strong{font-size:var(--font-size-body);font-weight:var(--font-weight-medium)}
.luno-setting-row__copy span{color:var(--color-text-muted);font-size:var(--font-size-label)}
.luno-setting-row__control{align-items:center;display:flex;gap:var(--space-2);justify-self:end}
.luno-setting-row__extra{display:grid;gap:var(--space-2);grid-column:1/-1}
.luno-setting-row--stack{grid-template-columns:1fr}
.luno-setting-row--stack .luno-setting-row__control{justify-self:start}
.luno-settings-section__scope{border-radius:var(--r-pill);box-shadow:inset 0 0 0 .8px var(--color-border-default);color:var(--color-text-muted);font-size:var(--font-size-caption);font-weight:var(--font-weight-medium);letter-spacing:.025em;padding:2px 8px;text-transform:uppercase}
.luno-settings-section__scope--organization{background:var(--tone-info-bg);box-shadow:inset 0 0 0 .8px var(--tone-info-bd);color:var(--tone-info-tx)}
.luno-settings-section__description{color:var(--color-text-muted);font-size:var(--font-size-label);margin:0 0 var(--space-2)}
.luno-settings-section__savebar{align-items:center;animation:luno-rise-in var(--motion-slow) var(--motion-ease) both;border-top:1px solid var(--color-border-default);display:flex;gap:var(--space-2);justify-content:flex-end;margin-top:var(--space-2);padding-top:var(--space-3)}
.luno-settings-section__savebar span{color:var(--color-text-muted);flex:1;font-size:var(--font-size-label)}
.luno-settings-page{display:grid;gap:var(--space-4)}
.luno-settings-page__head h1{font-size:var(--font-size-h2);font-weight:var(--font-weight-semibold);margin:0}
.luno-settings-page__head p{color:var(--color-text-muted);margin:var(--space-1) 0 0}
.luno-settings-page__layout{align-items:start;display:grid;gap:var(--space-6);grid-template-columns:minmax(0,1fr) 180px}
.luno-settings-page__sections{display:grid;gap:var(--space-4)}
.luno-settings-page__sections>section{scroll-margin-top:calc(var(--shell-topbar) + var(--space-4))}
.luno-settings-page__rail{border-left:1px solid var(--color-border-default);display:grid;gap:2px;padding-left:var(--space-3);position:sticky;top:calc(var(--shell-topbar) + var(--space-4))}
.luno-settings-page__rail p{color:var(--color-text-hint);font-size:var(--font-size-caption);font-weight:var(--font-weight-medium);letter-spacing:.025em;margin:0 0 6px;text-transform:uppercase}
.luno-settings-page__rail a{border-radius:var(--r-tight);color:var(--color-text-muted);font-size:var(--font-size-body);padding:4px 0;text-decoration:none;transition:color var(--motion-color) var(--motion-ease-standard)}
.luno-settings-page__rail a:is(:hover,:focus-visible){color:var(--color-text-primary);text-decoration:underline;text-underline-offset:3px}
.luno-settings-page__rail a:focus-visible{outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}
.luno-segmented{background:var(--color-hover-bg);border-radius:9px;display:inline-flex;gap:2px;padding:2px}
.luno-segmented button{background:none;border:0;border-radius:7px;color:var(--color-text-muted);cursor:pointer;font:inherit;font-size:var(--font-size-label);font-weight:var(--font-weight-medium);height:26px;padding:0 10px;transition:background-color var(--motion-color) var(--motion-ease-standard),color var(--motion-color) var(--motion-ease-standard)}
.luno-segmented button[aria-checked="true"]{background:var(--color-surface-card);box-shadow:var(--shadow-control),inset 0 0 0 .8px var(--color-border-default);color:var(--color-text-primary)}
.luno-segmented button:focus-visible{outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}
.luno-compact-switch{background:var(--color-control-track);border:0;border-radius:var(--r-pill);cursor:pointer;height:20px;padding:0;position:relative;transition:background-color var(--motion-slow) var(--motion-ease-standard);width:34px}
.luno-compact-switch span{background:var(--color-surface-card);border-radius:var(--r-pill);box-shadow:var(--shadow-control);height:16px;left:2px;position:absolute;top:2px;transition:transform var(--motion-slow) var(--motion-ease);width:16px}
.luno-compact-switch[aria-checked="true"]{background:var(--color-action-primary)}
.luno-compact-switch[aria-checked="true"] span{background:var(--color-action-primary-foreground);transform:translateX(14px)}
.luno-compact-switch:disabled{cursor:not-allowed;opacity:.45}
.luno-compact-switch:focus-visible{outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}
.luno-notification-preferences{display:grid;gap:var(--space-3)}
.luno-notification-preferences__matrix{border-collapse:collapse;width:100%}
.luno-notification-preferences__matrix th,.luno-notification-preferences__matrix td{border-top:1px solid var(--color-border-default);font-size:var(--font-size-body);padding:10px var(--space-2) 10px 0;text-align:left}
.luno-notification-preferences__matrix thead th{border-top:0;color:var(--color-text-muted);font-size:var(--font-size-label);font-weight:var(--font-weight-medium)}
.luno-notification-preferences__matrix tbody th{font-weight:var(--font-weight-medium)}
.luno-notification-preferences__matrix small{align-items:center;color:var(--color-text-muted);display:flex;font-size:var(--font-size-caption);font-weight:var(--font-weight-regular);gap:4px;margin-top:2px}
.luno-danger-zone{align-items:center;background:var(--tone-danger-bg);border-radius:var(--r-control);box-shadow:inset 0 0 0 .8px var(--tone-danger-bd);display:grid;gap:var(--space-3);grid-template-columns:minmax(0,1fr) auto;padding:14px}
.luno-danger-zone__confirm{display:grid;gap:4px;grid-column:1/-1}
.luno-danger-zone__confirm span{color:var(--color-text-secondary);font-size:var(--font-size-label)}
.luno-danger-zone__confirm input{background:var(--color-input-bg);border:0;border-radius:var(--r-control);box-shadow:inset 0 0 0 1px var(--color-control-border);color:var(--color-text-primary);font:inherit;height:var(--control-default);max-width:320px;padding:0 10px}
.luno-danger-zone__confirm input:focus-visible{outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}
.luno-danger-zone .luno-button{grid-column:2;grid-row:1}
@media (max-width:900px){.luno-profile-page,.luno-settings-page__layout,.luno-profile-page__fields{grid-template-columns:1fr}.luno-profile-page__identity,.luno-settings-page__rail{position:static}}
@media (prefers-reduced-motion:reduce){.luno-profile-field__control,.luno-settings-page__rail a,.luno-segmented button,.luno-compact-switch,.luno-compact-switch span{transition:none !important}.luno-settings-section__savebar{animation:none !important}}
/* Appearance settings (LunoAppearanceSettings): a product applies the person's choices on <html>. Compact density uses the compact control size and keeps the dense hit target; reduce motion matches the system setting. */
:root[data-luno-density="compact"]{--control-default:var(--control-compact)}
:root[data-luno-density="compact"] .luno-data-grid th,:root[data-luno-density="compact"] .luno-data-grid td{padding-block:var(--space-1)}
:root[data-luno-motion="reduce"] *,:root[data-luno-motion="reduce"] *::before,:root[data-luno-motion="reduce"] *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}


/* Post-0.3 component families live here so their contracts remain reviewable by family. */
.luno-accordion__trigger[data-panel-open] .luno-accordion__chevron{transform:rotate(90deg)}

.luno-popover__positioner{z-index:var(--z-popover)}.luno-popover{background:var(--color-surface-elevated);border:1px solid var(--color-control-border);border-radius:var(--r-lg);color:var(--color-text-primary);max-height:min(70vh,520px);max-width:min(calc(100vw - var(--space-4)),420px);min-width:280px;overflow:auto;transform-origin:var(--transform-origin)}.luno-popover__header{align-items:flex-start;border-bottom:1px solid var(--color-border-subtle);display:flex;gap:var(--space-4);justify-content:space-between;padding:var(--space-4)}.luno-popover__title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);margin:0}.luno-popover__description{color:var(--color-text-secondary);font-size:var(--font-size-xs);margin:var(--space-1) 0 0}.luno-popover__close{align-items:center;background:transparent;border:1px solid transparent;border-radius:var(--r-md);color:var(--color-text-secondary);cursor:pointer;display:inline-flex;height:36px;justify-content:center;width:36px}.luno-popover__close:hover{background:var(--color-hover-bg);color:var(--color-text-primary)}.luno-popover__close:focus-visible{outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}.luno-popover__body{padding:var(--space-4)}

.luno-command__backdrop{background:var(--color-overlay-backdrop);inset:0;position:fixed;transition:opacity var(--motion-slow) var(--motion-ease-standard);z-index:var(--z-modal)}.luno-command__viewport{align-items:flex-start;display:flex;inset:0;justify-content:center;padding:12vh var(--space-4) var(--space-4);position:fixed;z-index:var(--z-modal)}.luno-command{background:var(--color-surface-elevated);border:1px solid var(--color-control-border);border-radius:var(--r-xl);max-height:min(72vh,620px);max-width:640px;overflow:hidden;width:100%}.luno-command__search{align-items:center;border-bottom:1px solid var(--color-border-subtle);display:flex;gap:var(--space-3);padding:var(--space-3) var(--space-4)}.luno-command__search>svg{color:var(--color-text-secondary);flex:none}.luno-command__search input{background:transparent;border:0;color:var(--color-text-primary);font:inherit;min-height:44px;outline:0;width:100%}.luno-command__close{align-items:center;background:transparent;border:1px solid transparent;border-radius:var(--r-md);color:var(--color-text-secondary);display:flex;height:36px;justify-content:center;width:36px}.luno-command__close:focus-visible{outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}.luno-command__results{max-height:52vh;overflow:auto;padding:var(--space-2)}.luno-command__group h3{color:var(--color-text-muted);font-size:var(--font-size-xs);margin:var(--space-3) var(--space-2) var(--space-1);text-transform:uppercase}.luno-command__item{align-items:center;background:transparent;border:0;border-radius:var(--r-md);color:var(--color-text-primary);cursor:pointer;display:flex;gap:var(--space-3);min-height:48px;padding:var(--space-2) var(--space-3);text-align:left;width:100%}.luno-command__item>span{display:grid;gap:2px}.luno-command__item small{color:var(--color-text-secondary)}.luno-command__item[aria-selected="true"]{background:var(--color-selected-bg)}.luno-command__item:focus-visible{outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}.luno-command__item:disabled{cursor:not-allowed;opacity:.5}.luno-command__empty{color:var(--color-text-secondary);padding:var(--space-6);text-align:center}

.luno-date-picker{display:grid;gap:var(--space-1)}.luno-date-picker>label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.luno-date-picker__control{align-items:center;background:var(--color-input-bg);border:1px solid var(--color-control-border);border-radius:var(--r-md);display:flex;min-height:var(--control-default)}.luno-date-picker__control:focus-within{border-color:var(--color-focus);outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}.luno-date-picker__control input{background:transparent;border:0;color:var(--color-text-primary);font:inherit;min-height:42px;outline:0;padding:0 var(--space-3);width:100%}.luno-date-picker__control>button{align-items:center;background:transparent;border:0;border-left:1px solid var(--color-border-subtle);color:var(--color-text-secondary);display:flex;height:42px;justify-content:center;width:44px}.luno-date-picker__hint,.luno-date-picker__error{font-size:var(--font-size-xs);margin:0}.luno-date-picker__hint{color:var(--color-text-secondary)}.luno-date-picker__error{color:var(--tone-danger-tx)}.luno-date-picker.is-invalid .luno-date-picker__control{border-color:var(--color-control-invalid)}.luno-date-picker__calendar{display:grid;gap:var(--space-3);width:294px}.luno-date-picker__month{align-items:center;display:flex;gap:var(--space-2);justify-content:space-between;text-transform:capitalize}.luno-date-picker__month button{align-items:center;background:transparent;border:1px solid transparent;border-radius:var(--r-md);color:var(--color-text-primary);display:flex;height:40px;justify-content:center;width:40px}.luno-date-picker__month button:hover{background:var(--color-hover-bg)}.luno-date-picker__month button:focus-visible{outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}.luno-date-picker__grid{display:grid;gap:2px}.luno-date-picker__weekdays,.luno-date-picker__week{display:grid;grid-template-columns:repeat(7,1fr)}.luno-date-picker__weekdays span{color:var(--color-text-muted);font-size:var(--font-size-xs);text-align:center}.luno-date-picker__blank{min-height:40px}.luno-date-picker__grid button{align-items:center;background:transparent;border:1px solid transparent;border-radius:var(--r-md);color:var(--color-text-primary);display:flex;height:40px;justify-content:center}.luno-date-picker__grid button:hover:not(:disabled){background:var(--color-hover-bg)}.luno-date-picker__grid button[aria-selected="true"]{background:var(--color-action-primary);color:var(--color-action-primary-foreground)}.luno-date-picker__grid button:focus-visible{outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}.luno-date-picker__grid button:disabled{color:var(--color-text-muted);cursor:not-allowed;opacity:.5}

@media(prefers-reduced-motion:reduce){.luno-command__backdrop{transition:none!important}}

.luno-tree{display:grid;gap:2px}.luno-tree__branch{display:grid}.luno-tree [role="group"]{display:grid;margin-left:var(--space-5)}.luno-tree__item{align-items:center;border-radius:var(--r-md);color:var(--color-text-primary);cursor:pointer;display:flex;gap:var(--space-2);min-height:40px;padding:var(--space-1) var(--space-2)}.luno-tree__item:hover{background:var(--color-hover-bg)}.luno-tree__item[aria-selected="true"]{background:var(--color-selected-bg);font-weight:var(--font-weight-semibold)}.luno-tree__item[aria-disabled="true"]{color:var(--color-text-muted);cursor:not-allowed}.luno-tree__item:focus-visible{outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}.luno-tree__toggle{align-items:center;background:transparent;border:0;color:inherit;display:flex;height:32px;justify-content:center;padding:0;width:32px}.luno-tree__toggle:disabled{opacity:.35}.luno-tree__item[aria-expanded="true"]>.luno-tree__toggle svg{transform:rotate(90deg)}

.luno-chart-adapter{--luno-chart-series-1:var(--color-data-series-1);--luno-chart-series-2:var(--color-data-series-2);--luno-chart-series-3:var(--color-data-series-3);--luno-chart-series-4:var(--color-data-series-4);--luno-chart-series-5:var(--color-data-series-5);--luno-chart-series-6:var(--color-data-series-6);background:var(--color-surface-card);border:1px solid var(--color-border-subtle);border-radius:var(--r-lg);display:grid;gap:var(--space-4);margin:0;padding:var(--space-5)}.luno-chart-adapter figcaption h3{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);margin:0}.luno-chart-adapter figcaption p{color:var(--color-text-secondary);font-size:var(--font-size-xs);margin:var(--space-1) 0 0}.luno-chart-adapter__legend{display:flex;flex-wrap:wrap;gap:var(--space-4);list-style:none;margin:0;padding:0}.luno-chart-adapter__legend li{align-items:center;display:flex;font-size:var(--font-size-xs);gap:var(--space-2)}.luno-chart-adapter__legend li>span{border-radius:var(--r-full);height:10px;width:10px}.luno-chart-adapter__plot{align-items:center;color:var(--color-text-secondary);display:flex;justify-content:center;min-height:220px;overflow:hidden}.luno-chart-adapter__plot>svg{height:auto;max-height:280px;width:100%}.luno-chart-adapter__state{align-items:center;background:var(--color-surface-secondary);border-radius:var(--r-md);color:var(--color-text-secondary);display:flex;justify-content:center;min-height:180px;padding:var(--space-6);text-align:center}.luno-chart-adapter__state.is-error{background:var(--tone-danger-bg);color:var(--tone-danger-tx)}.luno-chart-adapter__data{border-top:1px solid var(--color-border-subtle);padding-top:var(--space-3)}.luno-chart-adapter__data summary{color:var(--color-text-accent);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.luno-chart-adapter__table{margin-top:var(--space-3);overflow:auto}.luno-chart-adapter__table table{border-collapse:collapse;width:100%}.luno-chart-adapter__table caption{font-size:var(--font-size-xs);text-align:left}.luno-chart-adapter__table th,.luno-chart-adapter__table td{border-bottom:1px solid var(--color-border-subtle);font-size:var(--font-size-sm);padding:var(--space-2);text-align:left}.luno-chart-adapter__table th{font-weight:var(--font-weight-semibold)}

/* Estados vacíos, spinner, progreso y stepper — familia Estado ampliada (owner integration 2026-08-27). */
.luno-empty-state{display:grid;justify-items:center;gap:var(--space-2);padding:var(--space-6);border:1px dashed var(--color-border-default);border-radius:var(--r-lg);background:var(--color-surface-card);text-align:center}.luno-empty-state__icon{display:grid;place-items:center;width:36px;height:36px;border-radius:var(--r-lg);background:var(--color-surface-accent);color:var(--color-text-accent)}.luno-empty-state__title{margin:0;color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.luno-empty-state__description{margin:0;max-width:36ch;color:var(--color-text-secondary);font-size:var(--font-size-xs);line-height:var(--line-height-default)}.luno-empty-state__actions{display:flex;gap:var(--space-2);margin-top:var(--space-2)}.luno-empty-state--compact{grid-auto-flow:column;justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-4);text-align:left}.luno-empty-state--compact .luno-empty-state__icon{width:28px;height:28px;border-radius:var(--r-md)}.luno-empty-state--compact .luno-empty-state__actions{margin-top:0}.luno-empty-state--error{border-style:solid;border-color:var(--tone-danger-bd);background:var(--tone-danger-bg)}.luno-empty-state--error .luno-empty-state__icon{background:transparent;border:1px solid currentColor;border-radius:var(--r-full);color:var(--tone-danger-tx)}.luno-empty-state--error .luno-empty-state__title{color:var(--tone-danger-tx)}.luno-empty-state--error .luno-empty-state__description{color:var(--tone-danger-tx)}
.luno-spinner{position:relative;display:inline-grid;place-items:center;color:var(--color-action-primary)}.luno-spinner__ring{width:100%;height:100%;border:2px solid color-mix(in srgb,currentColor 22%,transparent);border-top-color:currentColor;border-radius:var(--r-full);animation:luno-spin var(--motion-spin) var(--motion-ease-linear) infinite}.luno-spinner--page .luno-spinner__ring{border-width:3px}@keyframes luno-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.luno-spinner__ring{animation:luno-spinner-pulse var(--motion-pulse) var(--motion-ease-in-out) infinite;border-top-color:color-mix(in srgb,currentColor 22%,transparent)}@keyframes luno-spinner-pulse{50%{opacity:.35}}}
.luno-progress{display:grid;gap:var(--space-2)}.luno-progress__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3)}.luno-progress__label{color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.luno-progress__value{color:var(--color-text-primary);font-family:var(--font-mono);font-size:var(--font-size-md);font-variant-numeric:tabular-nums;font-weight:var(--font-weight-semibold);line-height:1}.luno-progress__value small{margin-left:1px;color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.luno-progress__value--pending{color:var(--color-text-muted);}.luno-progress__track{position:relative;height:11px;overflow:hidden;border:1px solid var(--color-border-subtle);border-radius:var(--r-full);background:var(--color-surface-secondary)}.luno-progress__tick{position:absolute;top:1px;bottom:1px;width:1px;background:color-mix(in srgb,var(--color-border-default) 70%,transparent)}.luno-progress__fill{position:absolute;inset:0 auto 0 0;z-index:1;width:0;border-radius:var(--r-full);background:linear-gradient(90deg,color-mix(in srgb,var(--color-action-primary) 55%,var(--color-brand-navy)) 0%,var(--color-action-primary) 78%,color-mix(in srgb,var(--color-action-primary) 78%,var(--color-action-primary-foreground)) 100%);transition:width var(--motion-slow) var(--motion-ease)}.luno-progress--indeterminate .luno-progress__fill{width:32%;animation:luno-progress-slide var(--motion-loop) var(--motion-ease-in-out) infinite}@keyframes luno-progress-slide{from{transform:translateX(-120%)}to{transform:translateX(430%)}}@media (prefers-reduced-motion:reduce){.luno-progress--indeterminate .luno-progress__fill{animation:none;width:100%;opacity:.4}}
.luno-stepper{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:0;padding:0;list-style:none}.luno-stepper__step{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-subtle);border-radius:var(--r-lg);background:var(--color-surface-card)}.luno-stepper__index{display:grid;flex:none;place-items:center;width:22px;height:22px;border-radius:var(--r-full);background:var(--color-surface-secondary);color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.luno-stepper__copy{display:grid}.luno-stepper__label{color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.luno-stepper__description{color:var(--color-text-muted);font-size:var(--font-size-xs)}.luno-stepper__step.is-current{border-color:var(--color-border-hover);background:var(--color-surface-accent)}.luno-stepper__step.is-current .luno-stepper__index{background:var(--color-action-primary);color:var(--color-action-primary-foreground)}.luno-stepper__step.is-current .luno-stepper__label{color:var(--color-text-primary)}.luno-stepper__step.is-done .luno-stepper__index{background:var(--tone-success-bg);color:var(--tone-success-tx)}

.luno-flow-list{--luno-flow-marker-size:32px;color:var(--color-text-primary);display:grid;gap:0;max-width:760px;width:100%}
.luno-flow-list__terminal{align-items:center;display:grid;gap:var(--space-3);grid-template-columns:var(--luno-flow-marker-size) minmax(0,1fr);min-height:44px;padding-inline:var(--space-4)}
.luno-flow-list__terminal strong{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase}
.luno-flow-list__terminal-marker{background:var(--color-control-indicator);border:4px solid var(--color-surface-card);border-radius:var(--r-full);box-shadow:0 0 0 1px var(--color-border-default);height:12px;justify-self:center;width:12px;z-index:1}
.luno-flow-list__terminal--start{padding-bottom:var(--space-2)}
.luno-flow-list__terminal--end{padding-top:var(--space-2)}
.luno-flow-list__stages{display:grid;gap:var(--space-3);list-style:none;margin:0;padding:0;position:relative}
.luno-flow-list__stages::before{background:var(--color-border-default);bottom:calc(var(--space-3) * -1);content:"";left:calc(var(--space-4) + var(--luno-flow-marker-size) / 2);position:absolute;top:calc(var(--space-3) * -1);width:1px}
.luno-flow-list__stage{background:var(--color-surface-card);border:1px solid var(--color-border-subtle);border-radius:var(--r-lg);display:grid;grid-template-columns:minmax(0,1fr) auto;min-width:0;position:relative;transition:background var(--motion-color) var(--motion-ease-standard),border-color var(--motion-color) var(--motion-ease-standard),box-shadow var(--motion-color) var(--motion-ease-standard)}
.luno-flow-list__stage:hover{border-color:var(--color-border-hover)}
.luno-flow-list__stage.is-selected{background:var(--color-surface-accent);border-color:var(--color-control-border-selected);box-shadow:inset 3px 0 0 var(--color-control-border-selected)}
.luno-flow-list__select{align-items:start;background:transparent;border:0;color:inherit;display:grid;font:inherit;gap:var(--space-3);grid-template-columns:var(--luno-flow-marker-size) minmax(0,1fr);min-height:72px;min-width:0;padding:var(--space-4);text-align:left;width:100%}
button.luno-flow-list__select{cursor:pointer}
button.luno-flow-list__select:focus-visible{border-radius:var(--r-lg);outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}
.luno-flow-list__marker{align-items:center;background:var(--color-surface-secondary);border:1px solid var(--color-border-default);border-radius:var(--r-full);color:var(--color-text-secondary);display:inline-flex;font-family:var(--font-mono);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);height:var(--luno-flow-marker-size);justify-content:center;position:relative;width:var(--luno-flow-marker-size);z-index:1}
.luno-flow-list__marker.is-complete{background:var(--tone-success-bg);border-color:var(--tone-success-bd);color:var(--tone-success-tx)}
.luno-flow-list__marker.is-warning{background:var(--tone-warning-bg);border-color:var(--tone-warning-bd);color:var(--tone-warning-tx)}
.luno-flow-list__marker.is-error{background:var(--tone-danger-bg);border-color:var(--tone-danger-bd);color:var(--tone-danger-tx)}
.luno-flow-list__copy{display:grid;gap:var(--space-2);min-width:0}
.luno-flow-list__heading{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-2);justify-content:space-between}
.luno-flow-list__heading>strong{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);line-height:var(--line-height-default)}
.luno-flow-list__type{align-items:center;color:var(--color-text-secondary);display:flex;font-size:var(--font-size-xs);gap:var(--space-2)}
.luno-flow-list__metadata{display:flex;flex-wrap:wrap;gap:var(--space-2)}
.luno-flow-list__metadata-item{background:var(--color-surface-secondary);border:1px solid var(--color-border-subtle);border-radius:var(--r-full);color:var(--color-text-secondary);font-size:var(--font-size-xs);line-height:var(--line-height-compact);padding:var(--space-1) var(--space-2)}
.luno-flow-list__metadata-item .is-mono{font-family:var(--font-mono)}
.luno-flow-list__tools{align-items:center;display:flex;gap:var(--space-1);padding:var(--space-3) var(--space-3) var(--space-3) 0}
.luno-flow-list__drag-handle,.luno-flow-list__actions{align-items:center;display:flex;min-height:44px}
.luno-flow-list__drag-handle button,.luno-flow-list__actions button{min-height:40px;min-width:40px}

@media (max-width:520px){
  .luno-flow-list__stage{grid-template-columns:minmax(0,1fr)}
  .luno-flow-list__select{padding:var(--space-3)}
  .luno-flow-list__heading{align-items:flex-start;justify-content:flex-start}
  .luno-flow-list__heading>strong{flex-basis:100%;overflow-wrap:anywhere}
  .luno-flow-list__tools{border-top:1px solid var(--color-border-subtle);justify-content:flex-end;padding:var(--space-2) var(--space-3)}
  .luno-flow-list__stages::before{left:calc(var(--space-3) + var(--luno-flow-marker-size) / 2)}
  .luno-flow-list__terminal{padding-inline:var(--space-3)}
}

@media (prefers-reduced-motion:reduce){.luno-flow-list__stage{transition:none!important}}

/* Tags, chips y counts — extensión semántica del Badge. */
.luno-tag{display:inline-flex;align-items:center;gap:var(--space-1);height:22px;padding:0 var(--space-2);border:1px solid var(--tone-neutral-bd);border-radius:var(--r-md);background:var(--tone-neutral-bg);color:var(--tone-neutral-tx);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);line-height:1}.luno-tag--mono{font-family:var(--font-mono);font-weight:var(--font-weight-medium)}.luno-tag--success{border-color:var(--tone-success-bd);background:var(--tone-success-bg);color:var(--tone-success-tx)}.luno-tag--warning{border-color:var(--tone-warning-bd);background:var(--tone-warning-bg);color:var(--tone-warning-tx)}
.luno-chip{display:inline-flex;align-items:center;gap:var(--space-1);height:26px;padding:0 var(--space-1) 0 var(--space-3);border:1px solid var(--color-border-hover);border-radius:var(--r-full);background:var(--color-surface-accent);color:var(--color-text-accent);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.luno-chip.is-disabled{opacity:.5}.luno-chip__remove{display:grid;place-items:center;width:18px;height:18px;padding:0;border:0;border-radius:var(--r-full);background:transparent;color:inherit;cursor:pointer}.luno-chip__remove:hover:not(:disabled){color:var(--tone-danger-tx)}.luno-chip__remove:focus-visible{outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}.luno-chip__remove:disabled{cursor:not-allowed}
.luno-count{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 var(--space-1);border-radius:var(--r-full);background:var(--color-surface-secondary);color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);line-height:1}.luno-count--active{background:var(--color-action-primary);color:var(--color-action-primary-foreground)}.luno-count--alert{background:var(--tone-danger-tx);color:var(--tone-danger-bg)}

/* StatCard y QuickAction — familia Datos. */
.luno-stat-card{display:grid;gap:var(--space-1);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border-subtle);border-radius:var(--r-lg);background:var(--color-surface-card)}.luno-stat-card__label{margin:0;color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-transform:uppercase}.luno-stat-card__value{margin:0;color:var(--color-text-primary);font-family:var(--font-mono);font-size:var(--font-size-2xl);font-variant-numeric:tabular-nums;line-height:var(--line-height-compact)}.luno-stat-card__delta{margin:0;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.luno-stat-card__delta--success{color:var(--tone-success-tx)}.luno-stat-card__delta--danger{color:var(--tone-danger-tx)}.luno-stat-card__meta{margin:0;color:var(--color-text-secondary);font-size:var(--font-size-xs)}
.luno-quick-action{display:grid;justify-items:start;gap:var(--space-2);min-height:120px;padding:var(--space-4);border:1px solid var(--color-border-subtle);border-radius:var(--r-lg);background:var(--color-surface-card);color:var(--color-text-primary);font:inherit;text-align:left;cursor:pointer;transition:border-color var(--motion-color) var(--motion-ease-standard),transform var(--motion-fast) var(--motion-ease-out)}.luno-quick-action:hover:not(:disabled){border-color:var(--color-border-hover);transform:translateY(-1px)}.luno-quick-action:focus-visible{outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}.luno-quick-action:disabled{cursor:not-allowed;opacity:.55}.luno-quick-action__icon{display:grid;place-items:center;width:36px;height:36px;border-radius:var(--r-lg);background:var(--color-surface-accent);color:var(--color-text-accent)}.luno-quick-action__title{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.luno-quick-action__description{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.luno-quick-action__cta{display:inline-flex;align-items:center;gap:var(--space-1);margin-top:auto;color:var(--color-text-accent);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}

/* Banners, ribbon y filas de notificación — familia Comunicaciones ampliada. */
.luno-system-banner{display:flex;align-items:center;gap:var(--space-2);min-height:40px;padding:var(--space-1) var(--space-5);border-bottom:1px solid var(--tone-info-bd);background:var(--tone-info-bg);color:var(--tone-info-tx);font-size:var(--font-size-sm)}.luno-system-banner--warning{border-color:var(--tone-warning-bd);background:var(--tone-warning-bg);color:var(--tone-warning-tx)}.luno-system-banner--neutral{border-color:var(--tone-neutral-bd);background:var(--tone-neutral-bg);color:var(--tone-neutral-tx)}.luno-system-banner__copy{min-width:0}.luno-system-banner__action{margin-left:auto;flex:none;font-weight:var(--font-weight-medium)}.luno-system-banner__action a,.luno-system-banner__action button{display:inline-flex;align-items:center;min-height:26px;padding:0 var(--space-2);border:1px solid color-mix(in srgb,currentColor 32%,transparent);border-radius:var(--r-md);background:transparent;color:inherit;font:inherit;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-decoration:none;cursor:pointer}.luno-system-banner__action a:hover,.luno-system-banner__action button:hover{background:color-mix(in srgb,currentColor 10%,transparent)}.luno-system-banner__action a:focus-visible,.luno-system-banner__action button:focus-visible{outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}.luno-system-banner__dismiss{display:grid;flex:none;place-items:center;width:26px;height:26px;padding:0;border:0;border-radius:var(--r-full);background:transparent;color:inherit;cursor:pointer}.luno-system-banner__dismiss:hover{background:color-mix(in srgb,currentColor 10%,transparent)}.luno-system-banner__dismiss:focus-visible{outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}.luno-system-banner__action:not(:last-child)+.luno-system-banner__dismiss{margin-left:0}.luno-system-banner:not(:has(.luno-system-banner__action)) .luno-system-banner__dismiss{margin-left:auto}
.luno-ribbon{display:inline-flex;align-items:center;height:20px;padding:0 var(--space-2);border:1px solid var(--color-border-hover);border-radius:var(--r-sm);background:var(--color-surface-accent);color:var(--color-text-accent);font-size:10px;font-weight:var(--font-weight-semibold);text-transform:uppercase}.luno-ribbon--demo{border-color:var(--tone-info-bd);background:var(--tone-info-bg);color:var(--tone-info-tx)}.luno-ribbon--staging{border-color:var(--tone-warning-bd);background:var(--tone-warning-bg);color:var(--tone-warning-tx)}
.luno-notification-row{display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:52px;padding:var(--space-2) var(--space-3) var(--space-2) var(--space-2);border:1px solid var(--color-border-subtle);border-radius:var(--r-lg);background:var(--color-surface-card);color:var(--color-text-primary);font:inherit;text-align:left}.luno-notification-row__icon{display:grid;flex:none;place-items:center;width:30px;height:30px;border:1px solid var(--tone-neutral-bd);border-radius:var(--r-md);background:var(--tone-neutral-bg);color:var(--tone-neutral-tx)}.luno-notification-row--success .luno-notification-row__icon{border-color:var(--tone-success-bd);background:var(--tone-success-bg);color:var(--tone-success-tx)}.luno-notification-row--warning .luno-notification-row__icon{border-color:var(--tone-warning-bd);background:var(--tone-warning-bg);color:var(--tone-warning-tx)}.luno-notification-row--danger .luno-notification-row__icon{border-color:var(--tone-danger-bd);background:var(--tone-danger-bg);color:var(--tone-danger-tx)}.luno-notification-row--info .luno-notification-row__icon{border-color:var(--tone-info-bd);background:var(--tone-info-bg);color:var(--tone-info-tx)}.luno-notification-row__title{flex:1;min-width:0;overflow:hidden;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);text-overflow:ellipsis;white-space:nowrap}.luno-notification-row__meta{flex:none;color:var(--color-text-muted);font-family:var(--font-sans);font-size:var(--font-size-xs);font-weight:var(--font-weight-regular);}.luno-notification-row.is-unread .luno-notification-row__title{font-weight:var(--font-weight-semibold)}.luno-notification-row.is-unread{background:color-mix(in srgb,var(--color-surface-accent) 55%,var(--color-surface-card))}button.luno-notification-row{cursor:pointer;transition:border-color var(--motion-color) var(--motion-ease-standard),background var(--motion-color) var(--motion-ease-standard),transform var(--motion-fast) var(--motion-ease-out)}button.luno-notification-row:hover{border-color:var(--color-border-hover);background:var(--color-hover-bg);transform:translateY(-1px)}button.luno-notification-row:focus-visible{outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}

/* View modal — detalle de entidad/expediente. La confirmación vive en LunoDialog. */
.luno-view-modal__backdrop{position:fixed;inset:0;z-index:var(--z-modal);background:color-mix(in srgb,var(--color-brand-navy) 48%,transparent);backdrop-filter:blur(3px);transition:opacity var(--motion-slow) var(--motion-ease-standard)}.luno-view-modal__viewport{position:fixed;inset:0;z-index:var(--z-modal);display:grid;place-items:center;padding:var(--space-5);overflow:auto}.luno-view-modal{position:relative;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;width:min(100%,720px);max-height:min(820px,calc(100dvh - 40px));overflow:hidden;border:1px solid var(--color-border-subtle);border-radius:var(--r-xl);background:var(--color-surface-card);color:var(--color-text-primary);transition:opacity var(--motion-normal) var(--motion-ease),transform var(--motion-normal) var(--motion-ease)}.luno-view-modal--md{width:min(100%,560px)}.luno-view-modal--xl{width:min(100%,960px)}.luno-view-modal__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);padding:var(--space-4) var(--space-5) var(--space-3)}.luno-view-modal__eyebrow{margin:0 0 var(--space-1);color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase}.luno-view-modal__title-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.luno-view-modal__title{margin:0;font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);}.luno-view-modal__tags{display:inline-flex;flex-wrap:wrap;gap:var(--space-1)}.luno-view-modal__close{display:grid;flex:none;place-items:center;width:36px;height:36px;padding:0;border:1px solid transparent;border-radius:var(--r-md);background:transparent;color:var(--color-text-secondary);cursor:pointer}.luno-view-modal__close:hover{background:var(--color-hover-bg);color:var(--color-text-primary)}.luno-view-modal__close:focus-visible{outline:var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}.luno-view-modal__tabs{padding:0 var(--space-5) var(--space-3)}.luno-view-modal__body{overflow:auto;padding:var(--space-4) var(--space-5);border-top:1px solid var(--color-border-subtle);background:var(--color-surface-secondary)}.luno-view-modal__body>*{min-width:0}.luno-view-modal__footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-5);border-top:1px solid var(--color-border-subtle);color:var(--color-text-secondary);font-size:var(--font-size-xs)}
@media (prefers-reduced-motion:reduce){.luno-spinner__ring,.luno-progress__fill,.luno-quick-action,.luno-view-modal,.luno-view-modal__backdrop{transition:none!important}}
