:root {
  --rd-navy: #07194c;
  --rd-navy-2: #0d2c7a;
  --rd-blue: #0d6efd;
  --rd-cyan: #31c5ff;
  --rd-orange: #ff8a00;
  --rd-gold: #ffbf1a;
  --rd-dark: #0d1730;
  --rd-slate: #5d6b8a;
  --rd-bg: #f4f7fc;
  --rd-panel: #ffffff;
  --rd-border: #e5ebf6;
  --rd-shadow: 0 20px 45px rgba(10, 24, 69, 0.08);
  --rd-shadow-strong: 0 28px 60px rgba(7, 25, 76, 0.18);
}

* { box-sizing: border-box; }

body {
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: var(--rd-bg);
  color: #16223d;
}

.bg-app {
  background:
    radial-gradient(circle at top right, rgba(49, 197, 255, 0.12), transparent 24%),
    radial-gradient(circle at top left, rgba(255, 191, 26, 0.10), transparent 18%),
    var(--rd-bg);
}

.login-shell {
  min-height: 100vh;
  background:
    radial-gradient(circle at top right, rgba(49, 197, 255, 0.24), transparent 18%),
    radial-gradient(circle at bottom left, rgba(255, 138, 0, 0.20), transparent 22%),
    linear-gradient(135deg, #07194c 0%, #0d2c7a 48%, #07194c 100%);
}

.app-nav {
  backdrop-filter: blur(14px);
  background: linear-gradient(90deg, rgba(7,25,76,.96), rgba(13,44,122,.96) 55%, rgba(7,25,76,.92));
  border-bottom: 1px solid rgba(255,255,255,.08);
  box-shadow: 0 12px 30px rgba(7, 25, 76, .14);
}

.nav-brand-wrap {
  display: inline-flex;
  align-items: center;
  gap: .9rem;
  text-decoration: none;
}

.nav-logo {
  width: 46px;
  height: 46px;
  border-radius: 14px;
  object-fit: cover;
  box-shadow: 0 12px 24px rgba(0,0,0,.28);
}

.brand-name,
.brand-sub {
  display: block;
  line-height: 1.1;
}

.brand-name {
  font-weight: 900;
  letter-spacing: .02em;
}

.brand-sub {
  margin-top: .15rem;
  font-size: .76rem;
  color: rgba(255,255,255,.65);
}

.hero-card,
.panel-card,
.product-card,
.order-card,
.metric-card,
.table-wrap,
.tracking-map-shell,
.info-card,
.kpi,
.login-card {
  border: 1px solid rgba(229, 235, 246, .9);
  border-radius: 26px;
  box-shadow: var(--rd-shadow);
  background: var(--rd-panel);
}

.hero-card {
  position: relative;
  overflow: hidden;
  color: #fff;
  background:
    radial-gradient(circle at top right, rgba(49, 197, 255, .35), transparent 18%),
    radial-gradient(circle at bottom left, rgba(255, 191, 26, .22), transparent 24%),
    linear-gradient(135deg, #07194c 0%, #0d2c7a 52%, #063f8f 100%);
}

.hero-card::after {
  content: "";
  position: absolute;
  inset: auto -80px -80px auto;
  width: 220px;
  height: 220px;
  border-radius: 50%;
  background: rgba(255,255,255,.06);
}

.hero-mini {
  background: rgba(255,255,255,.09);
  border: 1px solid rgba(255,255,255,.12);
  backdrop-filter: blur(10px);
  padding: 1rem;
  border-radius: 20px;
  min-height: 118px;
}

.hero-logo {
  max-width: 320px;
  width: 100%;
  border-radius: 28px;
  box-shadow: var(--rd-shadow-strong);
  border: 1px solid rgba(255,255,255,.15);
}

.section-title {
  font-size: 1.16rem;
  font-weight: 900;
  color: var(--rd-dark);
  margin-bottom: 1rem;
}

.search-box {
  position: relative;
}

.search-box i {
  position: absolute;
  left: 16px;
  top: 50%;
  transform: translateY(-50%);
  color: #6b7a99;
}

.search-box input {
  height: 54px;
  padding-left: 46px;
  border-radius: 999px;
  border: 1px solid var(--rd-border);
  box-shadow: none;
}

.category-chip {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .62rem 1rem;
  border-radius: 999px;
  background: #fff;
  border: 1px solid var(--rd-border);
  text-decoration: none;
  color: var(--rd-dark);
  font-weight: 800;
  transition: .18s ease;
}

.category-chip:hover,
.category-chip.active {
  transform: translateY(-1px);
  background: linear-gradient(90deg, var(--rd-orange), var(--rd-gold));
  color: #16223d;
  border-color: transparent;
}

.business-card,
.product-card,
.panel-card,
.order-card,
.metric-card,
.info-card {
  background: #fff;
}

.business-card {
  display: block;
  color: inherit;
  text-decoration: none;
  overflow: hidden;
  transition: .18s ease;
}

.business-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 28px 54px rgba(7, 25, 76, .12);
}

.business-cover {
  position: relative;
  height: 178px;
  background:
    radial-gradient(circle at top left, rgba(49,197,255,.65), transparent 18%),
    radial-gradient(circle at bottom right, rgba(255,191,26,.42), transparent 18%),
    linear-gradient(135deg, #07194c 0%, #0d2c7a 60%, #0a5ad4 100%);
}

.business-cover::after {
  content: "LIVE TRACKING";
  position: absolute;
  left: 18px;
  bottom: 18px;
  padding: .4rem .72rem;
  border-radius: 999px;
  background: rgba(255,255,255,.14);
  color: #fff;
  font-weight: 900;
  font-size: .72rem;
  letter-spacing: .08em;
}

.business-body {
  padding: 1.1rem;
}

.badge-soft,
.live-chip,
.gps-chip {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  border-radius: 999px;
  font-weight: 800;
}

.badge-soft {
  background: #eef4ff;
  color: #1946a8;
  padding: .55rem .82rem;
}

.live-chip {
  padding: .5rem .82rem;
  background: rgba(12, 111, 253, .10);
  color: #114bc4;
}

.gps-chip {
  padding: .65rem 1rem;
  background: #f7fbff;
  border: 1px dashed rgba(12,111,253,.32);
  color: #143b96;
}

.price {
  font-weight: 900;
  font-size: 1.12rem;
  color: #114bc4;
}

.sticky-cart {
  position: sticky;
  top: 92px;
}

.cart-item {
  padding: 1rem 0;
  border-bottom: 1px solid #edf1f7;
}

.metric-card {
  padding: 1.25rem;
  min-height: 148px;
}

.metric-number {
  font-size: 2rem;
  font-weight: 900;
  color: var(--rd-dark);
}

.metric-label {
  font-weight: 700;
  color: var(--rd-slate);
}

.metric-caption {
  color: #7d8aa7;
  font-size: .88rem;
}

.kpi {
  color: #fff;
  background:
    radial-gradient(circle at top right, rgba(49, 197, 255, .26), transparent 18%),
    linear-gradient(135deg, #0c2d7f 0%, #07194c 100%);
  padding: 1.2rem;
}

.table-wrap {
  padding: 1rem;
}

.table > :not(caption) > * > * {
  border-bottom-color: #edf1f7;
}

.bottom-app-nav {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1040;
  background: rgba(255,255,255,.96);
  border-top: 1px solid #e8edf6;
  padding: .58rem .5rem calc(.58rem + env(safe-area-inset-bottom));
  box-shadow: 0 -10px 26px rgba(7, 25, 76, .09);
  backdrop-filter: blur(14px);
}

.bottom-app-nav .nav-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .15rem;
  color: #566582;
  font-size: .78rem;
  font-weight: 800;
}

.bottom-app-nav .nav-link.active,
.bottom-app-nav .nav-link:hover {
  color: #0d5bd1;
}

.mobile-space {
  padding-bottom: 96px;
}

.login-card {
  max-width: 540px;
  border-radius: 30px;
  overflow: hidden;
  box-shadow: 0 34px 80px rgba(0,0,0,.24);
}

.login-brand {
  display: flex;
  justify-content: center;
  margin-bottom: 1rem;
}

.login-brand img {
  width: 110px;
  height: 110px;
  border-radius: 24px;
  object-fit: cover;
  box-shadow: 0 16px 34px rgba(7,25,76,.18);
}

.btn-main {
  background: linear-gradient(90deg, var(--rd-orange), var(--rd-gold));
  border: 0;
  color: #13213d;
  font-weight: 900;
  border-radius: 999px;
  padding: .9rem 1.15rem;
  box-shadow: 0 16px 34px rgba(255,138,0,.26);
}

.btn-main:hover,
.btn-main:focus {
  color: #13213d;
  transform: translateY(-1px);
}

.btn-soft {
  background: #f6f9ff;
  border: 1px solid #dde7fb;
  color: #1842a0;
  font-weight: 800;
  border-radius: 999px;
}

.btn-soft:hover {
  background: #eef4ff;
  color: #113580;
}

.avatar-mini {
  width: 52px;
  height: 52px;
  border-radius: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, rgba(255,138,0,.18), rgba(49,197,255,.18));
  color: #0d2c7a;
  font-size: 1.2rem;
}

.form-control,
.form-select,
textarea.form-control {
  border: 1px solid #dfe7f4;
  box-shadow: none;
}

.form-control:focus,
.form-select:focus,
textarea.form-control:focus {
  border-color: rgba(13,91,209,.55);
  box-shadow: 0 0 0 .25rem rgba(13,91,209,.12);
}

.order-meta-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}

.info-card {
  padding: 1rem 1.1rem;
}

.info-card .info-label {
  color: var(--rd-slate);
  font-size: .86rem;
  margin-bottom: .2rem;
}

.info-card .info-value {
  font-weight: 900;
  color: var(--rd-dark);
}

.progress-shell {
  background: #edf3ff;
  border-radius: 999px;
  overflow: hidden;
  height: 12px;
}

.progress-shell .progress-bar {
  background: linear-gradient(90deg, var(--rd-orange), var(--rd-gold), #32c5ff);
  border-radius: 999px;
}

.tracking-map-shell {
  padding: 1rem;
}

.tracking-map {
  width: 100%;
  min-height: 420px;
  border-radius: 22px;
  overflow: hidden;
  border: 1px solid var(--rd-border);
}

.map-legend {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
}

.map-legend .legend-item {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .4rem .65rem;
  border-radius: 999px;
  background: #f6f9ff;
  border: 1px solid #e3ebfa;
  color: #344665;
  font-size: .8rem;
  font-weight: 800;
}

.dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  display: inline-block;
}

.dot-business { background: #0d5bd1; }
.dot-customer { background: #ff8a00; }
.dot-driver { background: #0bb26a; }

.tracking-stepper {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .9rem;
}

.tracking-step {
  display: flex;
  align-items: flex-start;
  gap: .8rem;
  padding: .95rem;
  border-radius: 20px;
  border: 1px solid #edf1f7;
  background: #fafcff;
  transition: .18s ease;
}

.step-bullet {
  width: 44px;
  height: 44px;
  border-radius: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #edf3ff;
  color: #3557a5;
  flex: 0 0 auto;
}

.step-title {
  font-weight: 900;
  color: var(--rd-dark);
}

.tracking-step.is-done {
  border-color: rgba(11,178,106,.2);
  background: rgba(11,178,106,.06);
}

.tracking-step.is-done .step-bullet {
  background: rgba(11,178,106,.14);
  color: #108453;
}

.tracking-step.is-current {
  border-color: rgba(13,91,209,.26);
  background: rgba(13,91,209,.07);
  box-shadow: inset 0 0 0 1px rgba(13,91,209,.05);
}

.tracking-timeline {
  display: grid;
  gap: .95rem;
}

.timeline-item {
  display: flex;
  gap: .85rem;
}

.timeline-dot {
  width: 12px;
  height: 12px;
  margin-top: .42rem;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--rd-orange), var(--rd-gold));
  box-shadow: 0 0 0 6px rgba(255,138,0,.10);
  flex: 0 0 auto;
}

.timeline-body {
  flex: 1 1 auto;
  padding-bottom: .9rem;
  border-bottom: 1px solid #edf1f7;
}

.timeline-meta {
  color: #7b89a4;
  font-size: .83rem;
}

.tracking-grid {
  display: grid;
  gap: 1rem;
}

.tracking-grid.cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.rd-marker {
  background: transparent;
  border: 0;
}

.rd-marker-inner {
  width: 40px;
  height: 40px;
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  box-shadow: 0 12px 24px rgba(0,0,0,.18);
  border: 2px solid rgba(255,255,255,.9);
}

.rd-marker-business .rd-marker-inner {
  background: #0d5bd1;
}

.rd-marker-customer .rd-marker-inner {
  background: #ff8a00;
}

.rd-marker-driver .rd-marker-inner {
  background: #10aa67;
}

.utility-badge {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .45rem .8rem;
  border-radius: 999px;
  background: #f6f9ff;
  border: 1px solid #e1e9fb;
  font-size: .82rem;
  font-weight: 800;
  color: #2d456f;
}

.feature-list {
  display: grid;
  gap: .85rem;
}

.feature-item {
  display: flex;
  gap: .85rem;
  align-items: flex-start;
}

.feature-item i {
  width: 42px;
  height: 42px;
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, rgba(255,138,0,.14), rgba(49,197,255,.14));
  color: #0d2c7a;
}

.state-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
}

.order-badge {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  border-radius: 999px;
  padding: .5rem .85rem;
  font-weight: 900;
}

.logo-banner {
  max-width: 100%;
  border-radius: 30px;
  box-shadow: var(--rd-shadow-strong);
}

@media (max-width: 1199.98px) {
  .tracking-stepper {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 991.98px) {
  .sticky-cart {
    position: static;
  }

  .order-meta-row,
  .tracking-grid.cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .tracking-map {
    min-height: 360px;
  }
}

@media (max-width: 767.98px) {
  .hero-card,
  .panel-card,
  .product-card,
  .order-card,
  .metric-card,
  .table-wrap,
  .tracking-map-shell,
  .info-card,
  .kpi,
  .login-card {
    border-radius: 22px;
  }

  .tracking-stepper,
  .order-meta-row,
  .tracking-grid.cols-2 {
    grid-template-columns: 1fr;
  }

  .tracking-map {
    min-height: 300px;
  }

  .brand-sub {
    display: none;
  }
}

.btn-notification {
  position: relative;
  width: 44px;
  height: 44px;
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.08);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.notify-count {
  position: absolute;
  top: -4px;
  right: -4px;
  min-width: 20px;
  height: 20px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--rd-orange), var(--rd-gold));
  color: #112347;
  font-size: .7rem;
  font-weight: 900;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 .35rem;
}

.notification-menu {
  width: min(380px, calc(100vw - 24px));
  border: 0;
  border-radius: 22px;
  box-shadow: 0 24px 60px rgba(7, 25, 76, .18);
  overflow: hidden;
}

.notification-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1rem 1rem .9rem;
  background: linear-gradient(135deg, #07194c 0%, #0d2c7a 60%, #0a5ad4 100%);
  color: #fff;
}

.notification-list {
  max-height: 420px;
  overflow: auto;
  background: #fff;
}

.notification-item,
.notification-empty {
  display: block;
  padding: .95rem 1rem;
  border-bottom: 1px solid #eef3fb;
  color: inherit;
  text-decoration: none;
}

.notification-item:hover {
  background: #f8fbff;
}

.notification-item.is-unread {
  background: linear-gradient(90deg, rgba(13,91,209,.06), transparent);
}

.notification-empty {
  color: #7283a3;
}

.native-shell-badge {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .45rem .8rem;
  border-radius: 999px;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.16);
  color: #fff;
  font-weight: 800;
}

.section-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
  margin-bottom: 1rem;
}

.section-tabs a {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .65rem 1rem;
  border-radius: 999px;
  background: #f7faff;
  border: 1px solid #e1eafb;
  text-decoration: none;
  color: #173266;
  font-weight: 800;
}

