/* GSMVanta UI Foundation — canonical tokens.
   Vercel is the primary visual reference. Geist is the primary UI typeface.
   Arabic glyphs fall through to Noto Sans Arabic because Geist does not ship
   Arabic glyphs; Latin text remains Geist across LTR and RTL documents. */
:root{
  --gv-foundation-font-sans:"Geist","Noto Sans Arabic",Tahoma,Arial,sans-serif;
  --gv-font-sans:var(--gv-foundation-font-sans);
  --gv-font-mono:"Geist Mono",ui-monospace,"SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace;
  --gv-font-body-weight:400;
  --gv-font-label-weight:500;
  --gv-font-strong-weight:600;
  --gv-font-delta:0px;
  --gv-control-height:36px;
  --gv-control-radius:6px;
  --gv-switch-on:#0070f3;
  --gv-panel-radius:8px;
  --gv-focus-ring:0 0 0 2px var(--gv-surface,#fff),0 0 0 4px var(--gv-text,#111);
  --gv-fs-6_8:calc(6.8px + var(--gv-font-delta,0px));
  --gv-fs-7:calc(7px + var(--gv-font-delta,0px));
  --gv-fs-7_5:calc(7.5px + var(--gv-font-delta,0px));
  --gv-fs-7_8:calc(7.8px + var(--gv-font-delta,0px));
  --gv-fs-8:calc(8px + var(--gv-font-delta,0px));
  --gv-fs-8_5:calc(8.5px + var(--gv-font-delta,0px));
  --gv-fs-8_8:calc(8.8px + var(--gv-font-delta,0px));
  --gv-fs-9:calc(9px + var(--gv-font-delta,0px));
  --gv-fs-9_25:calc(9.25px + var(--gv-font-delta,0px));
  --gv-fs-9_5:calc(9.5px + var(--gv-font-delta,0px));
  --gv-fs-9_75:calc(9.75px + var(--gv-font-delta,0px));
  --gv-fs-10:calc(10px + var(--gv-font-delta,0px));
  --gv-fs-10_25:calc(10.25px + var(--gv-font-delta,0px));
  --gv-fs-10_5:calc(10.5px + var(--gv-font-delta,0px));
  --gv-fs-10_75:calc(10.75px + var(--gv-font-delta,0px));
  --gv-fs-10_8:calc(10.8px + var(--gv-font-delta,0px));
  --gv-fs-11:calc(11px + var(--gv-font-delta,0px));
  --gv-fs-11_25:calc(11.25px + var(--gv-font-delta,0px));
  --gv-fs-11_5:calc(11.5px + var(--gv-font-delta,0px));
  --gv-fs-11_75:calc(11.75px + var(--gv-font-delta,0px));
  --gv-fs-12:calc(12px + var(--gv-font-delta,0px));
  --gv-fs-12_5:calc(12.5px + var(--gv-font-delta,0px));
  --gv-fs-12_75:calc(12.75px + var(--gv-font-delta,0px));
  --gv-fs-13:calc(13px + var(--gv-font-delta,0px));
  --gv-fs-13_5:calc(13.5px + var(--gv-font-delta,0px));
  --gv-fs-14:calc(14px + var(--gv-font-delta,0px));
  --gv-fs-14_5:calc(14.5px + var(--gv-font-delta,0px));
  --gv-fs-15:calc(15px + var(--gv-font-delta,0px));
  --gv-fs-15_5:calc(15.5px + var(--gv-font-delta,0px));
  --gv-fs-16:calc(16px + var(--gv-font-delta,0px));
  --gv-fs-17:calc(17px + var(--gv-font-delta,0px));
  --gv-fs-18:calc(18px + var(--gv-font-delta,0px));
  --gv-fs-19:calc(19px + var(--gv-font-delta,0px));
  --gv-fs-20:calc(20px + var(--gv-font-delta,0px));
  --gv-fs-21:calc(21px + var(--gv-font-delta,0px));
  --gv-fs-22:calc(22px + var(--gv-font-delta,0px));
  --gv-fs-23:calc(23px + var(--gv-font-delta,0px));
  --gv-fs-24:calc(24px + var(--gv-font-delta,0px));
  --gv-fs-25:calc(25px + var(--gv-font-delta,0px));
  --gv-fs-26:calc(26px + var(--gv-font-delta,0px));
  --gv-fs-27:calc(27px + var(--gv-font-delta,0px));
  --gv-fs-28:calc(28px + var(--gv-font-delta,0px));
  --gv-fs-29:calc(29px + var(--gv-font-delta,0px));
  --gv-fs-30:calc(30px + var(--gv-font-delta,0px));
  --gv-fs-32:calc(32px + var(--gv-font-delta,0px));
  --gv-fs-34:calc(34px + var(--gv-font-delta,0px));
  --gv-fs-42:calc(42px + var(--gv-font-delta,0px));
  --gv-fs-44:calc(44px + var(--gv-font-delta,0px));
  --gv-fs-46:calc(46px + var(--gv-font-delta,0px));
}


/* Shared semantic palette. Feature styles consume these tokens instead of
   inventing page-specific colors. */
:root,
html[data-theme="light"]{
  --gv-canvas:#fafafa;
  --gv-surface:#ffffff;
  --gv-surface-subtle:#fafafa;
  --gv-surface-muted:#f5f5f5;
  --gv-text:#171717;
  --gv-text-muted:#666666;
  --gv-border:#e5e5e5;
  --gv-border-strong:#d4d4d4;
  --gv-control-bg:#ffffff;
  --gv-primary:#171717;
  --gv-primary-text:#ffffff;
}
html[data-theme="premium-glass"],
html[data-theme="dark"]{
  --gv-canvas:#000000;
  --gv-surface:#0a0a0a;
  --gv-surface-subtle:#111111;
  --gv-surface-muted:#171717;
  --gv-text:#fafafa;
  --gv-text-muted:#a1a1a1;
  --gv-border:#333333;
  --gv-border-strong:#444444;
  --gv-control-bg:#111111;
  --gv-primary:#fafafa;
  --gv-primary-text:#0a0a0a;
}

html[data-app-area="admin"],html[data-app-area="client"]{--gv-font-delta:0px}


/* Canonical application typography is owned by the foundation. */
html,
body,
input,
button,
select,
textarea,
optgroup {
  font-family: var(--gv-foundation-font-sans);
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
body {
  font-size: 14px;
  line-height: 1.5;
  font-weight: var(--gv-font-body-weight);
  letter-spacing: 0;
}
:is(input,button,select,textarea,optgroup) {
  font-size: 14px;
  line-height: 1.4;
}
:is(h1,h2,h3,h4,h5,h6,b,strong) {
  font-weight: var(--gv-font-strong-weight);
}
:is(label,.field-label,.form-label,.control-label,button,.button,.btn) {
  font-weight: var(--gv-font-label-weight);
}
:is(code,pre,kbd,samp,.mono,.system-code,.secret-code,.payload-box) {
  font-family: var(--gv-font-mono);
  font-variant-numeric: tabular-nums;
}
html[lang="ar"],
html[dir="rtl"] {
  --gv-foundation-font-sans: "Geist","Noto Sans Arabic",Tahoma,Arial,sans-serif;
}
