















:root{
  
  --page:oklch(0.94 0.018 80);
  --paper:oklch(0.99 0.003 82);
  --paper-2:oklch(0.96 0.010 82);
  --line:oklch(0.86 0.008 80);
  --line-soft:oklch(0.91 0.008 80);

  --ink-0:oklch(0.20 0.005 80);
  --ink-1:oklch(0.36 0.005 80);
  --ink-2:oklch(0.54 0.005 80);
  --ink-3:oklch(0.68 0.005 80);

  --sage-0:oklch(0.43 0.060 155);
  --sage-line:oklch(0.55 0.060 155);
  --sage-bg:oklch(0.91 0.025 155);
  --sage-bg-2:oklch(0.94 0.018 155);
  --on-sage:oklch(0.97 0.020 155);

  --good:oklch(0.48 0.060 155);   --good-bg:oklch(0.92 0.025 155);
  --bad:oklch(0.50 0.140 25);     --bad-bg:oklch(0.93 0.040 25);
  --warn:oklch(0.62 0.095 70);    --warn-bg:oklch(0.94 0.035 70);
  --info:oklch(0.50 0.085 220);   --info-bg:oklch(0.93 0.030 220);
  

  --lyr-erp:oklch(0.48 0.060 155);  --lyr-erp-bg:oklch(0.93 0.025 155);
  --lyr-hub:oklch(0.48 0.070 262);  --lyr-hub-bg:oklch(0.93 0.025 262);
  --lyr-prod:oklch(0.50 0.075 95);  --lyr-prod-bg:oklch(0.93 0.035 95);
  --lyr-acc:oklch(0.48 0.065 330);  --lyr-acc-bg:oklch(0.93 0.025 330);

  --r-sm:6px; --r-md:10px; --r-lg:22px; --r-pill:999px;

  --sh-low:0 1px 2px oklch(0.20 0.005 80/0.04),0 2px 6px oklch(0.20 0.005 80/0.04);
  --sh-mid:0 6px 20px -8px oklch(0.20 0.005 80/0.12);
  --sh-pop:0 24px 56px -20px oklch(0.20 0.005 80/0.35);

  --font-ui:'Plus Jakarta Sans',system-ui,sans-serif;
  --font-mono:'JetBrains Mono',ui-monospace,monospace;   
  --font-serif:'Crimson Pro',Georgia,serif;

  

  

  --font-num:'Public Sans',system-ui,sans-serif;

  
  --paper-3:oklch(0.93 0.012 82);
  --line-strong:oklch(0.74 0.010 80);

  
  --sage-1:oklch(0.52 0.065 155);

  
  --bad-line:oklch(0.68 0.100 25);
  --warn-line:oklch(0.74 0.080 70);
  --info-line:oklch(0.68 0.070 220);
  --on-dark:oklch(0.98 0.004 80);

  
  --stock-ok:var(--good);       --stock-ok-bg:var(--good-bg);
  --stock-low:var(--warn);      --stock-low-bg:var(--warn-bg);
  --stock-zero:var(--bad);      --stock-zero-bg:var(--bad-bg);
  --stock-transit:var(--info);  --stock-transit-bg:var(--info-bg);

  
  --space-xxs:4px; --space-xs:8px; --space-sm:12px;
  --space-md:16px; --space-lg:24px; --space-xl:32px; --space-xxl:48px;

  
  --r-xs:4px;

  
  --h-ctl-sm:36px;
  --h-ctl:44px;      
  --h-ctl-lg:56px;   
  --h-ctl-xl:72px;   
  --h-row:52px;      
  --h-row-sm:40px;   
  --pad-card:var(--space-lg);

  
  --t-micro:10px; --t-xs:12px; --t-sm:13.5px; --t-md:15px; --t-lg:18px;
  --t-xl:22px; --t-2xl:30px; --t-3xl:44px; --t-4xl:64px; --t-5xl:88px;
  --ls-micro:0.14em;

  
  --focus-ring:0 0 0 2px var(--paper),0 0 0 4.5px oklch(0.43 0.060 155/0.55);
  --focus-ring-bad:0 0 0 2px var(--paper),0 0 0 4.5px oklch(0.50 0.140 25/0.55);

  --t-fast:120ms; --t-base:180ms; --ease:cubic-bezier(.2,.7,.3,1);

  


  --t-cell:var(--t-sm);      
  --t-card:var(--t-lg);      
  --t-meta:var(--t-xs);      

  
  --e-quick:var(--t-fast);   
  --e-base:var(--t-base);    
  --e-enter:260ms;           
  --ease-pop:cubic-bezier(.2,.9,.3,1.1);  

  
  --scrim:oklch(0.20 0.005 80/0.42);
}