.section-tabs a.active,
.section-tabs a:hover {
  color: #fff;
  background: linear-gradient(90deg, #0d5bd1, #31c5ff);
  border-color: transparent;
}

.product-grid-compact {
  display: grid;
  gap: 1rem;
}

.option-chip {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .5rem .75rem;
  border-radius: 999px;
  background: #f7faff;
  border: 1px solid #e5edf9;
  font-size: .84rem;
  font-weight: 700;
  color: #274172;
}

.cart-line-summary {
  display: grid;
  gap: .35rem;
  margin-top: .5rem;
}

.cart-line-summary span {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  color: #6d7c9c;
  font-size: .83rem;
}

.product-config-shell {
  display: grid;
  gap: 1rem;
}

.modifier-group {
  border: 1px solid #e9effa;
  border-radius: 22px;
  padding: 1rem;
  background: #fcfdff;
}

.modifier-option {
  display: flex;
  justify-content: space-between;
  gap: .75rem;
  align-items: flex-start;
  padding: .75rem .85rem;
  border: 1px solid #eef3fb;
  border-radius: 18px;
  background: #fff;
}

.modifier-option + .modifier-option {
  margin-top: .75rem;
}

.product-price-breakdown {
  display: grid;
  gap: .4rem;
  padding: 1rem;
  border-radius: 20px;
  background: linear-gradient(180deg, #f8fbff 0%, #edf4ff 100%);
  border: 1px solid #dfeafb;
}

.summary-pill {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .45rem .7rem;
  border-radius: 999px;
  background: #fff;
  border: 1px solid #e2ebfb;
  font-size: .8rem;
  font-weight: 700;
}

.status-toast-wrap {
  position: fixed;
  top: 86px;
  right: 16px;
  z-index: 1090;
  display: grid;
  gap: .8rem;
  width: min(360px, calc(100vw - 32px));
}

.status-toast {
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 24px 60px rgba(7, 25, 76, .20);
  background: #fff;
  border: 1px solid #e6eefb;
}

.status-toast .toast-head {
  padding: .85rem 1rem;
  background: linear-gradient(135deg, #07194c 0%, #0d2c7a 60%, #0a5ad4 100%);
  color: #fff;
  font-weight: 900;
}

.status-toast .toast-body {
  padding: .9rem 1rem 1rem;
}

.inline-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}

.empty-soft {
  padding: 1rem 1.1rem;
  border-radius: 18px;
  border: 1px dashed #d9e4f6;
  color: #7283a3;
  background: #fafcff;
}

.badge-state-live {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .45rem .75rem;
  border-radius: 999px;
  background: rgba(11,178,106,.12);
  color: #0e7c4e;
  font-weight: 800;
}

@media (max-width: 991.98px) {
  .inline-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767.98px) {
  .status-toast-wrap {
    top: 74px;
    right: 12px;
    left: 12px;
    width: auto;
  }

  .inline-kpis {
    grid-template-columns: 1fr;
  }
}

.fw-black { font-weight: 900; }
.tablet-mode .container { max-width: 1600px; }
.tablet-mode .product-card { min-height: 100%; }
.segment-line {
  border: 1px solid rgba(255,255,255,.14);
  background: linear-gradient(135deg, #08183c, #0d2c7a);
  color: #fff;
  padding: 1rem;
  border-radius: 22px;
  margin-bottom: 1rem;
}
.segment-line .text-muted { color: rgba(255,255,255,.72)!important; }
.table-floor {
  display: grid;
  grid-template-columns: repeat(4, minmax(120px, 1fr));
  gap: 1rem;
  background: linear-gradient(135deg, #eef4ff, #fff);
  border: 1px dashed rgba(6, 23, 58, .14);
  border-radius: 24px;
  padding: 1rem;
}
.table-spot {
  border-radius: 20px;
  padding: 1rem;
  min-height: 110px;
  box-shadow: var(--rd-shadow);
  border: 1px solid rgba(6, 23, 58, .06);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.table-spot.status-free { background: rgba(25,135,84,.12); }
.table-spot.status-occupied { background: rgba(13,110,253,.12); }
.table-spot.status-reserved { background: rgba(255,193,7,.18); }
.table-spot.status-blocked { background: rgba(220,53,69,.14); }
.event-line:last-child { border-bottom: 0!important; margin-bottom: 0!important; padding-bottom: 0!important; }
.form-control,
.form-select,
.btn { box-shadow: none!important; }
.status-toast-wrap {
  position: fixed;
  right: 16px;
  top: 84px;
  z-index: 1090;
  display: grid;
  gap: 12px;
  width: min(360px, calc(100vw - 32px));
}
.status-toast {
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 18px 30px rgba(6,23,58,.12);
  border: 1px solid rgba(6,23,58,.08);
  overflow: hidden;
}
.status-toast .toast-head {
  padding: .9rem 1rem .2rem;
  font-weight: 800;
}
.status-toast .toast-body {
  padding: 0 1rem 1rem;
}
@media (max-width: 991.98px) {
  .table-floor { grid-template-columns: repeat(2, minmax(120px, 1fr)); }
}

/* === UX Refresh 3.1 === */
html {
  scroll-behavior: smooth;
  scroll-padding-top: 110px;
}

body {
  min-height: 100vh;
  overflow-x: hidden;
}

body::selection {
  background: rgba(49, 197, 255, .24);
}

.app-main {
  position: relative;
  z-index: 2;
  min-height: calc(100vh - 86px);
  padding-bottom: 2rem;
}

.app-bg-orb {
  position: fixed;
  pointer-events: none;
  z-index: 0;
  filter: blur(24px);
  opacity: .65;
}

.app-bg-orb.orb-a {
  width: 280px;
  height: 280px;
  right: -80px;
  top: 140px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(49,197,255,.26) 0%, rgba(49,197,255,.06) 42%, transparent 72%);
}

.app-bg-orb.orb-b {
  width: 340px;
  height: 340px;
  left: -140px;
  bottom: 70px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255,191,26,.18) 0%, rgba(255,138,0,.08) 38%, transparent 74%);
}

.app-nav {
  background: linear-gradient(135deg, rgba(7,25,76,.90), rgba(13,44,122,.94) 58%, rgba(8,59,143,.88));
}

.app-nav .container-fluid {
  min-height: 76px;
}

.app-nav .navbar-nav .nav-link {
  font-weight: 800;
  color: rgba(255,255,255,.78);
  padding: .72rem 1rem;
  border-radius: 999px;
  transition: transform .18s ease, background .18s ease, color .18s ease;
}

.app-nav .navbar-nav .nav-link:hover,
.app-nav .navbar-nav .nav-link.active {
  color: #fff;
  background: rgba(255,255,255,.10);
}

.app-nav .navbar-nav .nav-link.active {
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.08);
}

.navbar-toggler {
  width: 44px;
  height: 44px;
  border-radius: 14px;
  background: rgba(255,255,255,.08);
}

.hero-card,
.panel-card,
.product-card,
.order-card,
.metric-card,
.info-card,
.table-wrap,
.kpi,
.login-card,
.tracking-map-shell {
  position: relative;
  overflow: hidden;
}

.panel-card::before,
.metric-card::before,
.product-card::before,
.order-card::before,
.info-card::before,
.login-card::before {
  content: "";
  position: absolute;
  inset: 0 auto auto 0;
  width: 100%;
  height: 1px;
  background: linear-gradient(90deg, rgba(49,197,255,.20), rgba(255,191,26,.14), transparent);
}

.panel-card,
.metric-card,
.product-card,
.order-card,
.info-card,
.table-wrap,
.tracking-map-shell,
.login-card {
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.94));
  border-color: rgba(223,231,244,.82);
  box-shadow: 0 16px 42px rgba(7,25,76,.07);
}

.hero-card {
  border: 1px solid rgba(255,255,255,.10);
  box-shadow: 0 24px 60px rgba(7,25,76,.18);
}

.hero-card .display-5,
.hero-card .display-6 {
  letter-spacing: -.02em;
}

.metric-card {
  min-height: 156px;
  transition: transform .18s ease, box-shadow .18s ease;
}

.metric-card:hover,
.product-card:hover,
.order-card:hover,
.panel-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 22px 54px rgba(7,25,76,.10);
}

.section-title {
  display: flex;
  align-items: center;
  gap: .65rem;
  letter-spacing: -.01em;
}

.section-title::before {
  content: "";
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--rd-orange), var(--rd-gold));
  box-shadow: 0 0 0 7px rgba(255,138,0,.10);
}

.section-title.mb-0::before {
  margin-top: .1rem;
}

.search-box input,
.form-control,
.form-select,
textarea.form-control {
  background: rgba(248, 251, 255, .96);
  border-color: #dde6f5;
  border-radius: 18px !important;
  min-height: 52px;
}

textarea.form-control {
  min-height: 110px;
}

.form-label {
  color: #2a406f;
}

.btn {
  border-radius: 16px !important;
  font-weight: 800;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}

.btn:hover,
.btn:focus-visible {
  transform: translateY(-1px);
}

.btn.btn-warning,
.btn-main {
  box-shadow: 0 14px 28px rgba(255,138,0,.18);
}

.badge-soft {
  background: linear-gradient(180deg, rgba(238,244,255,.96), rgba(233,241,255,.92));
  border: 1px solid #dbe7fb;
}

.section-tabs {
  margin-bottom: 1.25rem;
  overflow-x: auto;
  flex-wrap: nowrap;
  padding-bottom: .15rem;
}

.section-tabs::-webkit-scrollbar,
.filter-rail::-webkit-scrollbar,
.notification-list::-webkit-scrollbar {
  height: 8px;
  width: 8px;
}

.section-tabs::-webkit-scrollbar-thumb,
.filter-rail::-webkit-scrollbar-thumb,
.notification-list::-webkit-scrollbar-thumb {
  background: rgba(13,44,122,.18);
  border-radius: 999px;
}

.inline-kpis {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.inline-kpis .metric-card {
  min-height: 124px;
}

.menu-toolbar {
  position: sticky;
  top: 88px;
  z-index: 35;
  backdrop-filter: blur(16px);
}

.filter-rail {
  display: flex;
  gap: .65rem;
  overflow-x: auto;
  padding-bottom: .1rem;
}

.restaurant-chip,
.filter-chip {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .72rem 1rem;
  border-radius: 999px;
  background: #fff;
  border: 1px solid #dfe8f6;
  color: #1c3568;
  font-weight: 800;
  text-decoration: none;
  white-space: nowrap;
  box-shadow: 0 10px 18px rgba(7,25,76,.04);
  transition: transform .18s ease, border-color .18s ease, background .18s ease;
}

.restaurant-chip:hover,
.filter-chip:hover,
.restaurant-chip.active,
.filter-chip.active {
  color: #fff;
  border-color: transparent;
  background: linear-gradient(90deg, #0d5bd1, #31c5ff);
}

.restaurant-chip small,
.filter-chip small {
  opacity: .78;
}

.product-card-modern {
  padding-top: .9rem;
}

.product-visual {
  position: relative;
  min-height: 118px;
  border-radius: 20px;
  margin-bottom: 1rem;
  padding: 1rem;
  overflow: hidden;
  background:
    radial-gradient(circle at top right, rgba(255,255,255,.30), transparent 24%),
    radial-gradient(circle at bottom left, rgba(255,255,255,.18), transparent 22%),
    linear-gradient(135deg, color-mix(in srgb, var(--accent-color, #0d5bd1) 88%, #051533) 0%, #07194c 100%);
  color: #fff;
}

.product-visual::after {
  content: "";
  position: absolute;
  right: -28px;
  bottom: -28px;
  width: 120px;
  height: 120px;
  background: rgba(255,255,255,.06);
  border-radius: 50%;
}

.product-visual-logo {
  width: 46px;
  height: 46px;
  border-radius: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
  font-size: 1rem;
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.18);
  box-shadow: 0 12px 24px rgba(0,0,0,.16);
}

.product-visual-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
}

.product-visual-category {
  font-size: .84rem;
  opacity: .82;
}

.product-badges {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin-top: .85rem;
}

.product-badges .summary-pill {
  background: rgba(255,255,255,.12);
  border-color: rgba(255,255,255,.18);
  color: #fff;
}

.product-card .price {
  font-size: 1.3rem;
}

.product-card .btn {
  min-width: 124px;
}

.menu-section {
  scroll-margin-top: 130px;
}

.menu-section .section-title {
  margin-bottom: 1.1rem;
}

.service-choice {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: .95rem;
  align-items: center;
  padding: 1rem 1.05rem;
  border: 1px solid #e4ebf8;
  border-radius: 22px;
  background: linear-gradient(180deg, #fff, #fbfdff);
  cursor: pointer;
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.service-choice + .service-choice {
  margin-top: .75rem;
}

.service-choice:hover {
  transform: translateY(-1px);
  border-color: rgba(13,91,209,.28);
}

.service-choice.is-selected {
  border-color: rgba(13,91,209,.35);
  box-shadow: 0 16px 34px rgba(13,91,209,.09);
  background: linear-gradient(180deg, #f8fbff, #eef5ff);
}

.service-choice input {
  width: 20px;
  height: 20px;
  accent-color: #0d5bd1;
}

.service-choice-icon {
  width: 48px;
  height: 48px;
  border-radius: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, rgba(13,91,209,.12), rgba(49,197,255,.18));
  color: #0d3d97;
  font-size: 1.25rem;
}

.service-choice-price {
  padding: .5rem .75rem;
  border-radius: 999px;
  background: #fff;
  border: 1px solid #e0e8fa;
  color: #0f3d96;
  font-weight: 800;
  white-space: nowrap;
}

.order-card-soft {
  border: 1px solid #e8eef9;
  border-radius: 22px;
  padding: 1rem;
  background: linear-gradient(180deg, #fff, #fcfdff);
}

.order-card-soft + .order-card-soft {
  margin-top: .85rem;
}

.price-summary-card {
  display: grid;
  gap: .7rem;
}

.price-summary-row {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: center;
}

.price-summary-row.total {
  padding-top: .8rem;
  border-top: 1px dashed #dbe5f4;
  font-size: 1.08rem;
  font-weight: 900;
}

.sticky-checkout-bar {
  position: fixed;
  left: 12px;
  right: 12px;
  bottom: calc(14px + env(safe-area-inset-bottom));
  z-index: 1060;
  display: none;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .9rem 1rem;
  border-radius: 24px;
  background: rgba(7,25,76,.94);
  border: 1px solid rgba(255,255,255,.08);
  box-shadow: 0 24px 60px rgba(7,25,76,.24);
  backdrop-filter: blur(18px);
  color: #fff;
}

.sticky-checkout-bar .btn {
  min-width: 144px;
}

.app-empty-state {
  padding: 1.1rem 1.15rem;
  border-radius: 20px;
  border: 1px dashed #d7e1f4;
  background: linear-gradient(180deg, #fbfdff, #f6f9ff);
  color: #6f809f;
}

.table-select-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 1rem;
}

.table-select-card {
  min-height: 180px;
  border-radius: 24px;
  padding: 1rem;
  background: linear-gradient(180deg, #fff, #fbfdff);
  border: 1px solid #e3e9f7;
  box-shadow: 0 16px 34px rgba(7,25,76,.06);
}

.role-chip {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .45rem .72rem;
  border-radius: 999px;
  background: rgba(255,255,255,.09);
  border: 1px solid rgba(255,255,255,.14);
  color: rgba(255,255,255,.84);
  font-size: .8rem;
  font-weight: 700;
}

.bottom-app-nav {
  background: rgba(8,19,50,.94);
  border-top: 1px solid rgba(255,255,255,.08);
  box-shadow: 0 -16px 32px rgba(7,25,76,.22);
}

.bottom-app-nav .nav-link {
  position: relative;
  min-width: 84px;
  padding: .55rem .25rem .4rem;
  color: rgba(255,255,255,.66);
}

.bottom-app-nav .nav-link i {
  width: 42px;
  height: 42px;
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,.04);
  font-size: 1.12rem;
}

.bottom-app-nav .nav-link.active,
.bottom-app-nav .nav-link:hover {
  color: #fff;
}

.bottom-app-nav .nav-link.active i,
.bottom-app-nav .nav-link:hover i {
  background: linear-gradient(135deg, rgba(255,138,0,.28), rgba(49,197,255,.26));
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.06), 0 10px 20px rgba(0,0,0,.18);
}

.hero-action-row {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
}

.glass-note {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .7rem .95rem;
  border-radius: 18px;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.14);
}

.stat-pair {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: center;
  padding: .82rem .95rem;
  border-radius: 18px;
  background: #f8fbff;
  border: 1px solid #e5edf8;
}

.order-card .badge,
.segment-line .badge {
  box-shadow: 0 10px 18px rgba(7,25,76,.08);
}

.segment-line {
  position: relative;
  overflow: hidden;
}

.segment-line::after {
  content: "";
  position: absolute;
  right: -28px;
  top: -28px;
  width: 96px;
  height: 96px;
  border-radius: 50%;
  background: rgba(255,255,255,.06);
}

.login-card {
  background: linear-gradient(180deg, rgba(255,255,255,.99), rgba(252,253,255,.96));
}

@media (min-width: 992px) {
  .app-nav {
    margin: 10px 12px 0;
    border-radius: 24px;
  }

  .menu-toolbar {
    top: 100px;
  }
}

@media (max-width: 991.98px) {
  .app-main {
    padding-bottom: 108px;
  }

  .sticky-checkout-bar.is-visible {
    display: flex;
  }

  .menu-toolbar {
    top: 84px;
  }
}

@media (max-width: 767.98px) {
  .app-nav {
    margin: 0;
    border-radius: 0 0 24px 24px;
  }

  .app-nav .container-fluid {
    min-height: 72px;
  }

  .hero-card {
    padding: 1.25rem !important;
  }

  .hero-logo {
    max-width: 220px;
    border-radius: 22px;
  }

  .restaurant-chip,
  .filter-chip {
    padding: .68rem .9rem;
  }

  .service-choice {
    grid-template-columns: 1fr;
  }

  .service-choice input {
    order: -1;
  }

  .service-choice-price {
    justify-self: start;
  }

  .table-select-card {
    min-height: 150px;
  }
}

/* === UX Premium V4 === */
.quick-action-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}

.action-tile {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: .9rem;
  align-items: center;
  padding: 1rem 1.05rem;
  border-radius: 24px;
  text-decoration: none;
  color: inherit;
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(251,253,255,.95));
  border: 1px solid rgba(223,231,244,.86);
  box-shadow: 0 16px 34px rgba(7,25,76,.06);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  overflow: hidden;
}

.action-tile::after {
  content: "";
  position: absolute;
  inset: auto -28px -28px auto;
  width: 90px;
  height: 90px;
  border-radius: 50%;
  background: rgba(49,197,255,.08);
}

.action-tile:hover {
  transform: translateY(-2px);
  border-color: rgba(13,91,209,.22);
  box-shadow: 0 24px 46px rgba(7,25,76,.10);
}

.action-tile-icon {
  width: 56px;
  height: 56px;
  border-radius: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, rgba(255,138,0,.16), rgba(49,197,255,.18));
  color: #0d3b93;
  font-size: 1.35rem;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.22);
}

