/* ─── Design Tokens ───────────────────────────────────────────────────────── */
:root {
  --ip-bg: #070b12;
  --ip-bg2: #0b111b;
  --ip-panel: #0b111c;
  --ip-panel2: #121a28;
  --ip-card: rgba(255,255,255,.055);
  --ip-line: rgba(255,255,255,.10);
  --ip-line2: rgba(255,255,255,.16);
  --ip-text: #f7f9ff;
  --ip-muted: rgba(247,249,255,.62);
  --ip-accent: #7c3cff;
  --ip-accent2: #6ea8ff;
  --ip-danger: #ff5f66;
  --ip-shadow: 0 24px 80px rgba(0,0,0,.35);
  --ip-radius: 20px;
  --ip-sidebar-w: 256px;
  --ip-sidebar-collapsed-w: 76px;
  /* Transition speeds */
  --ip-t-fast: 120ms;
  --ip-t-mid: 220ms;
  --ip-ease: cubic-bezier(.4,0,.2,1);
  --ip-spring: cubic-bezier(.34,1.56,.64,1);
}

body.light {
  --ip-bg: #f4f7fb;
  --ip-bg2: #ffffff;
  --ip-panel: #ffffff;
  --ip-panel2: #edf2f8;
  --ip-card: rgba(17,24,39,.045);
  --ip-line: rgba(17,24,39,.11);
  --ip-line2: rgba(17,24,39,.18);
  --ip-text: #111827;
  --ip-muted: rgba(17,24,39,.62);
  --ip-accent: #6d38ff;
  --ip-accent2: #276ef1;
  --ip-danger: #ef4444;
  --ip-shadow: 0 20px 70px rgba(15,23,42,.12);
}

/* ─── Reset & Base ────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
html { min-height: 100%; background: var(--ip-bg); }
body {
  min-height: 100vh; margin: 0; color: var(--ip-text);
  background:
    radial-gradient(circle at 18% 8%, rgba(124,60,255,.14), transparent 28%),
    radial-gradient(circle at 88% 4%, rgba(110,168,255,.10), transparent 24%),
    linear-gradient(180deg, var(--ip-bg), var(--ip-bg2));
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
body.ip-shell-ready { padding: 0 !important; overflow-x: hidden; }

/* ─── App Shell Layout ────────────────────────────────────────────────────── */
.ip-app-shell {
  min-height: 100vh;
  display: grid;
  grid-template-columns: var(--ip-sidebar-w) minmax(0, 1fr);
  /* NO transition on grid — causes jank. Sidebar width transition handles the feel. */
}
body.ip-sidebar-collapsed .ip-app-shell {
  grid-template-columns: var(--ip-sidebar-collapsed-w) minmax(0, 1fr);
}
.ip-menu-slot { min-width: 0; }

