/* Principio Asporto 5.7.5 / Delivery2 5.4.0 — Premium Design Foundation
   Solo presentazione: nessun flusso, API, stato ordine o layout funzionale viene modificato.
   Token tenant-ready: possono essere sovrascritti in futuro a livello tenant. */
:root{
  --tenant-accent:#d2ad5c;
  --tenant-accent-2:#efd58f;
  --tenant-accent-ink:#17191d;
  --tenant-brand-surface:#17191d;
  --tenant-brand-surface-2:#272b31;

  --px-bg:#f3efe8;
  --px-bg-soft:#f8f6f2;
  --px-surface:rgba(255,255,255,.94);
  --px-surface-solid:#ffffff;
  --px-surface-soft:#f7f3ec;
  --px-surface-muted:#eee8de;
  --px-ink:#17191d;
  --px-ink-2:#30343a;
  --px-muted:#73777f;
  --px-line:rgba(64,54,41,.13);
  --px-line-strong:rgba(64,54,41,.19);
  --px-accent:var(--tenant-accent);
  --px-accent-2:var(--tenant-accent-2);
  --px-accent-soft:color-mix(in srgb,var(--px-accent) 17%,#fff);
  --px-success:#26704a;
  --px-success-soft:#e7f3eb;
  --px-warning:#8a611a;
  --px-warning-soft:#fff1cf;
  --px-danger:#983c42;
  --px-danger-soft:#f8e1e2;
  --px-info:#3a628c;
  --px-info-soft:#e7eef6;

  --px-radius-xs:9px;
  --px-radius-sm:12px;
  --px-radius-md:16px;
  --px-radius-lg:20px;
  --px-radius-xl:26px;
  --px-radius-2xl:32px;
  --px-radius-pill:999px;

  --px-space-1:4px;
  --px-space-2:8px;
  --px-space-3:12px;
  --px-space-4:16px;
  --px-space-5:20px;
  --px-space-6:24px;
  --px-space-7:32px;
  --px-space-8:40px;

  --px-shadow-0:0 1px 2px rgba(23,25,29,.025);
  --px-shadow-1:0 8px 24px rgba(23,25,29,.055),0 1px 2px rgba(23,25,29,.025);
  --px-shadow-2:0 14px 38px rgba(23,25,29,.075),0 2px 5px rgba(23,25,29,.035);
  --px-shadow-3:0 22px 58px rgba(23,25,29,.11),0 5px 14px rgba(23,25,29,.045);
  --px-shadow-dark:0 18px 48px rgba(10,12,15,.20);

  --px-ease:cubic-bezier(.2,.72,.2,1);
  --px-fast:130ms;
  --px-normal:190ms;
  --px-slow:260ms;
  --px-tap:44px;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{font-feature-settings:"kern" 1,"liga" 1;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit}
button,a,[role="button"]{touch-action:manipulation}

/* Focus professionale, visibile ma non invasivo */
:where(button,a,input,select,textarea,[tabindex]):focus-visible{
  outline:3px solid color-mix(in srgb,var(--px-accent) 46%,transparent)!important;
  outline-offset:2px;
}

/* Admin shell: superfici e profondità, senza alterare la struttura */
body.principioAdmin49{
  --p49-bg:var(--px-bg);
  --p49-surface:var(--px-surface-solid);
  --p49-surface-soft:var(--px-surface-soft);
  --p49-surface-strong:var(--px-surface-muted);
  --p49-ink:var(--px-ink);
  --p49-muted:var(--px-muted);
  --p49-line:var(--px-line);
  --p49-gold:var(--px-accent);
  --p49-gold-2:var(--px-accent-2);
  background:
    radial-gradient(900px 440px at 7% -10%,rgba(255,255,255,.98),transparent 68%),
    radial-gradient(660px 420px at 98% 1%,color-mix(in srgb,var(--px-accent) 10%,transparent),transparent 72%),
    linear-gradient(180deg,#f8f5ef 0%,var(--px-bg) 56%,#eee8df 100%)!important;
}
body.principioAdmin49 .managerTopbar{
  background:linear-gradient(135deg,rgba(20,22,26,.985),rgba(35,39,45,.975))!important;
  border-bottom:1px solid rgba(255,255,255,.065)!important;
  box-shadow:0 10px 30px rgba(10,12,15,.15)!important;
}
body.principioAdmin49 .managerDesktopSidebar{
  background:linear-gradient(155deg,var(--tenant-brand-surface) 0%,var(--tenant-brand-surface-2) 100%)!important;
  border:1px solid rgba(255,255,255,.07)!important;
  box-shadow:var(--px-shadow-dark)!important;
}
body.principioAdmin49 .desktopNavItem.active{
  background:linear-gradient(135deg,var(--px-accent),var(--px-accent-2))!important;
  box-shadow:0 9px 24px color-mix(in srgb,var(--px-accent) 24%,transparent)!important;
}

/* Componenti condivisi: stessa grammatica visiva in tutte le sezioni */
body.principioAdmin49 :is(.card,.mobileOrderCard,.dashboardOrderCard,.dashboardMetricCard,.unifiedKpi,.metric,.hubTile,.smart45FleetCard,.smart45OrderCard,.smart45GroupCard,.ops44OrderCard,.ops44KitchenCard,.an48Insight){
  border-color:var(--px-line)!important;
  box-shadow:var(--px-shadow-1)!important;
  background:var(--px-surface)!important;
  backdrop-filter:saturate(115%) blur(8px);
}
body.principioAdmin49 :is(.card,.mobileOrderCard,.dashboardOrderCard,.dashboardMetricCard,.unifiedKpi,.hubTile){
  transition:border-color var(--px-normal) var(--px-ease),box-shadow var(--px-normal) var(--px-ease),transform var(--px-fast) var(--px-ease);
}
@media(hover:hover){
  body.principioAdmin49 :is(.mobileOrderCard,.dashboardOrderCard,.hubTile):hover{
    border-color:var(--px-line-strong)!important;
    box-shadow:var(--px-shadow-2)!important;
    transform:translateY(-1px);
  }
}

body.principioAdmin49 :is(.btn,button){
  transition:transform var(--px-fast) var(--px-ease),box-shadow var(--px-normal) var(--px-ease),filter var(--px-normal) var(--px-ease),background var(--px-normal) var(--px-ease);
}
body.principioAdmin49 .btn.gold{
  background:linear-gradient(135deg,var(--px-accent),var(--px-accent-2))!important;
  box-shadow:0 8px 20px color-mix(in srgb,var(--px-accent) 18%,transparent)!important;
}
body.principioAdmin49 :is(input,select,textarea){
  background:rgba(255,255,255,.96)!important;
  border-color:var(--px-line)!important;
  box-shadow:var(--px-shadow-0);
}
body.principioAdmin49 :is(input,select,textarea):focus{
  border-color:color-mix(in srgb,var(--px-accent) 72%,#8b7140)!important;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--px-accent) 15%,transparent)!important;
}

/* Stati semantici: disponibili anche alle release successive */
.px-tone-success{background:var(--px-success-soft)!important;color:var(--px-success)!important;border-color:color-mix(in srgb,var(--px-success) 22%,transparent)!important}
.px-tone-warning{background:var(--px-warning-soft)!important;color:var(--px-warning)!important;border-color:color-mix(in srgb,var(--px-warning) 22%,transparent)!important}
.px-tone-danger{background:var(--px-danger-soft)!important;color:var(--px-danger)!important;border-color:color-mix(in srgb,var(--px-danger) 22%,transparent)!important}
.px-tone-info{background:var(--px-info-soft)!important;color:var(--px-info)!important;border-color:color-mix(in srgb,var(--px-info) 22%,transparent)!important}

/* Primitive future: non cambiano i flussi, evitano CSS duplicato nelle prossime pagine */
.px-surface{background:var(--px-surface);border:1px solid var(--px-line);border-radius:var(--px-radius-lg);box-shadow:var(--px-shadow-1)}
.px-surface-raised{background:var(--px-surface-solid);border:1px solid var(--px-line);border-radius:var(--px-radius-xl);box-shadow:var(--px-shadow-2)}
.px-chip{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:7px 10px;border:1px solid var(--px-line);border-radius:var(--px-radius-pill);background:rgba(255,255,255,.82);font-size:11px;font-weight:850}
.px-eyebrow{font-size:10px;font-weight:900;letter-spacing:.11em;text-transform:uppercase;color:color-mix(in srgb,var(--px-accent) 70%,#5b4b30)}
.px-divider{height:1px;background:var(--px-line);border:0;margin:var(--px-space-4) 0}
.px-skeleton{position:relative;overflow:hidden;background:linear-gradient(90deg,#eee9e1 20%,#f8f5ef 42%,#eee9e1 64%);background-size:220% 100%;animation:pxShimmer 1.35s ease-in-out infinite;border-radius:var(--px-radius-sm);color:transparent!important}
@keyframes pxShimmer{to{background-position:-220% 0}}

/* Customer surfaces: foundation solamente, nessun riordino di layout */
body[data-principio-role="customer-asporto"],
body[data-principio-role="customer-delivery"]{
  --gold:var(--px-accent);
  --gold2:var(--px-accent-2);
  --line:var(--px-line);
  --muted:var(--px-muted);
  color:var(--px-ink);
  background:
    radial-gradient(720px 360px at 0% -8%,rgba(255,255,255,.98),transparent 70%),
    radial-gradient(620px 360px at 100% 0%,color-mix(in srgb,var(--px-accent) 9%,transparent),transparent 72%),
    var(--px-bg)!important;
}
body[data-principio-role^="customer-"] :is(.compactProduct,.premiumCartItem,.customizeSection,.accountSection,.accountAddress,.accountOrder,.guidedStepPanel,.statusCard,.deliveryJourneyCard,.deliveryAddressCard,.riderLiveCard){
  border-color:var(--px-line)!important;
  box-shadow:var(--px-shadow-1)!important;
}
body[data-principio-role^="customer-"] :is(.miniAdd,.cartContinueButton,.guidedPrimaryButton,.guidedSubmitButton){
  transition:transform var(--px-fast) var(--px-ease),box-shadow var(--px-normal) var(--px-ease),filter var(--px-normal) var(--px-ease);
}

/* Kitchen / Rider: stessa profondità, nessun cambio di flusso */
body[data-principio-role="kitchen"],body.riderBody{
  background:
    radial-gradient(780px 420px at 5% -8%,rgba(255,255,255,.98),transparent 68%),
    radial-gradient(620px 380px at 100% 0%,color-mix(in srgb,var(--px-accent) 9%,transparent),transparent 72%),
    var(--px-bg)!important;
}
body.riderBody :is(.riderMetric,.riderJob,.riderGpsCard,.riderLoginCard,.riderEmpty){border-color:var(--px-line)!important;box-shadow:var(--px-shadow-1)!important}
body.riderBody .riderHero{box-shadow:var(--px-shadow-dark)!important}

/* Mobile: preserva spazio utile e tap target */
@media(max-width:720px){
  :root{--px-radius-lg:18px;--px-radius-xl:22px}
  body.principioAdmin49 .managerContent,body.principioAdmin49 .managerMain{padding-left:10px!important;padding-right:10px!important}
  body.principioAdmin49 :is(.btn,button,input,select){min-height:42px}
}

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