/* Production foundations derived from Dots Etapa 1 v1.0. See source-manifest.json. */
/* Asiri Core · Stage 1. Values observed on the published reference, 2026-10-05.
   Primitive tokens remain stable; themes assign their semantic roles below. */
@font-face{font-family:Manrope;src:url('../fonts/manrope-latin-variable.woff2') format('woff2');font-style:normal;font-weight:200 800;font-display:swap}

:root{
 --ds-font:Manrope,system-ui,sans-serif;
 --ds-brand-orange:oklch(66% .197 38.52);--ds-brand-plum:oklch(49.6% .206 335.41);
 --ds-pyme-blue:#00a3e1;--ds-pyme-blue-mid:#009bd9;--ds-pyme-blue-deep:#0073c0;--ds-pyme-orange:#f15a22;
 --ds-dental-green:#24e8a6;--ds-dental-blue:#02a5f4;--ds-dental-ink:#102c38;--ds-dental-pale:#eef9f7;--ds-dental-help-bg:rgb(36 232 166 / .35);--ds-dental-blue-soft:#79c4ea;
 --ds-text:oklch(20% 0 0);--ds-text-secondary:oklch(42.964% 0 0);--ds-text-inverse:#fff;
 --ds-surface:#fff;--ds-surface-subtle:oklch(96.605% 0 0);--ds-surface-secondary:oklch(86.7% 0 0);--ds-surface-inverse:oklch(32.1% 0 0);
 --ds-border:oklch(83.704% 0 0);--ds-border-strong:oklch(62.9% 0 0);
 --ds-space-1:.25rem;--ds-space-2:.5rem;--ds-space-3:.75rem;--ds-space-4:1rem;--ds-space-5:1.25rem;--ds-space-6:1.5rem;--ds-space-8:2rem;--ds-space-10:2.5rem;--ds-space-12:3rem;--ds-space-14:3.5rem;--ds-space-16:4rem;
 /* Anchored panels share a 6px separation without changing the spacing scale. */
 --ds-panel-gap:6px;
 --ds-radius-sm:.5rem;--ds-radius-input:.75rem;--ds-radius-md:1rem;--ds-radius-lg:1.5rem;--ds-radius-xl:2rem;--ds-radius-panel:3rem;--ds-radius-hero:3.5rem;--ds-radius-pill:999px;
 --ds-shadow-sm:0 1px 3px rgb(0 0 0 / .1),0 1px 2px -1px rgb(0 0 0 / .1);
 --ds-shadow-xl:0 20px 25px -5px rgb(0 0 0 / .1),0 8px 10px -6px rgb(0 0 0 / .1);
 --ds-shadow-2xl:0 25px 50px -12px rgb(0 0 0 / .25);
 /* Semantic statuses are a proposed common extension, not extracted brand colors. */
 --ds-success:#166534;--ds-success-bg:#f0fdf4;--ds-warning:#854d0e;--ds-warning-bg:#fefce8;--ds-error:#b91c1c;--ds-error-bg:#fef2f2;--ds-info:#075985;--ds-info-bg:#f0f9ff;
 /* Approved shared add-action role, separate from success and all brand palettes. */
 --ds-button-add:#7BAE1B;--ds-on-button-add:#fff;--ds-button-add-hover:color-mix(in srgb,var(--ds-button-add) 93%,black);--ds-button-add-active:color-mix(in srgb,var(--ds-button-add) 88%,black);
 --ds-disabled:#656565;--ds-disabled-bg:#ededed;
}

/* Primary buttons have their own role; selection and navigation keep --ds-action. */
[data-theme]{--ds-button-primary:var(--ds-action);--ds-on-button-primary:var(--ds-on-action);--ds-button-primary-hover:color-mix(in srgb,var(--ds-button-primary) 93%,black);--ds-button-primary-active:color-mix(in srgb,var(--ds-button-primary) 88%,black)}

[data-theme="marca"]{--ds-accent-primary:var(--ds-brand-orange);--ds-accent-secondary:var(--ds-brand-plum);--ds-action:var(--ds-brand-plum);--ds-on-action:#fff;--ds-focus:var(--ds-brand-plum);--ds-tint:oklch(98% .009 30.67);--ds-theme-ink:var(--ds-text);--ds-gradient:linear-gradient(135deg,var(--ds-brand-orange) 0%,var(--ds-brand-orange) 50%,var(--ds-brand-plum) 100%)}

[data-theme="pyme"]{--ds-button-primary:var(--ds-pyme-orange);--ds-on-button-primary:#fff;--ds-accent-primary:var(--ds-pyme-blue);--ds-accent-secondary:var(--ds-pyme-blue-deep);--ds-action:var(--ds-pyme-blue-deep);--ds-on-action:#fff;--ds-focus:var(--ds-pyme-blue-deep);--ds-tint:color-mix(in srgb,var(--ds-pyme-blue) 10%,white);--ds-theme-ink:var(--ds-text);--ds-gradient:linear-gradient(135deg,var(--ds-pyme-blue),var(--ds-pyme-blue-mid) 50%,var(--ds-pyme-blue-deep))}

[data-theme="dental"]{--ds-accent-primary:var(--ds-dental-green);--ds-accent-secondary:var(--ds-dental-blue);--ds-action:var(--ds-brand-plum);--ds-on-action:#fff;--ds-focus:var(--ds-dental-ink);--ds-tint:var(--ds-dental-pale);--ds-theme-ink:var(--ds-dental-ink);--ds-gradient:linear-gradient(135deg,var(--ds-dental-green),var(--ds-dental-blue) 50%,var(--ds-dental-green))}
.ds-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border:1px solid transparent;border-radius:var(--ds-radius-pill);padding:.7rem 1.25rem;font-weight:700;background:var(--ds-button-primary);color:var(--ds-on-button-primary);text-decoration:none}
.ds-button.secondary{background:white;border-color:var(--ds-border-strong);color:var(--ds-text)}
.ds-button:disabled{background:var(--ds-disabled-bg);color:var(--ds-disabled);cursor:not-allowed}

/* Filled primary actions: 7% tonal hover and 12% press; keyboard focus remains independent. */
.ds-button:not(.secondary,.quiet,.danger):not(:disabled){transition:background-color 160ms ease,border-color 160ms ease}

.ds-button:not(.secondary,.quiet,.danger):hover:not(:disabled){background:var(--ds-button-primary-hover);border-color:var(--ds-button-primary-hover);box-shadow:none}

.ds-button:not(.secondary,.quiet,.danger):active:not(:disabled){background:var(--ds-button-primary-active);border-color:var(--ds-button-primary-active);box-shadow:none}
@media(prefers-reduced-motion:reduce){.ds-button:not(.secondary,.quiet,.danger):not(:disabled){transition:none}}

/* Native layout foundation: shared spans, token-based gutters, natural source order. */
.ds-layout-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--ds-space-6)}

.ds-layout-grid>*{min-width:0;grid-column:span 12}

.ds-layout-grid>.ds-span-3{grid-column:span 3}

.ds-layout-grid>.ds-span-4{grid-column:span 4}

.ds-layout-grid>.ds-span-6{grid-column:span 6}

.ds-layout-grid>.ds-span-9{grid-column:span 9}

.ds-layout-grid>.ds-span-12{grid-column:span 12}
@media(max-width:48rem){
 .ds-layout-grid{gap:var(--ds-space-4)}

 .ds-layout-grid>.ds-span-3,.ds-layout-grid>.ds-span-4,.ds-layout-grid>.ds-span-6,.ds-layout-grid>.ds-span-9,.ds-layout-grid>.ds-span-12{grid-column:span 12}}