[data-density="compact"]{
  --h-ctl-sm:30px; --h-ctl:38px; --h-ctl-lg:46px; --h-ctl-xl:58px;
  --h-row:40px; --h-row-sm:32px; --pad-card:var(--space-md);
  --t-md:14px; --t-sm:12.5px;
}
[data-density="touch"]{
  --t-cell:14px;
  --h-ctl-sm:44px; --h-ctl:56px; --h-ctl-lg:68px; --h-ctl-xl:84px;
  --h-row:64px; --h-row-sm:52px; --pad-card:var(--space-lg);
  --t-sm:14px;
}



button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}
html,body{margin:0;padding:0;background:var(--page);color:var(--ink-1);font-family:var(--font-ui);-webkit-font-smoothing:antialiased}
body{min-height:100vh;font-size:var(--t-md)}


.num,.o-num{font-family:var(--font-num);font-variant-numeric:tabular-nums;color:var(--ink-0);letter-spacing:-0.01em}

.o-lbl{font-family:var(--font-mono);font-size:var(--t-micro);letter-spacing:var(--ls-micro);text-transform:uppercase;color:var(--ink-3);line-height:1.2}

@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}












html[data-theme="dark"],html[data-theme="auto"].sys-dark{
  --page:oklch(0.185 0.006 80);
  --paper:oklch(0.250 0.006 82);
  --paper-2:oklch(0.290 0.006 82);
  --paper-3:oklch(0.330 0.007 82);
  --line:oklch(0.390 0.008 80);
  --line-soft:oklch(0.320 0.007 80);
  --line-strong:oklch(0.510 0.010 80);

  --ink-0:oklch(0.970 0.004 80);
  --ink-1:oklch(0.885 0.004 80);
  --ink-2:oklch(0.790 0.005 80);
  --ink-3:oklch(0.700 0.005 80);   

  --sage-0:oklch(0.720 0.075 155);
  --sage-1:oklch(0.800 0.070 155);
  --sage-line:oklch(0.620 0.070 155);
  --sage-bg:oklch(0.330 0.045 155);
  --sage-bg-2:oklch(0.285 0.030 155);
  --on-sage:oklch(0.175 0.030 155);

  --good:oklch(0.740 0.075 155);  --good-bg:oklch(0.310 0.040 155);
  --bad:oklch(0.700 0.130 25);    --bad-bg:oklch(0.315 0.055 25);   --bad-line:oklch(0.560 0.110 25);
  --warn:oklch(0.790 0.110 70);   --warn-bg:oklch(0.330 0.050 70);  --warn-line:oklch(0.590 0.090 70);
  --info:oklch(0.745 0.090 220);  --info-bg:oklch(0.305 0.045 220); --info-line:oklch(0.555 0.080 220);
  --lyr-erp:oklch(0.740 0.075 155); --lyr-erp-bg:oklch(0.310 0.040 155);
  --lyr-hub:oklch(0.750 0.075 262); --lyr-hub-bg:oklch(0.310 0.045 262);
  --lyr-prod:oklch(0.790 0.085 95); --lyr-prod-bg:oklch(0.320 0.045 95);
  --lyr-acc:oklch(0.750 0.075 330); --lyr-acc-bg:oklch(0.310 0.045 330);
  --on-dark:oklch(0.980 0.004 80);

  --sh-low:0 1px 2px oklch(0 0 0/0.40),0 2px 8px oklch(0 0 0/0.30);
  --sh-mid:0 8px 24px -8px oklch(0 0 0/0.55);
  --sh-pop:0 28px 64px -20px oklch(0 0 0/0.72);

  --focus-ring:0 0 0 2px var(--page),0 0 0 4.5px oklch(0.720 0.075 155/0.65);
  --focus-ring-bad:0 0 0 2px var(--page),0 0 0 4.5px oklch(0.700 0.130 25/0.65);
  color-scheme:dark;
}