.action-tile-arrow {
  width: 34px;
  height: 34px;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(7,25,76,.06);
  color: #173a87;
  font-size: 1rem;
}

.action-tile .tile-title {
  font-weight: 900;
  color: #132756;
}

.action-tile .tile-caption {
  color: #6f80a0;
  font-size: .9rem;
}

.surface-grid {
  display: grid;
  gap: 1rem;
}

.surface-grid.cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.surface-grid.cols-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.stat-stack {
  display: grid;
  gap: .85rem;
}

.stat-row {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: center;
  padding: .9rem 1rem;
  border-radius: 18px;
  background: linear-gradient(180deg, #fff, #fafcff);
  border: 1px solid #e6edf9;
}

.stat-row .label {
  color: #6f809d;
  font-size: .9rem;
}

.stat-row .value {
  font-weight: 900;
  color: #142b5c;
}

.workspace-title {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.1rem;
}

.workspace-title .caption {
  color: #7585a4;
  max-width: 58ch;
}

.kicker {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .42rem .72rem;
  border-radius: 999px;
  background: rgba(13,91,209,.08);
  color: #194fb4;
  font-weight: 800;
  font-size: .82rem;
}

.feed-list {
  display: grid;
  gap: .9rem;
}

.feed-item {
  padding: 1rem 1.05rem;
  border-radius: 20px;
  border: 1px solid #e8eef8;
  background: linear-gradient(180deg, #fff, #fbfdff);
}

.feed-item.is-soft {
  background: linear-gradient(180deg, #f8fbff, #f2f7ff);
}

.feed-meta {
  color: #7484a2;
  font-size: .85rem;
}

.queue-layout {
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  gap: 1rem;
}

.task-card {
  border-radius: 22px;
  border: 1px solid #e8eef9;
  background: linear-gradient(180deg, #fff, #fcfdff);
  box-shadow: 0 16px 32px rgba(7,25,76,.06);
  padding: 1rem;
}

.task-card + .task-card {
  margin-top: 1rem;
}

.task-card-head {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: flex-start;
  margin-bottom: .9rem;
}

.task-card-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
}

.task-chip {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .45rem .78rem;
  border-radius: 999px;
  font-size: .82rem;
  font-weight: 800;
  background: #f7fbff;
  border: 1px solid #e1e9fb;
  color: #24416f;
}

.task-chip.is-live {
  background: rgba(11,178,106,.12);
  border-color: rgba(11,178,106,.18);
  color: #0b7a4b;
}

.task-chip.is-warn {
  background: rgba(255,193,7,.18);
  border-color: rgba(255,193,7,.26);
  color: #8b6610;
}

.task-meta-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .8rem;
}

.task-meta {
  padding: .8rem .9rem;
  border-radius: 18px;
  background: #f9fbff;
  border: 1px solid #e7eef9;
}

.task-meta .meta-label {
  color: #7383a0;
  font-size: .8rem;
  margin-bottom: .15rem;
}

.task-meta .meta-value {
  color: #122958;
  font-weight: 900;
}

.admin-module-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 1rem;
}

.module-tile {
  display: block;
  padding: 1rem;
  border-radius: 24px;
  text-decoration: none;
  color: inherit;
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(250,252,255,.95));
  border: 1px solid #e4ebf8;
  box-shadow: 0 16px 34px rgba(7,25,76,.05);
}

.module-tile:hover {
  transform: translateY(-2px);
  box-shadow: 0 24px 46px rgba(7,25,76,.10);
}

.module-icon {
  width: 52px;
  height: 52px;
  border-radius: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, rgba(13,91,209,.14), rgba(49,197,255,.18));
  color: #0f3b95;
  font-size: 1.2rem;
  margin-bottom: .8rem;
}

.inventory-pill {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .42rem .7rem;
  border-radius: 999px;
  font-size: .78rem;
  font-weight: 800;
}

.inventory-pill.ok {
  background: rgba(11,178,106,.12);
  color: #0e7a4c;
}

.inventory-pill.low {
  background: rgba(255,193,7,.18);
  color: #8a6210;
}

.inventory-pill.empty {
  background: rgba(220,53,69,.12);
  color: #b32d43;
}

.premium-table {
  padding: .3rem;
  border-radius: 24px;
  background: linear-gradient(180deg, #fff, #fbfdff);
  border: 1px solid #e5ecf8;
  box-shadow: 0 14px 34px rgba(7,25,76,.05);
}

.premium-table .table {
  margin-bottom: 0;
}

.note-inline {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  color: #6f809d;
  font-size: .86rem;
}

.section-header-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: .7rem;
  margin-bottom: 1.2rem;
}

.section-header-tabs a {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .68rem .95rem;
  border-radius: 999px;
  background: #f7faff;
  border: 1px solid #e2ebfb;
  color: #183669;
  font-weight: 800;
  text-decoration: none;
}