/* ─── Sidebar ─────────────────────────────────────────────────────────────── */
.ip-sidebar {
  position: sticky; top: 0; height: 100vh;
  width: var(--ip-sidebar-w);
  padding: 12px 8px 14px;
  border-right: 1px solid var(--ip-line);
  background:
    radial-gradient(circle at 25% 0%, rgba(124,60,255,.17), transparent 30%),
    linear-gradient(180deg, rgba(11,17,28,.98), rgba(6,10,17,.98));
  display: flex; flex-direction: column; gap: 14px;
  overflow: hidden; z-index: 100; isolation: isolate;
  will-change: width;
  transition: width var(--ip-t-mid) var(--ip-ease), padding var(--ip-t-mid) var(--ip-ease);
}
body.light .ip-sidebar {
  background:
    radial-gradient(circle at 25% 0%, rgba(124,60,255,.11), transparent 30%),
    linear-gradient(180deg, #ffffff, #eef3fa);
}
body.ip-sidebar-collapsed .ip-sidebar { width: var(--ip-sidebar-collapsed-w); padding: 10px 8px; }

/* ─── Brand / Logo ────────────────────────────────────────────────────────── */
.ip-brand {
  display: grid; grid-template-columns: minmax(0,1fr) 52px;
  gap: 8px; align-items: center; padding: 8px;
  border: 1px solid var(--ip-line); background: rgba(255,255,255,.045);
  border-radius: 18px; box-shadow: 0 18px 45px rgba(0,0,0,.18); flex-shrink: 0;
  transition: padding var(--ip-t-mid) var(--ip-ease), gap var(--ip-t-mid) var(--ip-ease);
}
body.light .ip-brand { background: rgba(255,255,255,.76); }
body.ip-sidebar-collapsed .ip-brand {
  display: flex; flex-direction: column; align-items: center;
  gap: 8px; padding: 7px 5px; grid-template-columns: unset;
}

.ip-brand-main {
  appearance: none; -webkit-appearance: none;
  border: 0; padding: 0; margin: 0; cursor: pointer; font: inherit;
  text-align: left; outline: 0; display: block; width: 100%; height: 52px;
  border-radius: 14px; overflow: hidden; background: #fff; line-height: 0; flex-shrink: 0;
  transition: background var(--ip-t-fast) var(--ip-ease), transform var(--ip-t-fast) var(--ip-ease);
}
.ip-brand-main:hover { background: rgba(255,255,255,.92); transform: scale(1.02); }
body.light .ip-brand-main { background: transparent; }
body.ip-sidebar-collapsed .ip-brand-main { width: 48px; height: 48px; background: rgba(255,255,255,.08); }
body.light.ip-sidebar-collapsed .ip-brand-main { background: rgba(255,255,255,.65); }

.ip-brand-logo-full, .ip-brand-logo-mini {
  display: block; width: 100%; height: 100%;
  background-repeat: no-repeat; background-position: center;
  pointer-events: none; user-select: none;
}
.ip-brand-logo-full { background-image: url("/logolang.svg"); background-size: 90% auto; }
.ip-brand-logo-mini { display: none; background-image: url("/logo.svg"); background-size: 80% auto; }
body.ip-sidebar-collapsed .ip-brand-logo-full { display: none; }
body.ip-sidebar-collapsed .ip-brand-logo-mini { display: block; }

.ip-brand-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ip-logo, .ip-brand-copy { display: none !important; }

/* ─── Theme Toggle ────────────────────────────────────────────────────────── */
.ip-theme-toggle {
  flex-shrink: 0; width: 52px; height: 52px;
  border-radius: 999px; border: 1px solid var(--ip-line2);
  background: rgba(255,255,255,.055); color: var(--ip-text);
  cursor: pointer; position: relative; display: grid; place-items: center; font-size: 18px;
  transition:
    background var(--ip-t-fast) var(--ip-ease),
    border-color var(--ip-t-fast) var(--ip-ease),
    transform var(--ip-t-fast) var(--ip-ease);
}
.ip-theme-toggle:hover { background: rgba(124,60,255,.15); border-color: rgba(124,60,255,.42); transform: scale(1.07) rotate(10deg); }
.ip-theme-toggle:active { transform: scale(0.93); }
.ip-theme-sun, .ip-theme-moon {
  position: absolute; z-index: 1;
  transition: opacity .22s ease, transform .28s cubic-bezier(.34,1.56,.64,1);
}
body.light .ip-theme-moon { opacity: 0; transform: rotate(30deg) scale(.78); }
body:not(.light) .ip-theme-sun { opacity: 0; transform: rotate(-30deg) scale(.78); }
body.ip-sidebar-collapsed .ip-theme-toggle { width: 44px; height: 44px; }

/* ─── Nav Label ───────────────────────────────────────────────────────────── */
.ip-nav-label {
  padding: 0 10px; color: var(--ip-muted); font-size: 11px; font-weight: 950;
  text-transform: uppercase; letter-spacing: .08em; flex-shrink: 0;
  overflow: hidden; white-space: nowrap;
  transition: opacity var(--ip-t-fast) var(--ip-ease);
}
body.ip-sidebar-collapsed .ip-nav-label { opacity: 0; pointer-events: none; }

/* ─── Nav Links ───────────────────────────────────────────────────────────── */
.ip-nav { display: grid; gap: 4px; overflow: hidden; }

.ip-nav-link {
  appearance: none; -webkit-appearance: none; font: inherit;
  text-align: left; outline: 0; cursor: pointer;
  width: 100%; min-height: 45px; border-radius: 14px;
  border: 1px solid transparent; padding: 0 12px;
  background: transparent; color: var(--ip-muted);
  display: flex; align-items: center; gap: 12px;
  font-size: 13px; font-weight: 950;
  position: relative; overflow: hidden; isolation: isolate;
  transition:
    background var(--ip-t-fast) var(--ip-ease),
    border-color var(--ip-t-fast) var(--ip-ease),
    color var(--ip-t-fast) var(--ip-ease),
    box-shadow var(--ip-t-fast) var(--ip-ease);
}
body.light .ip-nav-link { color: rgba(17,24,39,.64); }

.ip-nav-link:hover {
  color: var(--ip-text);
  background: rgba(255,255,255,.065);
  border-color: rgba(255,255,255,.06);
}
body.light .ip-nav-link:hover { background: rgba(17,24,39,.055); }
.ip-nav-link:active { opacity: .8; }

/* Active state */
.ip-nav-link.active {
  color: #fff;
  background: linear-gradient(135deg, rgba(110,168,255,.18), rgba(124,60,255,.16));
  border-color: rgba(124,60,255,.44);
  box-shadow: 0 8px 24px rgba(0,0,0,.14);
}
body.light .ip-nav-link.active { color: #111827; }

/* Dedicated bar element inside each nav link */
.ip-nav-bar {
  position: absolute;
  /* vertical bar on left side (expanded) */
  left: 0;
  top: 12%;
  width: 3px;
  height: 76%;
  border-radius: 0 3px 3px 0;
  background: linear-gradient(180deg, var(--ip-accent2), var(--ip-accent));
  box-shadow: 2px 0 10px rgba(110,168,255,.45);
  opacity: 0;
  transform: scaleY(0);
  transform-origin: center;
  transition:
    opacity var(--ip-t-fast) var(--ip-ease),
    transform var(--ip-t-fast) var(--ip-ease);
  pointer-events: none;
  z-index: 2;
}

/* Active expanded: show bar */
.ip-nav-link.active .ip-nav-bar {
  opacity: 1;
  transform: scaleY(1);
}

/* Collapsed state */
body.ip-sidebar-collapsed .ip-nav-link { padding: 0; justify-content: center; min-height: 47px; }
body.ip-sidebar-collapsed .ip-nav-link:hover { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.10); }

/* Collapsed: horizontal bar at bottom center */
body.ip-sidebar-collapsed .ip-nav-bar {
  /* reset left-side bar */
  left: 0;
  right: 0;
  top: auto;
  bottom: 4px;
  width: 50%;
  height: 3px;
  /* center horizontally using margin: auto */
  margin: 0 auto;
  border-radius: 3px;
  box-shadow: 0 0 8px rgba(110,168,255,.5);
  transform: scaleX(0);
  transform-origin: center;
}
body.ip-sidebar-collapsed .ip-nav-link.active .ip-nav-bar {
  opacity: 1;
  transform: scaleX(1);
}

/* ─── Nav Icon ────────────────────────────────────────────────────────────── */
.ip-nav-icon {
  width: 22px; height: 22px; display: grid; place-items: center;
  flex: 0 0 auto; color: currentColor; position: relative; z-index: 1;
  transition: color var(--ip-t-fast) var(--ip-ease);
}
.ip-nav-link.active .ip-nav-icon { color: var(--ip-accent2); }
.ip-nav-icon svg {
  width: 18px; height: 18px; display: block; fill: none; stroke: currentColor;
  stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke;
}
/* Collapsed: bigger hit area + bigger icon */
body.ip-sidebar-collapsed .ip-nav-icon { width: 44px; height: 44px; }
body.ip-sidebar-collapsed .ip-nav-icon svg { width: 26px; height: 26px; stroke-width: 1.6; }

/* ─── Nav Text ────────────────────────────────────────────────────────────── */
.ip-nav-text {
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  position: relative; z-index: 1;
  transition: opacity var(--ip-t-fast) var(--ip-ease);
}
body.ip-sidebar-collapsed .ip-nav-text { opacity: 0; width: 0; pointer-events: none; }

/* ─── Tooltip — hidden everywhere by default ──────────────────────────────── */
.ip-nav-tooltip {
  display: none !important;
}

/* Only show in collapsed sidebar on desktop hover */
@media (min-width: 901px) {
  body.ip-sidebar-collapsed .ip-nav-link:hover .ip-nav-tooltip {
    display: flex !important;
    position: absolute;
    left: calc(var(--ip-sidebar-collapsed-w) + 6px);
    top: 50%;
    transform: translateY(-50%);
    min-height: 34px;
    padding: 0 14px;
    border-radius: 999px;
    border: 1px solid var(--ip-line);
    background: rgba(10,16,27,.97);
    color: #fff;
    font-size: 12px;
    font-weight: 950;
    white-space: nowrap;
    box-shadow: 0 12px 30px rgba(0,0,0,.28);
    pointer-events: none;
    z-index: 600;
    align-items: center;
    animation: ip-tooltip-in var(--ip-t-fast) var(--ip-ease) both;
  }
  body.light.ip-sidebar-collapsed .ip-nav-link:hover .ip-nav-tooltip {
    background: #fff;
    color: #111827;
    border-color: var(--ip-line);
  }
}

@keyframes ip-tooltip-in {
  from { opacity: 0; transform: translateY(-50%) translateX(-6px); }
  to   { opacity: 1; transform: translateY(-50%) translateX(0); }
}

/* ─── Sidebar Bottom ──────────────────────────────────────────────────────── */
.ip-sidebar-bottom { margin-top: auto; padding: 10px 0 2px; flex-shrink: 0; }

.ip-logout {
  min-height: 46px; width: 100%; border-radius: 999px;
  border: 1px solid rgba(255,95,102,.35); color: #fff;
  background: linear-gradient(135deg, #ff6a6a, #ef4444);
  font-size: 13px; font-weight: 950; cursor: pointer;
  box-shadow: 0 14px 36px rgba(239,68,68,.22);
  overflow: hidden; white-space: nowrap;
  transition:
    transform var(--ip-t-fast) var(--ip-ease),
    filter var(--ip-t-fast) var(--ip-ease),
    box-shadow var(--ip-t-fast) var(--ip-ease),
    width var(--ip-t-mid) var(--ip-ease),
    border-radius var(--ip-t-mid) var(--ip-ease);
}
.ip-logout:hover { transform: translateY(-2px); filter: brightness(1.08); box-shadow: 0 18px 44px rgba(239,68,68,.32); }
.ip-logout:active { transform: scale(.98); }
body.ip-sidebar-collapsed .ip-logout { width: 48px; margin: 0 auto; border-radius: 14px; font-size: 0; display: block; }
body.ip-sidebar-collapsed .ip-logout::before { content: "⎋"; font-size: 18px; }

/* ─── Main Content ────────────────────────────────────────────────────────── */
.ip-main { min-width: 0; width: 100%; padding: 18px; }

/* ─── Old page helpers ────────────────────────────────────────────────────── */
body.ip-shell-ready > .topbar,
body.ip-shell-ready .page > .topbar { display: none !important; }
body.ip-shell-ready .page, body.ip-shell-ready .wrap, body.ip-shell-ready .app { max-width: 100% !important; }
body.ip-shell-ready .wrap, body.ip-shell-ready .page { padding: 0 !important; }
body.ip-shell-ready #pageContent { width: 100%; }
body.ip-shell-ready .auth-screen, body.ip-shell-ready .auth-overlay,
body.ip-shell-ready .modal-backdrop, body.ip-shell-ready .modal-overlay,
body.ip-shell-ready .wm-modal-backdrop { position: fixed; }

/* ─── Responsive ──────────────────────────────────────────────────────────── */
@media (max-width: 900px) {
  :root { --ip-sidebar-w: var(--ip-sidebar-collapsed-w); }
  .ip-sidebar { width: var(--ip-sidebar-collapsed-w) !important; padding: 10px 8px !important; }
  .ip-brand { display: flex !important; flex-direction: column !important; align-items: center !important; gap: 8px !important; padding: 7px 5px !important; grid-template-columns: unset !important; }
  .ip-brand-main { width: 48px !important; height: 48px !important; }
  .ip-brand-logo-full { display: none !important; }
  .ip-brand-logo-mini { display: block !important; }
  .ip-theme-toggle { width: 44px !important; height: 44px !important; }
  .ip-nav-label { opacity: 0 !important; pointer-events: none !important; }
  .ip-nav-link { padding: 0 !important; justify-content: center !important; }
  .ip-nav-text { opacity: 0 !important; width: 0 !important; pointer-events: none !important; }
  .ip-nav-icon { width: 44px !important; height: 44px !important; }
  .ip-logout { width: 48px !important; margin: 0 auto !important; border-radius: 14px !important; font-size: 0 !important; display: block !important; }
  .ip-logout::before { content: "⎋" !important; font-size: 18px !important; }
  .ip-main { padding: 12px; }
}
@media (max-width: 560px) { .ip-main { padding: 10px; } }

/* ─── Dashboard UI ────────────────────────────────────────────────────────── */
.erp-dashboard-hero {
  position: relative; overflow: hidden; margin-bottom: 16px; padding: 28px;
  border: 1px solid var(--ip-line); border-radius: 28px;
  background: radial-gradient(circle at 82% 8%, rgba(124,60,255,.22), transparent 34%), linear-gradient(135deg, rgba(110,168,255,.14), rgba(124,60,255,.10));
  box-shadow: var(--ip-shadow);
}
.erp-eyebrow {
  display: inline-flex; align-items: center; gap: 8px; min-height: 34px; padding: 0 13px;
  border-radius: 999px; border: 1px solid var(--ip-line); background: rgba(255,255,255,.07);
  color: var(--ip-muted); font-size: 12px; font-weight: 950; text-transform: uppercase; letter-spacing: .06em;
}
.erp-dashboard-hero h1 { position: relative; z-index: 1; margin: 16px 0 12px; font-size: clamp(38px,6vw,72px); line-height: .92; letter-spacing: -.075em; }
.erp-dashboard-hero p { position: relative; z-index: 1; max-width: 980px; margin: 0; color: var(--ip-muted); font-size: 16px; line-height: 1.55; font-weight: 800; }
.erp-dash-stats { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 14px; margin-bottom: 16px; }
.erp-stat-card, .erp-card { border: 1px solid var(--ip-line); background: radial-gradient(circle at 85% 18%, rgba(124,60,255,.12), transparent 32%), linear-gradient(180deg, rgba(255,255,255,.065), rgba(255,255,255,.035)); border-radius: 22px; box-shadow: 0 18px 55px rgba(0,0,0,.18); }
body.light .erp-stat-card, body.light .erp-card { background: radial-gradient(circle at 85% 18%, rgba(124,60,255,.08), transparent 32%), linear-gradient(180deg, #fff, rgba(255,255,255,.78)); }
.erp-stat-card { min-height: 126px; padding: 18px; display: flex; flex-direction: column; justify-content: space-between; }
.erp-stat-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--ip-muted); font-size: 12px; font-weight: 950; text-transform: uppercase; letter-spacing: .05em; }
.erp-stat-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 12px; background: rgba(255,255,255,.07); color: var(--ip-text); font-size: 15px; }
.erp-stat-value { margin-top: 14px; font-size: 38px; line-height: .9; font-weight: 950; letter-spacing: -.07em; }
.erp-stat-sub { margin-top: 10px; color: var(--ip-muted); font-size: 13px; font-weight: 850; }
.erp-dashboard-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 16px; align-items: start; }
.erp-card-pad { padding: 20px; }
.erp-section-title { margin: 0 0 16px; font-size: 24px; letter-spacing: -.045em; }
.erp-quick-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; }
.erp-action-card { min-height: 118px; padding: 16px; border-radius: 18px; border: 1px solid var(--ip-line); background: rgba(255,255,255,.05); color: var(--ip-text); text-decoration: none; display: flex; flex-direction: column; justify-content: space-between; gap: 12px; transition: transform var(--ip-t-fast) var(--ip-ease), border-color var(--ip-t-fast) var(--ip-ease), background var(--ip-t-fast) var(--ip-ease); }
.erp-action-card:hover { transform: translateY(-2px); border-color: rgba(124,60,255,.44); background: rgba(124,60,255,.10); }
.erp-action-card strong { font-size: 17px; letter-spacing: -.035em; }
.erp-action-card span { color: var(--ip-muted); line-height: 1.4; font-size: 13px; font-weight: 800; }
.erp-list { display: grid; gap: 10px; }
.erp-list-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 14px; align-items: center; padding: 13px 14px; border-radius: 16px; border: 1px solid var(--ip-line); background: rgba(255,255,255,.045); }
.erp-list-title { font-weight: 950; font-size: 14px; line-height: 1.2; }
.erp-list-sub { margin-top: 4px; color: var(--ip-muted); font-size: 12px; line-height: 1.3; font-weight: 800; }
.erp-pill { min-width: 48px; min-height: 30px; padding: 0 10px; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--ip-line); background: rgba(255,255,255,.055); color: var(--ip-text); font-size: 12px; font-weight: 950; }
.erp-pill.green { color: #b9f7ce; border-color: rgba(34,197,94,.28); background: rgba(34,197,94,.12); }
.erp-pill.yellow { color: #fde68a; border-color: rgba(245,158,11,.30); background: rgba(245,158,11,.13); }
.erp-pill.red { color: #fecaca; border-color: rgba(239,68,68,.30); background: rgba(239,68,68,.13); }
body.light .erp-pill.green { color: #087a43; }
body.light .erp-pill.yellow { color: #8a5200; }
body.light .erp-pill.red { color: #b42318; }
.erp-muted { color: var(--ip-muted); font-weight: 850; }
@media (max-width: 1180px) { .erp-dash-stats { grid-template-columns: repeat(2, minmax(0,1fr)); } .erp-dashboard-grid { grid-template-columns: 1fr; } }
@media (max-width: 720px) { .erp-dashboard-hero { padding: 20px; border-radius: 22px; } .erp-dash-stats, .erp-quick-grid { grid-template-columns: 1fr; } .erp-stat-value { font-size: 34px; } }

/* ─── Premium Cards ───────────────────────────────────────────────────────── */
:root {
  --ip-glass-border: rgba(255,255,255,.105);
  --ip-glass-bg-1: rgba(255,255,255,.075);
  --ip-glass-bg-2: rgba(255,255,255,.035);
  --ip-card-glow: rgba(124,60,255,.18);
  --ip-card-glow-2: rgba(110,168,255,.12);
}
body.light {
  --ip-glass-border: rgba(17,24,39,.11);
  --ip-glass-bg-1: rgba(255,255,255,.96);
  --ip-glass-bg-2: rgba(255,255,255,.78);
  --ip-card-glow: rgba(124,60,255,.10);
  --ip-card-glow-2: rgba(39,110,241,.08);
}
.card, .erp-card, .erp-stat-card, .wm-kpi, .wm-side, .wm-map-shell, .stat, .settings-card, .settings-hero, .inventory-hero, .auth-card, .scan-panel, .list-wrap, .table-wrap {
  position: relative; overflow: hidden;
  border: 1px solid var(--ip-glass-border) !important;
  background: radial-gradient(circle at var(--mx,85%) var(--my,12%), var(--ip-card-glow), transparent 32%), radial-gradient(circle at 8% 100%, var(--ip-card-glow-2), transparent 34%), linear-gradient(180deg, var(--ip-glass-bg-1), var(--ip-glass-bg-2)) !important;
  box-shadow: 0 22px 70px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.06) !important;
  backdrop-filter: blur(18px) saturate(1.12); -webkit-backdrop-filter: blur(18px) saturate(1.12);
  transform: translateZ(0);
  transition: transform var(--ip-t-mid) var(--ip-ease), border-color var(--ip-t-mid) var(--ip-ease), box-shadow var(--ip-t-mid) var(--ip-ease);
}
.card > *, .erp-card > *, .erp-stat-card > *, .wm-kpi > *, .wm-side > *, .wm-map-shell > *, .stat > *, .settings-card > *, .settings-hero > *, .inventory-hero > *, .auth-card > *, .scan-panel > *, .list-wrap > *, .table-wrap > * { position: relative; z-index: 1; }
.card:hover, .erp-card:hover, .erp-stat-card:hover, .wm-kpi:hover, .wm-side:hover, .wm-map-shell:hover, .stat:hover, .settings-card:hover, .settings-hero:hover, .inventory-hero:hover, .scan-panel:hover, .list-wrap:hover, .table-wrap:hover { transform: translateY(-3px); border-color: rgba(124,60,255,.34) !important; box-shadow: 0 28px 90px rgba(0,0,0,.30), 0 0 48px rgba(124,60,255,.11), inset 0 1px 0 rgba(255,255,255,.10) !important; }
body.light .card:hover, body.light .erp-card:hover, body.light .erp-stat-card:hover, body.light .wm-kpi:hover, body.light .wm-side:hover, body.light .wm-map-shell:hover, body.light .stat:hover, body.light .settings-card:hover, body.light .settings-hero:hover, body.light .inventory-hero:hover, body.light .scan-panel:hover, body.light .list-wrap:hover, body.light .table-wrap:hover { box-shadow: 0 28px 90px rgba(15,23,42,.14), 0 0 48px rgba(124,60,255,.08), inset 0 1px 0 rgba(255,255,255,.7) !important; }
.wm-kpi, .erp-stat-card, .stat { min-height: 112px; }
.wm-kpi-label, .erp-stat-top, .stat-label { color: var(--ip-muted) !important; font-size: 11px !important; font-weight: 950 !important; letter-spacing: .07em !important; text-transform: uppercase !important; }
.wm-kpi-value, .erp-stat-value, .stat-value { font-size: clamp(30px,4vw,44px) !important; font-weight: 950 !important; letter-spacing: -.065em !important; }

/* ─── Reduced Motion ──────────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .ip-app-shell, .ip-sidebar, .ip-brand, .ip-theme-toggle, .ip-nav-link, .ip-nav-icon, .ip-nav-text, .ip-logout, .card, .erp-card, .erp-stat-card { transition: none !important; animation: none !important; }
}