.section-header-tabs a:hover {
  background: linear-gradient(90deg, #0d5bd1, #31c5ff);
  color: #fff;
  border-color: transparent;
}

.surface-note {
  padding: .95rem 1rem;
  border-radius: 18px;
  background: linear-gradient(180deg, #f9fbff, #f2f7ff);
  border: 1px solid #dfeafb;
  color: #23406d;
}

@media (max-width: 1199.98px) {
  .quick-action-grid,
  .admin-module-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .queue-layout,
  .surface-grid.cols-3 {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 991.98px) {
  .surface-grid.cols-2,
  .task-meta-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 767.98px) {
  .quick-action-grid,
  .admin-module-grid {
    grid-template-columns: 1fr;
  }

  .action-tile {
    grid-template-columns: auto 1fr;
  }

  .action-tile-arrow {
    display: none;
  }

  .workspace-title {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* === UX Refresh 3.2 === */
.compact-hero .display-5,
.compact-hero .display-6 {
  max-width: 12ch;
}

.compact-copy {
  max-width: 34rem;
  font-size: 1rem;
}

.compact-card .small,
.compact-toolbar .form-label,
.metric-caption {
  line-height: 1.35;
}

.demo-access-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .9rem;
}

.demo-access-card {
  width: 100%;
  text-align: left;
  border: 1px solid #dce6f6;
  border-radius: 22px;
  background: linear-gradient(180deg, #fff, #f9fbff);
  padding: 1rem;
  display: grid;
  gap: .8rem;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.demo-access-card:hover,
.demo-access-card:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 18px 34px rgba(7,25,76,.08);
  border-color: rgba(13,91,209,.28);
}

.demo-access-head {
  display: flex;
  gap: .85rem;
  align-items: center;
}

.demo-access-icon {
  width: 48px;
  height: 48px;
  border-radius: 16px;
  background: linear-gradient(135deg, rgba(13,91,209,.12), rgba(49,197,255,.22));
  color: #0b3b95;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
}

.demo-access-pass {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  border-radius: 999px;
  background: #0f1d48;
  color: #fff;
  font-weight: 800;
  padding: .45rem .9rem;
}

.onboarding-modal-shell {
  border: 0;
  border-radius: 30px;
  overflow: hidden;
  box-shadow: 0 32px 80px rgba(7,25,76,.26);
  background:
    radial-gradient(circle at top right, rgba(49,197,255,.12), transparent 22%),
    radial-gradient(circle at bottom left, rgba(255,191,26,.10), transparent 26%),
    #fff;
}

.onboarding-step-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.onboarding-step-card {
  position: relative;
  min-height: 220px;
  padding: 1.15rem;
  border-radius: 24px;
  border: 1px solid #e5edf8;
  background: linear-gradient(180deg, #fff, #f9fbff);
  box-shadow: 0 14px 32px rgba(7,25,76,.05);
}

.onboarding-step-index {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 34px;
  height: 34px;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--rd-orange), var(--rd-gold));
  color: #14213f;
  font-weight: 900;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.onboarding-step-icon {
  width: 58px;
  height: 58px;
  border-radius: 20px;
  margin-bottom: 1rem;
  background: linear-gradient(135deg, rgba(13,91,209,.14), rgba(49,197,255,.24));
  color: #0d3d97;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
}

.metric-card,
.action-tile,
.table-select-card,
.demo-access-card,
.onboarding-step-card,
.service-choice,
.order-card,
.product-card,
.panel-card {
  will-change: transform;
}

.app-nav .navbar-collapse {
  max-height: calc(100vh - 90px);
  overflow-y: auto;
}

@media (max-width: 991.98px) {
  .demo-access-grid,
  .onboarding-step-grid {
    grid-template-columns: 1fr;
  }

  .compact-hero .display-5,
  .compact-hero .display-6 {
    max-width: none;
  }

  .menu-toolbar {
    border-radius: 22px;
  }
}

@media (max-width: 767.98px) {
  .app-main {
    padding-bottom: 118px;
  }

  .container,
  .container-fluid {
    --bs-gutter-x: 1rem;
  }

  .hero-card,
  .panel-card,
  .order-card,
  .product-card,
  .metric-card,
  .login-card,
  .table-select-card {
    border-radius: 22px;
  }

  .hero-card {
    padding: 1.15rem !important;
  }

  .hero-action-row .btn,
  .d-grid .btn,
  .btn.btn-lg {
    width: 100%;
  }

  .hero-mini,
  .metric-card {
    min-height: auto;
  }

  .section-title {
    font-size: 1.02rem;
  }

  .price {
    font-size: 1.15rem !important;
  }

  .product-card .btn,
  .service-choice-price {
    width: 100%;
    justify-content: center;
  }

  .table-select-grid {
    grid-template-columns: 1fr;
  }

  .table-select-card {
    min-height: 148px;
  }

  .menu-toolbar {
    position: static;
  }

  .bottom-app-nav .nav-link {
    min-width: 0;
  }
}

@media (max-width: 575.98px) {
  .app-nav .container-fluid {
    padding-left: .75rem !important;
    padding-right: .75rem !important;
  }

  .nav-logo {
    width: 40px;
    height: 40px;
    border-radius: 12px;
  }

  .brand-name {
    font-size: .96rem;
  }

  .hero-logo {
    max-width: 180px;
  }

  .demo-access-card,
  .service-choice,
  .modifier-group,
  .stat-pair,
  .app-empty-state {
    border-radius: 18px;
  }

  .sticky-checkout-bar {
    left: 10px;
    right: 10px;
    bottom: calc(10px + env(safe-area-inset-bottom));
    padding: .82rem .9rem;
  }
}

.table-live-panel {
  border: 1px solid rgba(13,91,209,.12);
  background: linear-gradient(180deg, #fff, #f8fbff);
}

.table-live-panel .progress {
  border-radius: 999px;
  overflow: hidden;
}

.table-live-panel .progress-bar {
  background: linear-gradient(90deg, var(--rd-orange), var(--rd-cyan));
}

.table-live-empty {
  padding: 1rem 1.1rem;
  border-radius: 20px;
  background: #f6f9ff;
  color: #5f6f90;
  border: 1px dashed rgba(13,91,209,.18);
}

.table-live-meta {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
}

.table-live-panel.is-empty [data-role="tracking-link"] {
  display: none !important;
}

.bottom-app-nav .d-flex {
  gap: .15rem;
}

.bottom-app-nav .nav-link {
  flex: 1 1 0;
  min-width: 0;
}

@media (max-width: 767.98px) {
  .table-live-panel {
    position: sticky;
    top: 78px;
    z-index: 25;
  }

  .table-live-panel .btn {
    width: 100%;
  }
}


.restaurant-avatar,
.restaurant-avatar-preview,
.restaurant-chip-avatar,
.product-visual-logo-image {
  display: inline-block;
  object-fit: cover;
  background: linear-gradient(135deg, rgba(7,25,76,.12), rgba(13,44,122,.06));
  border: 1px solid rgba(7,25,76,.08);
}

.restaurant-avatar {
  width: 64px;
  height: 64px;
  border-radius: 18px;
  box-shadow: 0 14px 30px rgba(7,25,76,.12);
}

.restaurant-avatar-sm {
  width: 52px;
  height: 52px;
  border-radius: 16px;
}

.restaurant-avatar-lg {
  width: 76px;
  height: 76px;
  border-radius: 24px;
  box-shadow: 0 18px 34px rgba(7,25,76,.16);
}

.restaurant-avatar-preview {
  width: 72px;
  height: 72px;
  border-radius: 20px;
}

.restaurant-admin-header {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.restaurant-chip {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
}

.restaurant-chip-avatar {
  width: 26px;
  height: 26px;
  border-radius: 10px;
}

.product-visual-logo-image {
  width: 46px;
  height: 46px;
  border-radius: 14px;
  box-shadow: 0 10px 24px rgba(7,25,76,.18);
}

.product-card-modern,
.business-card,
.order-card,
.panel-card {
  content-visibility: auto;
  contain-intrinsic-size: 280px;
}

@media (max-width: 767.98px) {
  .restaurant-avatar {
    width: 54px;
    height: 54px;
    border-radius: 16px;
  }

  .restaurant-avatar-lg,
  .restaurant-avatar-preview {
    width: 64px;
    height: 64px;
    border-radius: 18px;
  }
}


/* === UX Refresh 4.0 · textos de uso y fluidez === */
.field-stack {
  display: grid;
  gap: .38rem;
}

.field-stack .form-label {
  margin-bottom: 0;
  font-weight: 800;
  color: #1f3868;
  font-size: .92rem;
}

.field-stack .form-label.small {
  font-size: .82rem;
}

.field-hint {
  font-size: .79rem;
  color: #70809f;
  line-height: 1.38;
}

.field-hint strong {
  color: #173264;
}

.form-subtitle {
  color: #6f809d;
  font-size: .88rem;
  line-height: 1.45;
}

.form-section-note {
  padding: .9rem 1rem;
  border-radius: 18px;
  background: linear-gradient(180deg, #f9fbff, #f3f8ff);
  border: 1px solid #dfe9fb;
  color: #24416d;
  font-size: .84rem;
  line-height: 1.46;
}

.check-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: .75rem;
}

.check-card {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: .75rem;
  min-height: 100%;
  padding: .95rem 1rem;
  border-radius: 20px;
  border: 1px solid #dfe8f6;
  background: linear-gradient(180deg, #fff, #f9fbff);
  cursor: pointer;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
}

.check-card:hover {
  transform: translateY(-1px);
  box-shadow: 0 14px 28px rgba(7,25,76,.06);
}

.check-card input {
  margin-top: .2rem;
  flex: 0 0 auto;
}

.check-card-title {
  display: block;
  font-weight: 900;
  color: #173266;
  line-height: 1.2;
}

.check-card-copy {
  display: block;
  margin-top: .18rem;
  font-size: .78rem;
  color: #7383a0;
  line-height: 1.35;
}

.check-card.is-active,
.check-card:has(input:checked) {
  border-color: rgba(13,91,209,.28);
  box-shadow: 0 14px 30px rgba(13,91,209,.08);
  background: linear-gradient(180deg, #fff, #edf5ff);
}

.product-edit-grid {
  display: grid;
  gap: .85rem;
}

.product-edit-grid .row {
  --bs-gutter-y: .85rem;
}

.inventory-grid {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(120px, 1fr) minmax(120px, 1fr) minmax(120px, auto);
  gap: .85rem;
  align-items: end;
}

.inventory-grid .field-stack,
.product-edit-grid .field-stack {
  min-width: 0;
}

.form-divider-title {
  font-size: .82rem;
  font-weight: 900;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: #6d7f9f;
}

.live-caption {
  font-size: .8rem;
  color: #6f819d;
}

.table-live-panel.live-updated {
  box-shadow: 0 0 0 2px rgba(49,197,255,.12), 0 18px 40px rgba(7,25,76,.12);
}

@media (max-width: 767.98px) {
  .check-card-grid,
  .inventory-grid {
    grid-template-columns: 1fr;
  }

  .field-stack .form-label {
    font-size: .86rem;
  }

  .form-section-note {
    font-size: .81rem;
  }
}

/* V8 landing + reservas */
.landing-hero {
  overflow: hidden;
}

.hero-copy {
  max-width: 680px;
  color: rgba(255,255,255,.84);
  font-size: 1.05rem;
}

.countdown-shell {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.9rem;
}

.countdown-card {
  padding: 1rem 1.1rem;
  border-radius: 1.25rem;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.16);
  backdrop-filter: blur(12px);
  text-align: center;
  box-shadow: 0 18px 40px rgba(5,18,52,.18);
}

.countdown-value {
  font-size: clamp(1.8rem, 3vw, 2.5rem);
  font-weight: 900;
  line-height: 1;
  letter-spacing: -.04em;
}

.countdown-label {
  margin-top: .45rem;
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .14em;
  color: rgba(255,255,255,.74);
}

.landing-brand-card {
  padding: 1.35rem;
  border-radius: 1.5rem;
  background: linear-gradient(180deg, rgba(255,255,255,.18), rgba(255,255,255,.08));
  border: 1px solid rgba(255,255,255,.16);
  box-shadow: 0 24px 56px rgba(5,18,52,.22);
}

.landing-location-badge {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .55rem .9rem;
  border-radius: 999px;
  background: rgba(255,255,255,.14);
  color: #fff;
  font-weight: 700;
}

.landing-free-now {
  display: flex;
  align-items: baseline;
  gap: .65rem;
}

.landing-free-number {
  font-size: clamp(2.3rem, 4.8vw, 4rem);
  font-weight: 900;
  line-height: 1;
}

.landing-free-text {
  color: rgba(255,255,255,.74);
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: .8rem;
}

.availability-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .8rem;
  padding: 1rem;
  border-radius: 1.2rem;
  background: rgba(8,29,84,.045);
  border: 1px solid rgba(8,29,84,.08);
}

.availability-badge {
  font-weight: 700;
}

.reservation-table-card {
  border-radius: 1.2rem;
  border: 1px solid rgba(8,29,84,.08);
  background: #fff;
  padding: 1rem;
  box-shadow: 0 14px 26px rgba(9,25,62,.06);
}

.event-card {
  border-radius: 1.3rem;
  padding: 1rem;
  height: 100%;
  background: linear-gradient(180deg, #ffffff, #f5f8ff);
  border: 1px solid rgba(8,29,84,.08);
  box-shadow: 0 14px 26px rgba(9,25,62,.06);
}

@media (max-width: 991.98px) {
  .countdown-shell,
  .availability-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 575.98px) {
  .countdown-shell,
  .availability-strip {
    grid-template-columns: 1fr;
  }

  .landing-brand-card {
    text-align: left !important;
  }
}


/* V12 responsive native-feel nav */
.nav-brand-wrap {
  min-width: 0;
  max-width: min(72vw, 420px);
}

.nav-brand-wrap > span {
  min-width: 0;
}

.brand-name,
.brand-sub {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nav-role-pill {
  opacity: .9;
}

.nav-mobile-user {
  display: flex;
  align-items: center;
  gap: .85rem;
  padding: .9rem 1rem;
  margin: .25rem 0 .5rem;
  border-radius: 20px;
  color: #fff;
  background: linear-gradient(135deg, rgba(255,255,255,.10), rgba(255,255,255,.04));
  border: 1px solid rgba(255,255,255,.10);
}

.nav-mobile-user-icon {
  width: 42px;
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 14px;
  background: rgba(255,255,255,.12);
  font-size: 1.1rem;
}

.nav-mobile-user-role {
  font-size: .74rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: rgba(255,255,255,.72);
}

.nav-mobile-user-name {
  font-weight: 900;
  line-height: 1.2;
}

@media (max-width: 991.98px) {
  body.menu-open {
    overflow: hidden;
  }

  .app-nav {
    border-radius: 0 0 22px 22px;
  }

  .app-nav .container-fluid {
    align-items: center;
  }

  .app-nav .navbar-collapse,
  .app-mobile-collapse {
    margin-top: .8rem;
    padding: .85rem;
    border-radius: 22px;
    background: linear-gradient(180deg, rgba(8,24,69,.97), rgba(11,39,108,.96));
    border: 1px solid rgba(255,255,255,.08);
    box-shadow: 0 18px 36px rgba(4, 18, 54, .28);
  }

  .app-nav .navbar-nav {
    gap: .45rem;
    align-items: stretch !important;
  }

  .app-nav .navbar-nav .nav-link,
  .app-nav .navbar-nav .btn {
    width: 100%;
    min-height: 50px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .95rem 1rem;
    border-radius: 18px;
  }

  .app-nav .navbar-nav .nav-link::after {
    content: "›";
    font-size: 1.2rem;
    opacity: .5;
  }

  .app-nav .navbar-nav .nav-link.active::after,
  .app-nav .navbar-nav .nav-link:hover::after {
    opacity: .9;
  }

  .app-nav .navbar-nav .btn {
    justify-content: center;
  }

  .btn-notification {
    width: 42px;
    height: 42px;
    border-radius: 14px;
  }

  .notification-menu {
    position: fixed !important;
    inset: 78px 12px auto 12px !important;
    width: auto;
    max-height: calc(100vh - 104px);
  }
}

@media (max-width: 767.98px) {
  .app-nav .container-fluid {
    min-height: 68px;
  }

  .nav-brand-wrap {
    max-width: calc(100vw - 128px);
    gap: .7rem;
  }

  .nav-logo {
    width: 40px;
    height: 40px;
    border-radius: 12px;
  }

  .brand-name {
    font-size: 1rem;
  }

  .brand-sub {
    display: none;
  }

  .bottom-app-nav {
    left: 8px;
    right: 8px;
    bottom: 8px;
    border-radius: 22px;
    border: 1px solid rgba(13, 91, 209, .08);
    padding: .45rem .35rem calc(.45rem + env(safe-area-inset-bottom));
    box-shadow: 0 16px 42px rgba(7, 25, 76, .18);
  }

  .bottom-app-nav .d-flex {
    gap: .25rem;
  }

  .bottom-app-nav .nav-link {
    min-height: 58px;
    justify-content: center;
    border-radius: 16px;
    font-size: .72rem;
    padding: .45rem .2rem;
  }

  .bottom-app-nav .nav-link i {
    font-size: 1.1rem;
    margin-bottom: .05rem;
  }

  .bottom-app-nav .nav-link.active,
  .bottom-app-nav .nav-link:hover {
    background: linear-gradient(180deg, rgba(13,91,209,.10), rgba(13,91,209,.05));
  }

  .app-main {
    padding-bottom: 120px;
  }
}

@media (max-width: 575.98px) {
  .app-nav {
    border-radius: 0 0 18px 18px;
  }

  .app-nav .container-fluid {
    padding-left: .75rem !important;
    padding-right: .75rem !important;
  }

  .app-nav .navbar-nav .nav-link,
  .app-nav .navbar-nav .btn {
    min-height: 48px;
    padding: .9rem .95rem;
  }
}

/* === UX Refresh 13.0 Native order flow === */
.order-count-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 32px;
  height: 32px;
  padding: 0 .7rem;
  border-radius: 999px;
  background: rgba(7, 25, 76, .14);
  color: #14213f;
  font-weight: 900;
}

.quick-order-hint {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .82rem 1rem;
  border-radius: 18px;
  background: linear-gradient(180deg, #f8fbff, #eef5ff);
  border: 1px solid rgba(13,91,209,.12);
  color: #234274;
  font-size: .92rem;
}

.product-card-footer {
  display: grid;
  gap: .65rem;
}

.quick-order-bar {
  display: grid;
  grid-template-columns: 116px minmax(0, 1fr);
  gap: .65rem;
  align-items: stretch;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.quick-order-bar.is-added {
  transform: scale(1.01);
}

.qty-stepper {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr) 40px;
  align-items: center;
  border-radius: 18px;
  border: 1px solid #dce6f6;
  background: #fff;
  overflow: hidden;
  min-height: 50px;
}

.qty-stepper-btn {
  border: 0;
  background: transparent;
  color: #11357b;
  font-size: 1.05rem;
  font-weight: 900;
  width: 100%;
  height: 100%;
}

.qty-stepper-btn:hover,
.qty-stepper-btn:focus-visible {
  background: rgba(13,91,209,.08);
}

.qty-stepper-input {
  border: 0;
  text-align: center;
  font-weight: 900;
  color: #0c255b;
  min-width: 0;
  width: 100%;
  background: transparent;
}

.qty-stepper-input:focus {
  outline: none;
  box-shadow: none;
}

.qty-stepper-large {
  max-width: 260px;
}

.quick-add-submit {
  min-height: 50px;
  border-radius: 18px;
  font-weight: 900;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
}

.menu-native-page .product-card-modern {
  border-radius: 24px;
  overflow: hidden;
}

.menu-native-page .product-card-modern .text-muted.small {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.menu-native-page .table-live-panel {
  box-shadow: 0 18px 36px rgba(7,25,76,.08);
}

.product-native-page .hero-card {
  min-height: auto;
}

.product-config-panel {
  box-shadow: 0 18px 36px rgba(7,25,76,.08);
}

.product-config-form-native {
  gap: 1.1rem;
}

.product-summary-native {
  border-radius: 22px;
}

.native-field-block {
  display: grid;
  gap: .55rem;
}

.modifier-group-native {
  border-radius: 24px;
  padding: 1rem;
}

.modifier-option-native {
  min-height: 64px;
  border-radius: 18px;
}

.product-config-actions {
  display: grid;
  gap: .75rem;
  position: sticky;
  bottom: 12px;
  padding-top: .25rem;
}

.order-native-page .section-tabs {
  margin-bottom: 1.25rem;
}

.order-native-page .order-card-soft .btn {
  min-width: 108px;
}

@media (min-width: 768px) and (max-width: 1199.98px) {
  .tablet-mode .menu-section .col-md-6 {
    width: 50%;
  }
}

@media (max-width: 991.98px) {
  .quick-order-bar {
    grid-template-columns: 106px minmax(0, 1fr);
  }

  .product-config-actions {
    position: static;
  }
}

@media (max-width: 767.98px) {
  .menu-native-page .hero-card .compact-copy,
  .product-native-page .hero-card .lead,
  .order-native-page .hero-card .lead {
    font-size: .95rem;
  }

  .menu-native-page .hero-action-row,
  .product-native-page .hero-action-row {
    display: grid;
    gap: .75rem;
  }

  .quick-order-hint {
    width: 100%;
    align-items: flex-start;
  }

  .quick-order-bar {
    grid-template-columns: 1fr;
  }

  .qty-stepper,
  .quick-add-submit,
  .product-config-actions .btn {
    min-height: 52px;
  }

  .menu-native-page .product-card-modern .btn,
  .product-native-page .panel-card .btn,
  .order-native-page .panel-card .btn {
    border-radius: 18px;
  }

  .menu-native-page .product-card-modern {
    padding: .9rem !important;
  }

  .menu-native-page .product-card-modern .text-muted.small {
    -webkit-line-clamp: 2;
  }

  .product-summary-native,
  .quick-order-hint,
  .modifier-group-native {
    border-radius: 20px;
  }
}

/* === V13 UX / native order flow === */
.order-count-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 28px;
  height: 28px;
  padding: 0 .55rem;
  margin-left: .4rem;
  border-radius: 999px;
  background: rgba(7, 25, 76, .14);
  color: #07194c;
  font-weight: 900;
}

.menu-shell .alert {
  box-shadow: 0 16px 36px rgba(7,25,76,.08);
}

.menu-hero-simple .hero-action-row {
  align-items: center;
  flex-wrap: wrap;
}

.hero-order-summary {
  min-height: 150px;
}

.product-card-order {
  border: 1px solid rgba(13,91,209,.08);
  overflow: hidden;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.product-card-order:hover {
  transform: translateY(-2px);
  box-shadow: 0 18px 40px rgba(7,25,76,.08);
}

.product-card-order.is-added {
  border-color: rgba(35, 173, 74, .34);
  box-shadow: 0 18px 42px rgba(35,173,74,.12);
}

.product-card-restaurant {
  font-weight: 900;
  line-height: 1.15;
}

.product-card-category {
  font-size: .78rem;
  color: rgba(255,255,255,.82);
}

.product-description {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 3.75rem;
}

.product-channel-chips {
  min-height: 28px;
}

.price-stack {
  display: grid;
  gap: .12rem;
}

.product-card-footer {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: .9rem;
  flex-wrap: wrap;
}

.product-actions {
  display: grid;
  grid-template-columns: 1fr;
  gap: .55rem;
  width: min(100%, 260px);
}

.product-actions-dual {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  width: 100%;
}

.quick-add-form,
.quick-add-form .btn,
.product-actions .btn {
  width: 100%;
}

.btn-touch {
  min-height: 50px;
  border-radius: 16px;
  font-weight: 900;
}

.quick-add-form.is-loading .btn-touch {
  opacity: .92;
}

.product-config-page .hero-card,
.product-config-page .panel-card {
  border-radius: 26px;
}

.product-summary-compact {
  gap: .75rem;
}

.modifier-group-modern {
  padding: 1rem;
  border-radius: 22px;
  border: 1px solid #e4ebf8;
  background: linear-gradient(180deg, #fff, #fbfdff);
}

.modifier-group-modern + .modifier-group-modern {
  margin-top: 1rem;
}

.modifier-check-card {
  min-height: 88px;
  align-items: center;
}

.product-submit-bar {
  z-index: 1080;
}

.app-nav .navbar-toggler {
  width: 44px;
  height: 44px;
  padding: 0;
  border-radius: 14px;
  background: rgba(255,255,255,.08);
}

.app-nav .navbar-toggler:focus {
  box-shadow: 0 0 0 .2rem rgba(255,255,255,.12);
}

@media (max-width: 1199.98px) {
  .product-actions-dual {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 991.98px) {
  .menu-hero-simple .hero-mini {
    min-height: auto;
  }

  .product-card-order {
    border-radius: 24px;
  }

  .product-card-footer {
    align-items: stretch;
  }

  .product-actions,
  .product-actions-dual {
    width: 100%;
  }

  .tablet-mode .product-card-order .btn-touch {
    min-height: 58px;
    font-size: 1rem;
  }

  .tablet-mode .product-card-order {
    padding: 1rem !important;
  }

  .tablet-mode .product-description {
    -webkit-line-clamp: 2;
  }
}

@media (max-width: 767.98px) {
  .menu-shell {
    padding-top: .25rem;
  }

  .menu-hero-simple .compact-copy {
    max-width: none;
  }

  .hero-order-summary {
    min-height: auto;
  }

  .product-visual {
    min-height: 106px;
    padding: .9rem;
    margin-bottom: .85rem;
  }

  .product-description {
    min-height: auto;
    -webkit-line-clamp: 2;
    margin-bottom: .8rem !important;
  }

  .product-card-footer {
    gap: .75rem;
  }

  .price-stack {
    width: 100%;
  }

  .product-actions,
  .product-actions-dual {
    grid-template-columns: 1fr;
    width: 100%;
  }

  .btn-touch,
  .quick-add-form .btn {
    min-height: 54px;
    font-size: .98rem;
  }

  .product-config-page .container,
  .product-config-page .container-fluid {
    --bs-gutter-x: .9rem;
  }

  .modifier-check-card {
    min-height: 78px;
  }
}

@media (max-width: 575.98px) {
  .menu-toolbar .form-select,
  .menu-toolbar .form-control,
  .menu-toolbar .btn,
  .product-config-panel .form-control,
  .product-config-panel .btn,
  .btn-touch {
    min-height: 52px;
  }

  .menu-toolbar .panel-card,
  .modifier-group-modern {
    border-radius: 18px;
  }

  .sticky-checkout-bar,
  .product-submit-bar {
    border-radius: 20px;
  }

  .order-count-pill {
    min-width: 26px;
    height: 26px;
  }
}

/* V14 operaciones: mesa, cocina y experiencia final */
.time-warning-overlay{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:24px;background:rgba(3,12,32,.88);backdrop-filter:blur(16px);}
.time-warning-overlay.d-none{display:none!important}.time-warning-card{width:min(620px,94vw);border-radius:34px;padding:36px;background:linear-gradient(135deg,#06173a,#0d43a7 54%,#ffb300);color:#fff;text-align:center;box-shadow:0 28px 90px rgba(0,0,0,.45);border:1px solid rgba(255,255,255,.18)}
.time-warning-icon{width:82px;height:82px;border-radius:28px;margin:0 auto 16px;display:grid;place-items:center;background:rgba(255,255,255,.13);font-size:42px}.time-warning-kicker{text-transform:uppercase;letter-spacing:.16em;font-size:.78rem;font-weight:900;color:rgba(255,255,255,.72)}.time-warning-card h2{font-weight:1000;font-size:clamp(2rem,5vw,3.8rem);margin:.4rem 0}.time-warning-card p{font-size:1.05rem;color:rgba(255,255,255,.86);max-width:500px;margin:0 auto 18px}.time-countdown{display:inline-flex;align-items:center;justify-content:center;min-width:230px;padding:14px 24px;border-radius:28px;background:rgba(255,255,255,.96);color:#06173a;font-size:clamp(2.6rem,9vw,5rem);font-weight:1000;line-height:1}.time-warning-actions{margin-top:18px}.time-warning-overlay.is-ack{pointer-events:none;opacity:.2}.time-warning-overlay.is-expired .time-warning-card{background:linear-gradient(135deg,#22020b,#b40f2b,#ffb300)}
.kitchen-board{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:18px}.kitchen-card{background:#fff;border:1px solid rgba(14,38,84,.09);border-radius:30px;padding:18px;box-shadow:0 18px 55px rgba(9,26,64,.08)}.kitchen-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.kitchen-status{display:inline-flex;border-radius:999px;padding:.45rem .75rem;font-weight:900;font-size:.78rem;background:#edf2ff;color:#0d2c7a}.kitchen-status-ready{background:#dcfce7;color:#166534}.kitchen-status-pending,.kitchen-status-preparing{background:#fff7ed;color:#9a3412}.kitchen-items{display:grid;gap:10px}.kitchen-item{display:flex;gap:12px;padding:12px;border-radius:20px;background:#f7f9fc}.kitchen-qty{min-width:42px;height:42px;border-radius:16px;background:#06173a;color:#fff;display:grid;place-items:center;font-weight:1000}.printable-ticket{max-width:900px;margin:0 auto}.rating-form .form-select{border-radius:18px;min-height:52px;font-weight:800}.table-live-panel .table-live-meta .summary-pill{background:#f3f7ff}.summary-pill .bi-clock-history{color:#f59e0b}@media print{.app-nav,.bottom-app-nav,.no-print,.btn{display:none!important}.app-main{padding:0!important}.printable-ticket{box-shadow:none!important;border:0!important}.bg-app{background:#fff!important}}
@media (max-width:768px){.kitchen-board{grid-template-columns:1fr}.time-warning-card{padding:26px 18px;border-radius:26px}.time-countdown{min-width:190px}.product-actions{gap:8px}.product-actions .btn{min-height:52px}.menu-shell .panel-card{border-radius:24px}.tablet-mode .product-card{padding:14px!important}.tablet-mode .btn-touch{font-size:1rem}.tablet-mode .search-box .form-control{font-size:1rem}}
.time-warning-overlay.is-ack{display:none!important}

/* V20 production fixes: notifications, floorplan and public board */
.floorplan-admin-wrapper,
.floorplan-public-wrapper {
  overflow: auto;
  border-radius: 28px;
  background: linear-gradient(180deg, rgba(7, 21, 55, .04), rgba(7, 21, 55, .01));
  border: 1px solid rgba(7, 21, 55, .08);
  padding: 1rem;
}

.floorplan-stage {
  position: relative;
  min-height: 600px;
  border-radius: 28px;
  overflow: hidden;
  background-color: #0f172a;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .06);
}

.floorplan-stage::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(255,255,255,.02), rgba(6,23,58,.05));
  pointer-events: none;
}

.floorplan-table {
  position: absolute;
  z-index: 2;
  left: 0;
  top: 0;
  min-width: 126px;
  min-height: 74px;
  display: grid;
  gap: .2rem;
  align-content: center;
  padding: .7rem .85rem;
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.92);
  color: #0b1b46;
  box-shadow: 0 12px 30px rgba(8, 23, 58, .14);
  touch-action: none;
  user-select: none;
  cursor: grab;
  transition: transform .16s ease, box-shadow .16s ease, background .16s ease;
}

.floorplan-table.dragging {
  cursor: grabbing;
  transform: scale(1.04);
  box-shadow: 0 18px 38px rgba(8, 23, 58, .22);
}

.floorplan-table__name {
  display: block;
  font-weight: 1000;
  font-size: 1.05rem;
  line-height: 1.05;
}

.floorplan-table__meta,
.floorplan-table__countdown {
  display: block;
  font-size: .76rem;
  font-weight: 700;
  color: rgba(11, 27, 70, .72);
}

.floorplan-table__countdown {
  font-size: .9rem;
  color: #04173a;
}

.floorplan-table.status-free,
.floorplan-table.state-free {
  background: linear-gradient(180deg, #e8fff1, #d1fae5);
  border-color: #86efac;
}

.floorplan-table.status-occupied,
.floorplan-table.state-occupied,
.floorplan-table.state-checkout {
  background: linear-gradient(180deg, #fff7cc, #fef08a);
  border-color: #facc15;
}

.floorplan-table.state-pending,
.floorplan-table.status-reserved {
  background: linear-gradient(180deg, #e0f2fe, #bfdbfe);
  border-color: #60a5fa;
}

.floorplan-table.state-served {
  background: linear-gradient(180deg, #ecfccb, #d9f99d);
  border-color: #84cc16;
}

.floorplan-table.status-blocked,
.floorplan-table.state-blocked {
  background: linear-gradient(180deg, #fee2e2, #fecaca);
  border-color: #f87171;
}

.floorplan-table.state-expiring {
  background: linear-gradient(180deg, #fef3c7, #fbbf24);
  border-color: #f59e0b;
  animation: floorplanPulse 1s ease-in-out infinite alternate;
}

@keyframes floorplanPulse {
  from { box-shadow: 0 12px 30px rgba(8,23,58,.14); }
  to { box-shadow: 0 18px 44px rgba(245,158,11,.42); }
}

.floorplan-legend-list {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
}

.legend-pill {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  border-radius: 999px;
  padding: .45rem .8rem;
  font-size: .8rem;
  font-weight: 900;
  border: 1px solid rgba(7,21,55,.08);
  background: #fff;
  color: #0b1b46;
}

.legend-pill.free { background: #d1fae5; }
.legend-pill.occupied { background: #fef08a; }
.legend-pill.pending { background: #bfdbfe; }
.legend-pill.served { background: #d9f99d; }
.legend-pill.expiring { background: #fbbf24; color: #111827; }
.legend-pill.blocked { background: #fecaca; }

.floorplan-stage--public {
  border-radius: 34px;
}

.floorplan-table--public {
  min-width: 138px;
  min-height: 82px;
  cursor: default;
}

.floorplan-table--public .floorplan-table__countdown {
  margin-top: .15rem;
  font-size: 1rem;
  font-weight: 1000;
}

.floorplan-public-page .app-main--native {
  padding-top: 0;
}

.floorplan-public-hero {
  border-radius: 30px;
}

.floorplan-legend-list--public {
  justify-content: flex-end;
}

@media (max-width: 991.98px) {
  .floorplan-admin-wrapper,
  .floorplan-public-wrapper {
    padding: .65rem;
  }

  .floorplan-table,
  .floorplan-table--public {
    min-width: 104px;
    min-height: 64px;
    padding: .55rem .65rem;
    border-radius: 14px;
  }

  .floorplan-table__name {
    font-size: .92rem;
  }

  .floorplan-table__meta,
  .floorplan-table__countdown {
    font-size: .68rem;
  }
}

/* V22 definitiva: separación cliente/tablet, mobile sin bloqueos y dashboard operativo */
.client-menu-page .table-live-panel:not(.table-live-panel--force) {
  display: none !important;
}
.client-menu-page .menu-shell {
  padding-bottom: 150px;
}
.table-kiosk-page .menu-shell,
.app-shell-native .container.py-4 {
  padding-bottom: 142px;
}
@media (max-width: 767.98px) {
  .client-menu-page .hero-card.menu-hero-native {
    border-radius: 0 0 28px 28px;
    margin-left: -1rem;
    margin-right: -1rem;
    margin-top: -1rem;
    padding: 1.05rem !important;
  }
  .client-menu-page .menu-hero-native .display-6 {
    font-size: 1.45rem;
    line-height: 1.08;
  }
  .client-menu-page .menu-hero-native .compact-copy,
  .client-menu-page .hero-order-summary {
    display: none !important;
  }
  .client-menu-page .hero-action-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: .65rem;
  }
  .client-menu-page .native-market-grid--compact {
    display: flex;
    overflow-x: auto;
    gap: .75rem;
    padding-bottom: .2rem;
    scroll-snap-type: x proximity;
  }
  .client-menu-page .native-market-grid--compact .native-market-tile {
    min-width: 190px;
    scroll-snap-align: start;
  }
  .client-menu-page .menu-toolbar {
    position: sticky;
    top: 0;
    z-index: 30;
    border-radius: 0 0 24px 24px;
    margin-left: -1rem;
    margin-right: -1rem;
    box-shadow: 0 12px 34px rgba(7, 25, 76, .09);
  }
  .client-menu-page .sticky-checkout-bar {
    bottom: calc(96px + env(safe-area-inset-bottom)) !important;
    z-index: 1040;
  }
  .client-menu-page .bottom-app-nav,
  .client-menu-page .native-bottom-nav,
  .app-shell-native .native-bottom-nav {
    z-index: 1035;
  }
  .table-kiosk-page .table-live-panel--native {
    padding: 1rem !important;
  }
  .table-kiosk-page .tablet-session-status {
    padding: 1rem;
    border-radius: 22px;
  }
  .table-kiosk-page .tablet-session-title {
    font-size: 1.05rem;
    line-height: 1.18;
  }
  .table-kiosk-page .table-live-empty {
    display: none;
  }
  .table-kiosk-page .table-live-empty-actions {
    display: grid !important;
    grid-template-columns: 1fr;
    gap: .65rem;
  }
  .product-card-native {
    scroll-margin-top: 112px;
  }
}
.native-bottom-nav {
  backdrop-filter: blur(18px);
}
.accounting-grid-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
}
.accounting-grid-table th,
.accounting-grid-table td {
  padding: .85rem .9rem;
  border-bottom: 1px solid rgba(15, 36, 86, .08);
  vertical-align: middle;
}
.accounting-grid-table th {
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: #64748b;
  background: #f8fafc;
  position: sticky;
  top: 0;
  z-index: 1;
}
.accounting-grid-table tbody tr:hover {
  background: rgba(13, 91, 209, .035);
}
.accounting-export-actions .btn {
  border-radius: 999px;
  font-weight: 800;
}
.ops-dashboard-strip {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1rem;
}
.ops-dashboard-card {
  border-radius: 28px;
  padding: 1.1rem;
  background: #fff;
  border: 1px solid rgba(14,38,84,.08);
  box-shadow: 0 16px 44px rgba(7,25,76,.07);
}
.ops-dashboard-card .kicker {
  font-size: .76rem;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-weight: 900;
}
.ops-dashboard-card .value {
  font-size: clamp(1.5rem, 4vw, 2.3rem);
  font-weight: 1000;
  color: #07194c;
}
.sound-pulse {
  animation: titaniumSoundPulse .75s ease-out both;
}
@keyframes titaniumSoundPulse {
  from { transform: scale(.985); box-shadow: 0 0 0 0 rgba(255, 179, 0, .30); }
  to { transform: scale(1); box-shadow: 0 0 0 18px rgba(255, 179, 0, 0); }
}


/* V23 definitive UX/admin hardening */
.menu-filter-collapsible {
  display: block;
  border: 0;
}
.menu-filter-collapsible > summary {
  list-style: none;
}
.menu-filter-collapsible > summary::-webkit-details-marker {
  display: none;
}
.menu-filter-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  cursor: pointer;
  font-weight: 800;
  color: #102045;
}
.menu-filter-summary span {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
}
.menu-filter-summary small {
  color: #71809e;
  font-weight: 700;
}
.menu-filter-summary::after {
  content: "Abrir";
  border-radius: 999px;
  padding: .3rem .75rem;
  background: #f2f6ff;
  color: #102045;
  font-size: .78rem;
}
.menu-filter-collapsible[open] .menu-filter-summary::after {
  content: "Cerrar";
}
.cart-wait-reminder {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin: -0.25rem 0 1rem;
  padding: 1rem 1.1rem;
  border-radius: 22px;
  background: #fff7d7;
  border: 1px solid rgba(255, 190, 0, .45);
  box-shadow: 0 12px 32px rgba(15, 25, 55, .08);
  color: #132044;
}
.cart-wait-reminder span {
  color: #66728f;
}
.customer-loading-strip {
  border-radius: 18px;
  padding: .75rem;
  background: rgba(255,255,255,.55);
  border: 1px solid rgba(20, 38, 78, .08);
}
.customer-loading-strip--hero {
  background: rgba(255,255,255,.12);
  color: #fff;
  border-color: rgba(255,255,255,.20);
}
.customer-loading-strip .progress,
.waiter-prep-meter .progress {
  height: 10px;
  border-radius: 999px;
  overflow: hidden;
}
.compact-switch-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
}
.compact-switch-card {
  display: flex;
  align-items: center;
  gap: .7rem;
  min-height: 54px;
  border: 1px solid rgba(15, 29, 58, .12);
  background: #fff;
  border-radius: 16px;
  padding: .7rem .85rem;
  box-shadow: 0 8px 22px rgba(20, 38, 78, .05);
}
.compact-switch-card input {
  flex: 0 0 auto;
}
.compact-switch-card span {
  display: grid;
  line-height: 1.15;
}
.compact-switch-card small {
  color: #73809b;
  font-size: .78rem;
}
.catalog-help-box {
  border-radius: 18px;
  padding: .9rem 1rem;
  background: #f6f8fc;
  color: #59677f;
  border: 1px dashed rgba(20, 38, 78, .18);
  font-size: .92rem;
}
.waiter-prep-meter {
  border-radius: 16px;
  padding: .75rem .85rem;
  background: #f8faff;
  border: 1px solid rgba(20, 38, 78, .08);
  font-size: .9rem;
  color: #16274d;
}
.waiter-history-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .6rem;
}
.waiter-history-grid div {
  border-radius: 14px;
  background: #f6f8fc;
  padding: .7rem;
}
.waiter-history-grid span {
  display: block;
  color: #71809e;
  font-size: .72rem;
  font-weight: 700;
  text-transform: uppercase;
}
.waiter-history-grid strong {
  display: block;
  color: #14264d;
  margin-top: .1rem;
}
@media (max-width: 767.98px) {
  .client-menu-page .menu-filter-collapsible:not([open]) {
    position: sticky;
    top: 10px;
    z-index: 8;
  }
  .menu-filter-summary {
    align-items: flex-start;
  }
  .menu-filter-summary small {
    display: block;
    max-width: 190px;
    text-align: right;
  }
  .cart-wait-reminder {
    align-items: flex-start;
    flex-direction: column;
  }
  .compact-switch-row,
  .waiter-history-grid {
    grid-template-columns: 1fr 1fr;
  }
}
@media (min-width: 992px) {
  .menu-filter-collapsible {
    position: relative;
  }
}

/* V23 final - seguimiento compacto cliente */
.client-progress-panel {
  border: 1px solid rgba(23, 40, 85, .08);
  background: rgba(255,255,255,.96);
  box-shadow: 0 12px 30px rgba(15, 23, 42, .08);
}
.client-progress-panel .summary-pill {
  font-size: .78rem;
}
@media (max-width: 575.98px) {
  .client-progress-panel {
    margin-left: -.15rem;
    margin-right: -.15rem;
    border-radius: 20px;
  }
}

/* V35 - Admin CRM + mapa operativo */
.admin-crm-page .topbar,
.admin-floorplan-v35 .topbar {
  box-shadow: 0 12px 36px rgba(6, 20, 51, .07);
}
.admin-crm-dashboard .admin-workbar {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem;
  border: 1px solid rgba(6,20,51,.08);
  border-radius: 28px;
  background: rgba(255,255,255,.92);
  box-shadow: 0 18px 42px rgba(6,20,51,.08);
}
.admin-crm-dashboard .admin-workbar form {
  min-width: min(100%, 360px);
}
.admin-crm-shortcuts {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: .55rem;
}
.admin-crm-kpis .metric-card,
.admin-crm-actions .action-tile,
.table-admin-card,
.floorplan-v35-page .panel-card {
  border: 1px solid rgba(6,20,51,.08);
  background: rgba(255,255,255,.96);
  box-shadow: 0 18px 42px rgba(6,20,51,.07);
}
.admin-crm-actions {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}
.admin-crm-actions .action-tile {
  position: relative;
  display: flex;
  align-items: center;
  gap: .9rem;
  padding: 1rem;
  border-radius: 24px;
  min-height: 94px;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.admin-crm-actions .action-tile:hover {
  transform: translateY(-2px);
  border-color: rgba(255,122,0,.28);
  box-shadow: 0 24px 54px rgba(6,20,51,.12);
}
.admin-crm-actions .action-tile-icon {
  width: 48px;
  height: 48px;
  border-radius: 18px;
  display: grid;
  place-items: center;
  color: #fff;
  background: linear-gradient(135deg, #061433, #0B2A62 72%, #00C8FF);
  box-shadow: 0 12px 28px rgba(11,42,98,.26);
  flex: 0 0 auto;
}
.admin-crm-actions .action-tile-arrow {
  margin-left: auto;
  color: rgba(6,20,51,.32);
}
.admin-table-create-grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr 1fr .65fr .55fr .55fr auto auto;
  gap: .65rem;
  align-items: end;
}
.admin-table-create-grid .form-control,
.admin-table-create-grid .form-select {
  min-height: 46px;
  border-radius: 16px;
}
.admin-table-create-grid .admin-tablet-check {
  min-height: 46px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  padding: .55rem .8rem;
  border: 1px solid rgba(6,20,51,.10);
  border-radius: 16px;
  background: #fff;
  white-space: nowrap;
}
.admin-table-create-grid .btn {
  min-height: 46px;
  white-space: nowrap;
}
.floorplan-v35-page .compact-hero .hero-mini {
  padding: .8rem 1rem;
  border-radius: 20px;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.18);
}
.floorplan-toolbar-v35 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}
.floorplan-save-v35 {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: .55rem;
  flex-wrap: wrap;
}
.floorplan-admin-wrapper {
  overflow: auto;
  border-radius: 26px;
  border: 1px solid rgba(6,20,51,.08);
  background: linear-gradient(180deg, #f8fbff, #eef5ff);
  padding: 14px;
}
.floorplan-stage-v35 {
  position: relative;
  min-width: 900px;
  background-color: #f8fbff;
  background-size: cover;
  background-position: center;
  border-radius: 22px;
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(6,20,51,.08);
}
.floorplan-stage-v35::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: linear-gradient(rgba(6,20,51,.055) 1px, transparent 1px), linear-gradient(90deg, rgba(6,20,51,.055) 1px, transparent 1px);
  background-size: 40px 40px;
  pointer-events: none;
}
.floorplan-business-marker {
  position: absolute;
  z-index: 1;
  display: grid;
  grid-template-columns: 40px minmax(90px, 1fr);
  grid-template-rows: auto auto;
  column-gap: .65rem;
  align-items: center;
  min-width: 150px;
  max-width: 230px;
  padding: .65rem .8rem;
  border: 2px solid rgba(255,255,255,.86);
  background: rgba(255,255,255,.88);
  color: #061433;
  backdrop-filter: blur(10px);
  box-shadow: 0 14px 34px rgba(6,20,51,.13);
}
.floorplan-business-marker span {
  grid-row: span 2;
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  color: #fff;
  background: var(--accent, #ff8a00);
  font-size: 1.1rem;
}
.floorplan-business-marker b {
  font-size: .86rem;
  line-height: 1.05;
}
.floorplan-business-marker small {
  color: #65738f;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .04em;
  font-size: .65rem;
}
.floorplan-business-marker.shape-restaurant,
.floorplan-business-marker.shape-restaurant span { border-radius: 999px; }
.floorplan-business-marker.shape-bar {
  border-radius: 14px;
  border-color: rgba(0,200,255,.32);
}
.floorplan-business-marker.shape-bar span {
  border-radius: 12px;
  background: #00A4D8;
}
.floorplan-business-marker.shape-commerce {
  border-radius: 20px;
  border-color: rgba(255,122,0,.34);
}
.floorplan-business-marker.shape-commerce span {
  transform: rotate(45deg);
  border-radius: 12px;
  background: #FF7A00;
}
.floorplan-business-marker.shape-commerce span::before {
  content: '◆';
  transform: rotate(-45deg);
}
.floorplan-business-marker.shape-commerce span { color: transparent; }
.floorplan-stage-v35 .floorplan-table {
  z-index: 3;
  box-shadow: 0 16px 36px rgba(6,20,51,.18);
}
.floorplan-stage-v35 .floorplan-table.dragging {
  z-index: 10;
  transform: scale(1.03);
}
.floorplan-legend-list {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
}
.legend-pill {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .42rem .65rem;
  border-radius: 999px;
  font-size: .78rem;
  font-weight: 900;
  background: #f5f7fb;
  color: #061433;
  border: 1px solid rgba(6,20,51,.08);
}
.legend-pill.free::before,
.legend-pill.occupied::before,
.legend-pill.blocked::before,
.legend-pill.local-restaurant::before,
.legend-pill.local-bar::before,
.legend-pill.local-commerce::before {
  content: '';
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: #00C8FF;
}
.legend-pill.occupied::before { background: #FF7A00; }
.legend-pill.blocked::before { background: #64748b; }
.legend-pill.local-restaurant::before { background: #0B2A62; }
.legend-pill.local-bar::before { background: #00A4D8; border-radius: 2px; }
.legend-pill.local-commerce::before { background: #FF7A00; border-radius: 2px; transform: rotate(45deg); }
@media (max-width: 1199.98px) {
  .admin-crm-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-table-create-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 767.98px) {
  .admin-crm-dashboard .admin-workbar { align-items: stretch; flex-direction: column; border-radius: 22px; }
  .admin-crm-dashboard .admin-workbar form { min-width: 0; }
  .admin-crm-shortcuts { justify-content: stretch; }
  .admin-crm-shortcuts .btn { flex: 1 1 46%; }
  .admin-crm-actions { grid-template-columns: 1fr; }
  .admin-table-create-grid { grid-template-columns: 1fr 1fr; }
  .admin-table-create-grid .btn { grid-column: 1 / -1; }
  .floorplan-save-v35 { justify-content: stretch; width: 100%; }
  .floorplan-save-v35 .btn { flex: 1 1 100%; }
}
@media (max-width: 480px) {
  .admin-table-create-grid { grid-template-columns: 1fr; }
}

/* V36 - Admin CRM definitivo
   Derechos reservados: Xendrai y Lokisho27.
   Objetivo: barra superior limpia, menú admin lateral derecho y formularios sin superposición. */
.app-nav-admin-compact .container-fluid { min-height: 58px; }
.app-nav-admin-compact .nav-brand-wrap { max-width: min(54vw, 460px); }
.app-nav-admin-compact .admin-side-toggle { box-shadow: 0 10px 26px rgba(0,0,0,.12); }
.titanium-admin-drawer { --bs-offcanvas-width: min(420px, 92vw); background: linear-gradient(160deg,#061433,#0b2a62 68%,#073b8f); color:#fff; border-left: 1px solid rgba(255,255,255,.14); }
.titanium-admin-drawer .offcanvas-header { border-bottom: 1px solid rgba(255,255,255,.12); }
.admin-drawer-user { display:flex; align-items:center; gap:.7rem; padding:.75rem; border:1px solid rgba(255,255,255,.14); border-radius:14px; background:rgba(255,255,255,.08); }
.admin-drawer-user i { width:38px; height:38px; display:grid; place-items:center; border-radius:12px; background:rgba(255,255,255,.14); font-size:1.1rem; }
.admin-drawer-user span { display:block; color:rgba(255,255,255,.72); font-size:.86rem; }
.admin-drawer-links { display:grid; gap:.45rem; }
.admin-drawer-link { color:#fff; text-decoration:none; display:flex; align-items:center; gap:.7rem; padding:.62rem .75rem; border-radius:12px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.10); transition: transform .18s ease, background .18s ease, border-color .18s ease; }
.admin-drawer-link:hover { color:#fff; transform: translateX(-3px); background:rgba(255,255,255,.14); border-color:rgba(255,191,26,.40); }
.admin-drawer-link i { width:32px; height:32px; display:grid; place-items:center; border-radius:10px; background:linear-gradient(135deg,#ffbf1a,#ff7a00); color:#061433; font-size:1rem; flex:0 0 auto; }
.admin-drawer-link small { display:block; color:rgba(255,255,255,.68); font-size:.78rem; margin-top:.05rem; }
.admin-table-create-grid { display:block !important; overflow:visible; }
.admin-table-create-grid > .row { display:grid !important; grid-template-columns: repeat(auto-fit, minmax(156px, 1fr)); gap:.85rem; margin:0 !important; align-items:end; }
.admin-table-create-grid > .row > [class*="col-"] { width:100% !important; max-width:none !important; flex:0 0 auto !important; padding:0 !important; }
.admin-table-create-grid .form-label { margin-bottom:.38rem; line-height:1.15; }
.admin-table-create-grid .form-control { min-width:0; width:100%; }
.admin-table-create-grid .admin-tablet-check { justify-content:flex-start; min-height:52px; padding:.72rem .9rem; }
.admin-table-create-grid .d-grid .btn { min-height:52px; width:100%; }
.reservation-mini-row, .reservation-row-v36 { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.reservation-row-v36 { padding:1rem; border:1px solid rgba(6,20,51,.08); border-radius:22px; background:#fff; margin-bottom:.75rem; box-shadow:0 10px 26px rgba(6,20,51,.06); }
.reservation-actions-v36 { display:flex; flex-wrap:wrap; gap:.4rem; justify-content:flex-end; }
.restaurant-order-detail-v36 { display:grid; gap:.4rem; max-width:760px; }
.restaurant-order-line-v36 { display:grid; grid-template-columns: minmax(0,1fr) auto; gap:.6rem; padding:.58rem .75rem; border-radius:16px; background:#f7f9fc; border:1px solid rgba(6,20,51,.06); }
.restaurant-order-line-v36 small { grid-column:1 / -1; color:#64748b; }
.titanium-rule-switch { padding:1rem 1rem 1rem 3.1rem; border:1px solid rgba(6,20,51,.09); border-radius:22px; background:#fff; }
@media (max-width: 575.98px) {
  .app-nav-admin-compact .nav-brand-wrap .brand-sub { display:none; }
  .app-nav-admin-compact .nav-logo { width:42px; height:42px; }
  .admin-table-create-grid > .row { grid-template-columns:1fr; }
  .reservation-mini-row, .reservation-row-v36 { align-items:stretch; flex-direction:column; }
  .reservation-actions-v36 { justify-content:flex-start; }
  .restaurant-order-line-v36 { grid-template-columns:1fr; }
}

/* V37 - Admin CRM, contabilidad extendida y mapa editable
   Derechos reservados: Xendrai · Lokisho27. */
.app-nav-admin-compact {
  overflow: visible !important;
}
.app-nav-admin-compact .container-fluid {
  min-height: 58px !important;
  flex-wrap: nowrap !important;
}
.app-nav-admin-compact .nav-brand-wrap {
  min-width: 0;
  overflow: hidden;
}
.app-nav-admin-compact .brand-name,
.app-nav-admin-compact .brand-sub {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.admin-mini-actions-v37 {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .7rem;
}
.admin-mini-actions-v37 a {
  display: flex;
  align-items: center;
  gap: .7rem;
  min-height: 72px;
  padding: .8rem .9rem;
  border-radius: 22px;
  text-decoration: none;
  color: #071638;
  background: linear-gradient(180deg, #fff, #f7faff);
  border: 1px solid rgba(6,20,51,.10);
  box-shadow: 0 12px 30px rgba(6,20,51,.06);
}
.admin-mini-actions-v37 a:hover {
  transform: translateY(-1px);
  border-color: rgba(255,122,0,.35);
  color: #061433;
}
.admin-mini-actions-v37 i {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 15px;
  color: #061433;
  background: linear-gradient(135deg,#ffbf1a,#ff7a00);
  flex: 0 0 auto;
}
.admin-mini-actions-v37 b { display:block; line-height:1.05; }
.admin-mini-actions-v37 small { display:block; color:#64748b; font-size:.76rem; line-height:1.12; margin-top:.08rem; }
.admin-crm-actions-v37 {
  grid-template-columns: repeat(auto-fit, minmax(235px, 1fr));
}
.admin-tables-panel-v37 .section-title { letter-spacing: -0.02em; }
.admin-table-create-grid-v37 {
  display: block !important;
  background: linear-gradient(180deg,#fff,#f8fbff) !important;
  border-color: rgba(6,20,51,.08) !important;
}
.admin-table-form-grid-v37 {
  display: grid;
  grid-template-columns: minmax(180px,1.2fr) minmax(170px,1fr) minmax(140px,.8fr) 112px 112px 112px minmax(230px,1.2fr) minmax(170px,.8fr);
  gap: .85rem;
  align-items: end;
}
.admin-table-form-grid-v37 .form-control {
  min-height: 54px;
  border-radius: 18px;
  font-weight: 800;
}
.admin-table-form-grid-v37 .field-hint {
  min-height: 28px;
  font-size: .74rem;
}
.tablet-toggle-card-v37 {
  display: flex;
  align-items: center;
  gap: .75rem;
  min-height: 84px;
  margin: 0;
  padding: .78rem .9rem;
  border: 1px solid rgba(6,20,51,.10);
  border-radius: 20px;
  background: #fff;
  cursor: pointer;
}
.tablet-toggle-card-v37 input {
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
}
.tablet-toggle-card-v37 b { display:block; line-height:1.05; color:#061433; }
.tablet-toggle-card-v37 small { display:block; margin-top:.15rem; line-height:1.16; color:#64748b; font-size:.76rem; }
.admin-add-table-btn-v37 {
  min-height: 64px;
  width: 100%;
  box-shadow: 0 14px 26px rgba(6,20,51,.18);
}
@media (max-width: 1399.98px) {
  .admin-table-form-grid-v37 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .tablet-toggle-card-v37, .admin-add-table-btn-v37 { min-height: 68px; }
}
@media (max-width: 991.98px) {
  .admin-mini-actions-v37 { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .admin-table-form-grid-v37 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575.98px) {
  .admin-mini-actions-v37 { grid-template-columns: 1fr; }
  .admin-table-form-grid-v37 { grid-template-columns: 1fr; }
  .admin-table-form-grid-v37 .field-hint { min-height: 0; }
}

.accounting-filter-panel-v37 .form-control,
.accounting-filter-panel-v37 .form-select {
  min-height: 50px;
  border-radius: 18px;
  font-weight: 750;
}
.accounting-kpi-grid-v37 .metric-card { border-radius: 24px; }
.accounting-business-card-v37 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem;
  border-radius: 24px;
  border: 1px solid rgba(6,20,51,.08);
  background: linear-gradient(180deg,#fff,#f8fbff);
  box-shadow: 0 12px 30px rgba(6,20,51,.06);
}
.accounting-business-card-v37 span { display:block; color:#64748b; font-size:.86rem; margin-top:.1rem; }
.accounting-business-card-v37 strong { font-size: 1.1rem; white-space: nowrap; }
.accounting-table-wrap-v37 { max-height: 68vh; border-radius: 22px; }
.accounting-grid-table-v37 th {
  position: sticky;
  top: 0;
  z-index: 2;
}
.accounting-detail-cell-v37 { min-width: 260px; max-width: 420px; }
.accounting-detail-cell-v37 details {
  border-radius: 16px;
  padding: .55rem .7rem;
  background: #f7f9fc;
  border: 1px solid rgba(6,20,51,.07);
}
.accounting-detail-cell-v37 summary {
  cursor: pointer;
  font-weight: 900;
  color: #061433;
}
.accounting-detail-cell-v37 details div {
  margin-top: .45rem;
  color: #41506a;
  font-size: .86rem;
  line-height: 1.35;
}

.floorplan-v37-page .compact-hero .hero-mini {
  padding: .8rem 1rem;
  border-radius: 20px;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.18);
}
.floorplan-toolbar-v37,
.floorplan-save-v37 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}
.floorplan-save-v37 { justify-content: flex-end; gap: .55rem; }
.floorplan-stage-v37 {
  position: relative;
  min-width: 900px;
  background-color: #f8fbff;
  background-size: cover;
  background-position: center;
  border-radius: 22px;
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(6,20,51,.08);
}
.floorplan-stage-v37::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: linear-gradient(rgba(6,20,51,.055) 1px, transparent 1px), linear-gradient(90deg, rgba(6,20,51,.055) 1px, transparent 1px);
  background-size: 40px 40px;
  pointer-events: none;
}
.floorplan-stage-v37 .floorplan-table {
  z-index: 6;
}
.floorplan-business-marker {
  touch-action: none;
  user-select: none;
  cursor: grab;
}
.floorplan-business-marker.dragging,
.floorplan-business-marker.resizing {
  z-index: 12;
  cursor: grabbing;
  box-shadow: 0 22px 54px rgba(6,20,51,.22);
}
.floorplan-stage-v37 .floorplan-business-marker {
  z-index: 4;
  grid-template-columns: 42px minmax(0,1fr);
  grid-template-rows: auto auto;
  min-width: 0;
  max-width: none;
  overflow: hidden;
  padding: .7rem .85rem;
}
.floorplan-stage-v37 .floorplan-business-marker .marker-icon {
  grid-row: span 2;
  width: 42px;
  height: 42px;
}
.floorplan-stage-v37 .floorplan-business-marker b {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.resize-handle-v37 {
  position: absolute;
  right: 6px;
  bottom: 6px;
  width: 18px;
  height: 18px;
  border-radius: 7px;
  background: linear-gradient(135deg, transparent 0 45%, rgba(6,20,51,.42) 46% 55%, transparent 56%), rgba(255,255,255,.78);
  border: 1px solid rgba(6,20,51,.16);
  cursor: nwse-resize;
}
.image-upload-field-v37,
.field-stack:has(input[type="file"][accept*="image"]) {
  padding: .85rem;
  border: 1px dashed rgba(11,42,98,.22);
  border-radius: 22px;
  background: linear-gradient(180deg,#fff,#f8fbff);
}
input[type="file"][accept*="image"]::file-selector-button {
  border: 0;
  border-radius: 999px;
  padding: .62rem .95rem;
  margin-right: .75rem;
  font-weight: 900;
  color: #061433;
  background: linear-gradient(135deg,#ffbf1a,#ff7a00);
}
@media (max-width: 767.98px) {
  .floorplan-toolbar-v37, .floorplan-save-v37 { align-items: stretch; flex-direction: column; }
  .floorplan-save-v37 .btn { width: 100%; }
}

.restaurant-order-title-v37 {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:.45rem;
}
.restaurant-order-status-v37 {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  padding:.45rem .8rem;
  border-radius:999px;
  color:#061433;
  background:linear-gradient(135deg,#ffbf1a,#ff7a00);
  font-weight:1000;
  white-space:nowrap;
}
.restaurant-order-summary-v37 {
  display:flex;
  align-items:center;
  gap:.75rem;
  padding:.7rem .8rem;
  border-radius:18px;
  background:linear-gradient(180deg,#f7fbff,#eef6ff);
  border:1px solid rgba(6,20,51,.07);
}
.restaurant-order-summary-v37 i {
  width:38px;
  height:38px;
  border-radius:14px;
  display:grid;
  place-items:center;
  color:#fff;
  background:linear-gradient(135deg,#061433,#0b2a62 72%,#00c8ff);
}
.restaurant-order-summary-v37 small { display:block; color:#64748b; }
.restaurant-order-line-v37 {
  background:#fff;
  border-color:rgba(6,20,51,.08);
}
.floorplan-business-marker--public {
  cursor: default !important;
  pointer-events: none;
  opacity: .92;
  z-index: 2 !important;
}
.floorplan-business-marker--public .resize-handle-v37 { display:none !important; }
.floorplan-stage--public .floorplan-table--public { z-index: 5; }

/* V38 · Login y recuperación de contraseña.
   Derechos reservados: Xendrai y Lokisho27. */
.login-production-form .form-control-lg {
    border-radius: 1rem;
}
.login-help-row {
    min-height: 1.4rem;
}
.login-forgot-link {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    color: #0a2a63;
    font-weight: 800;
    font-size: .92rem;
    text-decoration: none;
    border-bottom: 1px dashed rgba(10, 42, 99, .35);
}
.login-forgot-link::before {
    content: "?";
    display: inline-grid;
    place-items: center;
    width: 1.05rem;
    height: 1.05rem;
    border-radius: 999px;
    color: #06173a;
    background: linear-gradient(135deg, #ffc107, #ff8a00);
    font-size: .72rem;
    font-weight: 950;
}
.login-forgot-link:hover {
    color: #003c8f;
    border-bottom-color: currentColor;
}
.login-identity-card .hero-logo {
    max-width: 260px;
    width: 100%;
    height: auto;
}
@media (max-width: 760px) {
    .login-production-form .btn-lg,
    .login-card .btn-lg {
        min-height: 3.2rem;
    }
    .login-forgot-link {
        font-size: .95rem;
    }
}

/* V40 · Login central alineado. Derechos reservados: Xendrai · Lokisho27. */
.login-actions-bar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    width:100%;
    margin-top:.35rem;
}
.login-actions-bar .login-forgot-link{
    min-height:3rem;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:.75rem 1rem;
    border:1px dashed rgba(10,42,99,.22);
    border-radius:999px;
    background:#f7faff;
    color:#0a2a63;
    text-align:center;
    white-space:nowrap;
}
.login-actions-bar .btn{
    min-width:150px;
}
@media(max-width:760px){
    .login-actions-bar{flex-direction:column-reverse;align-items:stretch;gap:.75rem}
    .login-actions-bar .login-forgot-link,.login-actions-bar .btn{width:100%;white-space:normal}
}

/* V41 · Admin CRM práctico + QR visual de mesas.
   Derechos reservados: Xendrai · Lokisho27. */
.admin-module-map-v41 {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:1rem;
}
.admin-module-map-v41 section {
    padding:1rem;
    border-radius:28px;
    background:linear-gradient(180deg,#ffffff,#f6f9ff);
    border:1px solid rgba(6,20,51,.08);
    box-shadow:0 18px 45px rgba(6,20,51,.07);
    display:grid;
    gap:.65rem;
}
.admin-module-kicker-v41 {
    display:inline-flex;
    width:max-content;
    padding:.35rem .7rem;
    border-radius:999px;
    color:#061433;
    font-size:.76rem;
    font-weight:1000;
    text-transform:uppercase;
    letter-spacing:.04em;
    background:linear-gradient(135deg,#ffbf1a,#ff8a00);
}
.admin-module-map-v41 a {
    display:grid;
    grid-template-columns:44px minmax(0,1fr);
    grid-template-rows:auto auto;
    align-items:center;
    gap:.05rem .75rem;
    padding:.78rem;
    border-radius:20px;
    text-decoration:none;
    color:#061433;
    background:#fff;
    border:1px solid rgba(6,20,51,.07);
    transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.admin-module-map-v41 a:hover {
    transform:translateY(-2px);
    border-color:rgba(255,138,0,.38);
    box-shadow:0 14px 30px rgba(6,20,51,.10);
}
.admin-module-map-v41 a i {
    grid-row:1 / span 2;
    width:44px;
    height:44px;
    display:grid;
    place-items:center;
    border-radius:16px;
    color:#fff;
    background:linear-gradient(135deg,#061433,#0b2a62 72%,#00c8ff);
    font-size:1.15rem;
}
.admin-module-map-v41 a b { font-weight:1000; line-height:1.05; }
.admin-module-map-v41 a small { color:#64748b; line-height:1.2; }
.admin-qr-page-v41 .app-main { overflow-x:hidden; }
.admin-qr-actions-v41 { display:flex; gap:.6rem; flex-wrap:wrap; align-items:center; }
.admin-qr-help-v41 {
    display:flex;
    align-items:flex-start;
    gap:.85rem;
    padding:1rem;
    border-radius:24px;
    background:linear-gradient(180deg,#fff8e6,#fff);
    border:1px solid rgba(255,138,0,.18);
    color:#061433;
}
.admin-qr-help-v41 i {
    width:38px;
    height:38px;
    border-radius:14px;
    display:grid;
    place-items:center;
    color:#061433;
    background:linear-gradient(135deg,#ffbf1a,#ff8a00);
    flex:0 0 auto;
}
.admin-qr-grid-v41 {
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(290px,1fr));
    gap:1.1rem;
    align-items:start;
}
.admin-qr-grid-v41--a6 { grid-template-columns:repeat(auto-fit,minmax(320px,420px)); justify-content:center; }
.admin-qr-grid-v41--four { grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); }
.titanium-qr-card-v41 {
    break-inside:avoid;
    page-break-inside:avoid;
}
.titanium-qr-card-inner-v41 {
    position:relative;
    overflow:hidden;
    min-height:480px;
    padding:1.15rem;
    border-radius:30px;
    background:
      radial-gradient(circle at 15% 0%, rgba(0,200,255,.17), transparent 28%),
      radial-gradient(circle at 92% 8%, rgba(255,138,0,.18), transparent 34%),
      linear-gradient(180deg,#ffffff 0%,#f7fbff 100%);
    border:3px solid var(--ta-qr-primary,#061433);
    box-shadow:0 20px 60px rgba(6,20,51,.13);
}
.titanium-qr-card-inner-v41::before {
    content:'';
    position:absolute;
    inset:.55rem;
    border-radius:24px;
    border:1px dashed rgba(6,20,51,.22);
    pointer-events:none;
}
.titanium-qr-card-inner-v41::after {
    content:'Titanium';
    position:absolute;
    right:-2rem;
    bottom:1rem;
    transform:rotate(-12deg);
    font-size:3.8rem;
    font-weight:1000;
    color:rgba(6,20,51,.045);
    letter-spacing:-.06em;
    pointer-events:none;
}
.titanium-qr-top-v41 {
    position:relative;
    z-index:1;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:.75rem;
    text-align:left;
    margin-bottom:.8rem;
}
.titanium-qr-top-v41 img {
    width:54px;
    height:54px;
    object-fit:contain;
    border-radius:18px;
    background:#fff;
    box-shadow:0 10px 22px rgba(6,20,51,.14);
}
.titanium-qr-top-v41 strong {
    display:block;
    font-size:1.05rem;
    font-weight:1000;
    color:#061433;
}
.titanium-qr-top-v41 span {
    display:block;
    color:#64748b;
    font-size:.78rem;
    font-weight:800;
}
.titanium-qr-main-title-v41 {
    position:relative;
    z-index:1;
    text-align:center;
    color:#061433;
    font-size:2rem;
    line-height:1;
    font-weight:1000;
    letter-spacing:-.04em;
    margin:.55rem 0 .25rem;
}
.titanium-qr-sub-v41 {
    position:relative;
    z-index:1;
    text-align:center;
    color:#41506a;
    font-weight:850;
    max-width:250px;
    margin:0 auto .8rem;
}
.titanium-qr-box-v41 {
    position:relative;
    z-index:1;
    display:grid;
    place-items:center;
    width:270px;
    height:270px;
    margin:.25rem auto .75rem;
    border-radius:30px;
    background:#fff;
    border:1px solid rgba(6,20,51,.08);
    box-shadow:inset 0 0 0 10px #fff, 0 15px 35px rgba(6,20,51,.12);
}
.titanium-qr-code-v41 canvas,
.titanium-qr-code-v41 img { width:240px!important; height:240px!important; }

.titanium-qr-center-logo-v41 {
    position:absolute;
    left:50%;
    top:50%;
    width:46px;
    height:46px;
    transform:translate(-50%,-50%);
    object-fit:contain;
    padding:5px;
    border-radius:16px;
    background:#fff;
    border:1px solid rgba(6,20,51,.10);
    box-shadow:0 8px 18px rgba(6,20,51,.18);
    pointer-events:none;
}

.titanium-qr-code-label-v41 {
    position:relative;
    z-index:1;
    width:max-content;
    max-width:100%;
    margin:0 auto .65rem;
    padding:.55rem 1rem;
    border-radius:999px;
    color:#061433;
    background:linear-gradient(135deg,#ffbf1a,#ff8a00);
    font-size:1.1rem;
    font-weight:1000;
    letter-spacing:.05em;
    box-shadow:0 10px 20px rgba(255,138,0,.20);
}
.titanium-qr-sector-v41 {
    position:relative;
    z-index:1;
    display:flex;
    justify-content:space-between;
    gap:.5rem;
    align-items:center;
    color:#64748b;
    font-size:.8rem;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.02em;
}
.titanium-qr-card-actions-v41 {
    display:flex;
    gap:.45rem;
    flex-wrap:wrap;
    justify-content:center;
    margin-top:.75rem;
}
.print-one-qr-v41 [data-qr-card]:not(.print-target-v41) { display:none!important; }
@media (max-width: 991.98px) {
    .admin-module-map-v41 { grid-template-columns:1fr; }
}
@media (max-width: 575.98px) {
    .admin-qr-grid-v41 { grid-template-columns:1fr; }
    .titanium-qr-card-inner-v41 { min-height:450px; padding:1rem; }
    .titanium-qr-box-v41 { width:245px; height:245px; }
    .titanium-qr-code-v41 canvas,
    .titanium-qr-code-v41 img { width:218px!important; height:218px!important; }
    .titanium-qr-main-title-v41 { font-size:1.75rem; }
}
@media print {
    @page { size:auto; margin:10mm; }
    .no-print,
    .app-nav,
    .bottom-app-nav,
    .app-bg-orb,
    .admin-qr-hero-v41,
    .admin-qr-toolbar-v41,
    .admin-qr-help-v41,
    .titanium-admin-drawer { display:none!important; }
    body,
    .bg-app,
    .app-main { background:#fff!important; }
    .container { max-width:100%!important; width:100%!important; padding:0!important; }
    .admin-qr-grid-v41 { display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:10mm!important; }
    .admin-qr-grid-v41--a6 { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
    .admin-qr-grid-v41--four { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
    .titanium-qr-card-v41 { page-break-inside:avoid!important; break-inside:avoid!important; }
    .titanium-qr-card-inner-v41 { box-shadow:none!important; min-height:132mm; border-width:2px; }
    .print-one-qr-v41 .admin-qr-grid-v41 { grid-template-columns:1fr!important; max-width:120mm; margin:0 auto; }
    .print-one-qr-v41 .titanium-qr-card-inner-v41 { min-height:165mm; }
}

/* Titanium Arena V42 - QR admin visual compacto.
   Derechos reservados: Xendrai · Lokisho27. */
.admin-qr-page-v42 .app-main { overflow-x:hidden; }
.admin-qr-actions-v42 { display:flex; gap:.6rem; flex-wrap:wrap; align-items:center; }
.admin-qr-help-v42 { display:flex; align-items:flex-start; gap:.85rem; padding:1rem; border-radius:24px; background:linear-gradient(180deg,#fff8e6,#fff); border:1px solid rgba(255,138,0,.18); color:#061433; }
.admin-qr-help-v42 i { width:38px; height:38px; border-radius:14px; display:grid; place-items:center; color:#061433; background:linear-gradient(135deg,#ffbf1a,#ff8a00); flex:0 0 auto; }
.admin-qr-grid-v42 { display:grid; grid-template-columns:repeat(auto-fill,minmax(310px,420px)); justify-content:center; gap:1.1rem; align-items:start; }
.admin-qr-grid-v42--a6 { grid-template-columns:repeat(auto-fill,minmax(320px,420px)); }
.admin-qr-grid-v42--four { grid-template-columns:repeat(auto-fill,minmax(270px,340px)); }
.titanium-qr-card-v42 { break-inside:avoid; page-break-inside:avoid; max-width:420px; width:100%; margin-inline:auto; }
.titanium-qr-card-inner-v42 { position:relative; overflow:hidden; width:100%; min-height:0; padding:1rem; border-radius:28px; background:radial-gradient(circle at 15% 0%,rgba(0,200,255,.15),transparent 28%),radial-gradient(circle at 92% 8%,rgba(255,138,0,.18),transparent 34%),linear-gradient(180deg,#fff 0%,#f7fbff 100%); border:3px solid var(--ta-qr-primary,#061433); box-shadow:0 20px 60px rgba(6,20,51,.13); }
.titanium-qr-card-inner-v42::before { content:''; position:absolute; inset:.55rem; border-radius:22px; border:1px dashed rgba(6,20,51,.20); pointer-events:none; }
.titanium-qr-card-inner-v42::after { content:'Titanium'; position:absolute; right:-1.5rem; bottom:.65rem; transform:rotate(-12deg); font-size:3.1rem; line-height:1; font-weight:1000; color:rgba(6,20,51,.045); letter-spacing:-.06em; pointer-events:none; }
.titanium-qr-top-v42 { position:relative; z-index:1; display:flex; align-items:center; justify-content:center; gap:.65rem; text-align:left; margin-bottom:.6rem; }
.titanium-qr-top-v42 img { width:50px; height:50px; object-fit:contain; border-radius:16px; background:#fff; box-shadow:0 10px 22px rgba(6,20,51,.14); }
.titanium-qr-top-v42 strong { display:block; font-size:1rem; font-weight:1000; color:#061433; }
.titanium-qr-top-v42 span { display:block; color:#64748b; font-size:.74rem; font-weight:800; max-width:220px; line-height:1.15; }
.titanium-qr-main-title-v42 { position:relative; z-index:1; text-align:center; color:#061433; font-size:2.2rem; line-height:.95; font-weight:1000; letter-spacing:-.055em; margin:.45rem 0 .22rem; }
.titanium-qr-sub-v42 { position:relative; z-index:1; text-align:center; color:#41506a; font-weight:900; max-width:270px; margin:0 auto .65rem; line-height:1.2; }
.titanium-qr-box-v42 { position:relative; z-index:1; display:grid; place-items:center; width:242px; height:242px; margin:.15rem auto .6rem; border-radius:26px; background:#fff; border:1px solid rgba(6,20,51,.08); box-shadow:inset 0 0 0 9px #fff,0 14px 32px rgba(6,20,51,.12); }
.titanium-qr-code-v42 canvas,.titanium-qr-code-v42 img { width:214px!important; height:214px!important; display:block; }
.titanium-qr-center-logo-v42 { position:absolute; left:50%; top:50%; width:44px; height:44px; transform:translate(-50%,-50%); object-fit:contain; padding:5px; border-radius:15px; background:#fff; border:1px solid rgba(6,20,51,.10); box-shadow:0 8px 18px rgba(6,20,51,.18); pointer-events:none; }
.titanium-qr-code-label-v42 { position:relative; z-index:1; width:max-content; max-width:100%; margin:0 auto .55rem; padding:.5rem .95rem; border-radius:999px; color:#061433; background:linear-gradient(135deg,#ffbf1a,#ff8a00); font-size:1.02rem; font-weight:1000; letter-spacing:.04em; box-shadow:0 10px 20px rgba(255,138,0,.20); text-align:center; }
.titanium-qr-code-label-v42 span { display:block; font-size:.56rem; text-transform:uppercase; letter-spacing:.12em; opacity:.70; line-height:1; margin-bottom:.1rem; }
.titanium-qr-sector-v42 { position:relative; z-index:1; display:flex; justify-content:space-between; gap:.5rem; align-items:center; color:#64748b; font-size:.72rem; font-weight:900; text-transform:uppercase; letter-spacing:.02em; }
.titanium-qr-card-actions-v42 { display:flex; gap:.45rem; flex-wrap:wrap; justify-content:center; margin-top:.75rem; }
@media (max-width:575.98px){ .admin-qr-grid-v42{grid-template-columns:1fr}.titanium-qr-card-v42{max-width:360px}.titanium-qr-card-inner-v42{border-radius:24px;padding:.9rem}.titanium-qr-main-title-v42{font-size:1.85rem}.titanium-qr-box-v42{width:224px;height:224px}.titanium-qr-code-v42 canvas,.titanium-qr-code-v42 img{width:198px!important;height:198px!important} }
@media print{ @page{size:auto;margin:9mm}.admin-qr-page-v42 .no-print,.admin-qr-page-v42 .app-nav,.admin-qr-page-v42 .bottom-app-nav,.admin-qr-page-v42 .app-bg-orb,.admin-qr-page-v42 .admin-qr-hero-v42,.admin-qr-page-v42 .admin-qr-toolbar-v42,.admin-qr-page-v42 .admin-qr-help-v42,.admin-qr-page-v42 .titanium-admin-drawer{display:none!important}.admin-qr-page-v42 body,.admin-qr-page-v42 .bg-app,.admin-qr-page-v42 .app-main{background:#fff!important}.admin-qr-page-v42 .container{max-width:100%!important;width:100%!important;padding:0!important}.admin-qr-page-v42 .admin-qr-grid-v42{display:grid!important;grid-template-columns:repeat(2,88mm)!important;justify-content:center!important;gap:8mm!important}.admin-qr-page-v42 .admin-qr-grid-v42--four{grid-template-columns:repeat(2,86mm)!important}.admin-qr-page-v42 .titanium-qr-card-v42{max-width:88mm!important;page-break-inside:avoid!important;break-inside:avoid!important}.admin-qr-page-v42 .titanium-qr-card-inner-v42{box-shadow:none!important;border-width:2px;padding:6mm}.admin-qr-page-v42 .titanium-qr-main-title-v42{font-size:24pt}.admin-qr-page-v42 .titanium-qr-box-v42{width:52mm;height:52mm}.admin-qr-page-v42 .titanium-qr-code-v42 canvas,.admin-qr-page-v42 .titanium-qr-code-v42 img{width:46mm!important;height:46mm!important}.admin-qr-page-v42 .titanium-qr-center-logo-v42{width:10mm;height:10mm} }

/* V61 Ecosistema Titanium + ReyDelivery */
.ta-v61-delivery-card{background:linear-gradient(135deg,#fff,#fff8ef);border:1px solid rgba(255,91,0,.22);border-radius:28px;padding:1.25rem;margin-bottom:1rem;box-shadow:0 18px 45px rgba(15,23,42,.08)}
.ta-v61-delivery-card-kitchen{background:linear-gradient(135deg,#fff7ed,#fff);border-width:2px;box-shadow:0 20px 55px rgba(249,115,22,.12)}
.ta-v61-delivery-address{display:flex;gap:.75rem;align-items:flex-start;background:#fff;border:1px solid rgba(15,23,42,.08);border-radius:20px;padding:.8rem 1rem}
.ta-v61-delivery-address span{display:block;color:#64748b;font-weight:600}.ta-v61-delivery-items{display:grid;gap:.65rem}.ta-v61-delivery-item{display:flex;gap:.75rem;align-items:flex-start;background:#fff;border:1px solid rgba(15,23,42,.08);border-radius:18px;padding:.75rem}.ta-v61-delivery-qty{min-width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:#111827;color:#fff;font-weight:900}.ta-v61-metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.ta-v61-metric{background:#fff;border:1px solid rgba(15,23,42,.08);border-radius:22px;padding:1rem;box-shadow:0 12px 36px rgba(15,23,42,.06)}.ta-addon-icon{display:inline-flex;align-items:center;gap:.3rem}.ta-v61-delivery-section-title{display:flex;align-items:center;gap:.6rem}.ta-v61-delivery-section-title .badge{font-size:.8rem}@media(max-width:991px){.ta-v61-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ta-v61-delivery-card{border-radius:22px;padding:1rem}.ta-v61-delivery-item{border-radius:16px}.ta-v61-delivery-qty{min-width:36px;height:36px}}

/* V71 - Venta de mostrador local sin mezclar con mesas Titanium */
.counter-sale-v71{border:1px solid rgba(15,23,42,.08);border-radius:24px;background:linear-gradient(180deg,#fff,#fff8f1);padding:1rem}
.counter-product-grid-v71{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.75rem;max-height:420px;overflow:auto;padding:.15rem .2rem .25rem 0}
.counter-product-card-v71{display:flex;align-items:center;justify-content:space-between;gap:1rem;border:1px solid rgba(15,23,42,.09);border-radius:18px;background:#fff;padding:.85rem .95rem;box-shadow:0 10px 26px rgba(15,23,42,.045);cursor:pointer}
.counter-product-card-v71 b{display:block;color:#0f172a;font-size:.96rem;line-height:1.15}
.counter-product-card-v71 small{display:block;color:#64748b;font-weight:700;line-height:1.25;margin-top:.18rem}
.counter-product-card-v71 input{width:76px;min-width:76px;border:1px solid rgba(15,23,42,.15);border-radius:14px;padding:.55rem .45rem;text-align:center;font-weight:900;color:#0f172a;background:#fff}
.counter-product-card-v71:focus-within{border-color:#ff8a00;box-shadow:0 0 0 .2rem rgba(255,138,0,.13)}
.counter-product-card-v71.is-disabled{opacity:.55;background:#f8fafc;cursor:not-allowed}
.counter-footer-v71{border-top:1px solid rgba(15,23,42,.08);padding-top:1rem}
@media(max-width:575.98px){.counter-product-grid-v71{grid-template-columns:1fr;max-height:none}.counter-sale-v71{padding:.85rem;border-radius:20px}.counter-product-card-v71{border-radius:16px}.counter-product-card-v71 input{width:66px;min-width:66px}}

/* Titanium AI Assistant V1 */
.ta-ai-assistant{position:fixed;right:22px;bottom:88px;z-index:1060;font-family:inherit}.ta-ai-launch{width:62px;height:62px;border-radius:50%;border:0;background:linear-gradient(135deg,#111827,#ff8a00);color:#fff;box-shadow:0 18px 45px rgba(15,23,42,.25);display:grid;place-items:center;font-weight:1000}.ta-ai-launch span{font-size:.82rem;letter-spacing:.04em}.ta-ai-panel{position:absolute;right:0;bottom:76px;width:min(390px,calc(100vw - 28px));max-height:min(620px,calc(100vh - 130px));display:none;grid-template-rows:auto 1fr auto;background:#fff;border:1px solid rgba(15,23,42,.10);border-radius:26px;box-shadow:0 28px 90px rgba(15,23,42,.28);overflow:hidden}.ta-ai-assistant.is-open .ta-ai-panel{display:grid}.ta-ai-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.1rem;background:linear-gradient(135deg,#111827,#1f2937);color:#fff}.ta-ai-head b{display:block;font-size:1rem}.ta-ai-head small{color:rgba(255,255,255,.68);font-weight:700}.ta-ai-close{border:0;background:rgba(255,255,255,.12);color:#fff;border-radius:14px;width:38px;height:38px}.ta-ai-log{padding:1rem;overflow:auto;background:linear-gradient(180deg,#fff,#fff8f1);display:grid;align-content:start;gap:.7rem}.ta-ai-msg{max-width:88%;border-radius:18px;padding:.75rem .9rem;line-height:1.35;font-weight:700;white-space:pre-wrap}.ta-ai-msg-user{justify-self:end;background:#ff8a00;color:#fff;border-bottom-right-radius:6px}.ta-ai-msg-assistant{justify-self:start;background:#fff;color:#111827;border:1px solid rgba(15,23,42,.08);border-bottom-left-radius:6px}.ta-ai-sources{display:block;color:#64748b;font-weight:700;margin-top:.45rem}.ta-ai-suggestions{display:flex;gap:.45rem;flex-wrap:wrap;padding:0 1rem .8rem;background:#fff8f1}.ta-ai-suggestions button{border:1px solid rgba(255,138,0,.24);background:#fff;color:#ff5b00;border-radius:999px;padding:.45rem .75rem;font-weight:900}.ta-ai-form{display:flex;gap:.55rem;padding:.85rem;background:#fff;border-top:1px solid rgba(15,23,42,.08)}.ta-ai-form input{flex:1;border:1px solid rgba(15,23,42,.14);border-radius:16px;padding:.75rem .9rem;font-weight:800}.ta-ai-form button{border:0;border-radius:16px;background:#111827;color:#fff;font-weight:1000;padding:.75rem .95rem}.ai-tool-grid-v1{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.ai-tool-grid-v1 div{background:#fff;border:1px solid rgba(15,23,42,.08);border-radius:20px;padding:1rem;box-shadow:0 10px 26px rgba(15,23,42,.05)}.ai-tool-grid-v1 b{display:block;color:#111827}.ai-tool-grid-v1 span{display:block;color:#64748b;font-weight:700;margin-top:.25rem}@media(max-width:575.98px){.ta-ai-assistant{right:14px;bottom:78px}.ta-ai-launch{width:56px;height:56px}.ta-ai-panel{right:-2px;bottom:68px}.ai-tool-grid-v1{grid-template-columns:1fr}}
