:root {
  --connect-accent: #708f83;
  --connect-accent-strong: #4f7064;
  --connect-ink: #3d4743;
  --connect-muted: #77817d;
  --connect-line: #e3e5df;
  --connect-bg: #f7f6f2;
  --connect-surface: #fffdfa;
  --connect-sage: #dfe9e2;
  --connect-blue: #e2e9f1;
  --connect-lilac: #ebe5ee;
  --connect-peach: #f3e5dc;
  --connect-shadow: 0 14px 38px rgba(66, 77, 71, .07);
}

.product-connect {
  background: var(--connect-bg);
  color: var(--connect-ink);
}

.connect-loading[hidden] { display: none; }
.connect-loading {
  position: fixed;
  inset: 0;
  z-index: 120;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(247, 246, 242, .76);
  backdrop-filter: blur(7px);
}
.connect-loading-card {
  display: grid;
  justify-items: center;
  width: min(300px, 100%);
  padding: 27px 24px 23px;
  border: 1px solid #dce4dd;
  border-radius: 20px;
  background: rgba(255, 253, 250, .96);
  box-shadow: 0 24px 70px rgba(55, 70, 62, .18);
  text-align: center;
}
.connect-loading-card strong { margin-top: 14px; color: var(--connect-ink); font-size: 15px; }
.connect-loading-card small { margin-top: 4px; color: var(--connect-muted); font-size: 11px; }
.connect-loading-spinner {
  width: 42px;
  height: 42px;
  border: 4px solid #dfe9e2;
  border-top-color: var(--connect-accent-strong);
  border-radius: 50%;
  animation: connect-spin .72s linear infinite;
}
@keyframes connect-spin { to { transform: rotate(360deg); } }

.product-connect .sidebar-overlay {
  display: none;
}

.connect-shell {
  min-height: 100vh;
  display: grid;
  grid-template-columns: 264px minmax(0, 1fr);
}

.connect-side {
  position: sticky;
  top: 0;
  z-index: 2;
  height: 100vh;
  padding: 24px 18px 18px;
  border-right: 1px solid #dfe3dc;
  background: #f0f2ed;
  color: var(--connect-ink);
  display: flex;
  flex-direction: column;
}

.connect-brand {
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 0 8px 22px;
}

.connect-brand > span {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border: 1px solid #cbd9d0;
  border-radius: 14px;
  background: linear-gradient(145deg, #dce9e1, #eee8f0);
  color: var(--connect-accent-strong);
  font-size: 23px;
  box-shadow: 0 8px 20px rgba(91, 116, 104, .08);
}

.connect-brand strong,
.connect-brand small {
  display: block;
}

.connect-brand strong {
  font-size: 17px;
  letter-spacing: -.02em;
}

.connect-brand small {
  margin-top: 3px;
  color: #89928d;
  font-size: 10px;
}

.connect-workspace {
  display: grid;
  gap: 5px;
  margin-bottom: 24px;
  padding: 14px;
  border: 1px solid #dde3dc;
  border-radius: 14px;
  background: rgba(255, 253, 250, .7);
}

.connect-workspace span,
.connect-nav-label {
  color: #8b948f;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.connect-workspace strong {
  overflow: hidden;
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.connect-nav-label {
  padding: 0 12px 9px;
}

.connect-side nav {
  display: grid;
  gap: 5px;
}

.connect-side nav a {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 12px;
  border: 1px solid transparent;
  border-radius: 12px;
  color: #68736e;
  font-size: 13px;
  font-weight: 650;
  transition: background .16s ease, border-color .16s ease, color .16s ease, transform .16s ease;
}

.connect-side nav a i {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 9px;
  background: rgba(255, 255, 255, .52);
  color: #7a8781;
  font-style: normal;
  font-size: 14px;
}

.connect-side nav a:hover {
  border-color: #d9e1da;
  background: rgba(255, 255, 255, .55);
  color: var(--connect-ink);
  transform: translateX(2px);
}

.connect-side nav a.active {
  border-color: #cbdad0;
  background: var(--connect-sage);
  color: #426357;
}

.connect-side nav a.active i {
  background: #f8fbf8;
  color: var(--connect-accent-strong);
}

.connect-profile {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  margin-top: auto;
  padding: 17px 8px 0;
  border-top: 1px solid #dce1da;
}

.connect-profile div {
  min-width: 0;
}

.connect-profile strong,
.connect-profile small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.connect-profile strong {
  font-size: 11px;
}

.connect-profile small {
  margin-top: 3px;
  color: #8b948f;
  font-size: 9px;
}

.connect-profile > a {
  color: #73807a;
  font-size: 10px;
  font-weight: 700;
}

.connect-avatar {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border: 1px solid #c9d8ce;
  border-radius: 13px;
  background: #dde8e1;
  color: #4f7064;
  font-size: 11px;
  font-weight: 850;
}

.connect-avatar.small {
  width: 36px;
  height: 36px;
  border-radius: 12px;
}

.connect-main {
  min-width: 0;
}

.connect-topbar {
  position: sticky;
  top: 0;
  z-index: 10;
  min-height: 88px;
  padding: 18px 32px;
  border-bottom: 1px solid var(--connect-line);
  background: rgba(255, 253, 250, .9);
  backdrop-filter: blur(14px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.connect-heading,
.connect-topbar-actions {
  display: flex;
  align-items: center;
}

.connect-heading {
  gap: 12px;
}

.connect-heading .menu-btn {
  display: none;
}

.connect-topbar .eyebrow {
  color: var(--connect-accent-strong);
  font-size: 9px;
}

.connect-topbar h1 {
  margin: 3px 0 0;
  color: #39433f;
  font-size: 23px;
  letter-spacing: -.035em;
}

.connect-topbar-actions {
  gap: 12px;
}

.connect-subscription-validity {
  display: grid;
  gap: 2px;
  padding: 6px 10px;
  border-left: 1px solid var(--connect-line);
  color: #66736d;
  line-height: 1.15;
}

.connect-subscription-validity small {
  color: #8b9690;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.connect-subscription-validity > span {
  font-size: 11px;
  font-weight: 650;
  white-space: nowrap;
}

.connect-subscription-validity i {
  margin: 0 3px;
  color: #a5ada8;
  font-style: normal;
}

.connect-content {
  width: min(1440px, 100%);
  margin: 0 auto;
  padding: 30px 32px 42px;
}

.connect-alert {
  margin-bottom: 18px;
  padding: 14px 16px;
  border: 1px solid #cfded5;
  border-radius: 13px;
  background: #edf4ef;
  color: #49685d;
}

.connect-alert.error {
  border-color: #e8cfc8;
  background: #fbefeb;
  color: #8d5549;
}

.connect-hero {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
  padding: 32px;
  border: 1px solid #dde1dc;
  border-radius: 24px;
  background:
    radial-gradient(circle at 88% 10%, rgba(255, 255, 255, .75), transparent 31%),
    linear-gradient(135deg, var(--connect-sage), var(--connect-blue) 56%, var(--connect-lilac));
  color: #3d4b46;
  box-shadow: var(--connect-shadow);
}

.connect-hero::after {
  position: absolute;
  right: 8%;
  bottom: -82px;
  width: 190px;
  height: 190px;
  border: 1px solid rgba(255, 255, 255, .65);
  border-radius: 50%;
  content: "";
}

.connect-hero > * {
  position: relative;
  z-index: 1;
}

.connect-hero span,
.card-title span {
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .15em;
}

.connect-hero h2 {
  margin: 9px 0 7px;
  font-size: 29px;
  letter-spacing: -.04em;
}

.connect-hero p {
  max-width: 670px;
  margin: 0;
  color: #65726d;
  line-height: 1.55;
}

.connect-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 43px;
  padding: 11px 17px;
  border: 0;
  border-radius: 12px;
  background: var(--connect-accent-strong);
  color: #fff;
  font: inherit;
  font-size: 13px;
  font-weight: 750;
  cursor: pointer;
  transition: transform .16s ease, box-shadow .16s ease;
}

.connect-button:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(76, 108, 96, .18);
}

.connect-button.light {
  border: 1px solid rgba(108, 132, 121, .22);
  background: rgba(255, 253, 250, .82);
  color: #4d6c61;
  white-space: nowrap;
}

.connect-button.small {
  min-height: 38px;
  padding: 8px 14px;
}

.connect-metrics {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 15px;
  margin: 20px 0;
}

.connect-metrics.three {
  grid-template-columns: repeat(3, 1fr);
}

.connect-metrics article,
.connect-card {
  border: 1px solid var(--connect-line);
  border-radius: 18px;
  background: var(--connect-surface);
  box-shadow: var(--connect-shadow);
}

.connect-metrics article {
  position: relative;
  overflow: hidden;
  padding: 21px;
}

.connect-metrics article::before {
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: var(--connect-sage);
  content: "";
}

.connect-metrics article:nth-child(2)::before { background: var(--connect-blue); }
.connect-metrics article:nth-child(3)::before { background: var(--connect-lilac); }
.connect-metrics article:nth-child(4)::before { background: var(--connect-peach); }

.connect-metrics span {
  color: var(--connect-muted);
  font-size: 12px;
}

.connect-metrics strong {
  display: block;
  margin: 8px 0 3px;
  color: #36413d;
  font-size: 28px;
}

.connect-metrics small {
  color: #929a96;
}

.connect-grid {
  display: grid;
  gap: 18px;
}

.connect-grid.two {
  grid-template-columns: 1.45fr 1fr;
}

.connect-card {
  padding: 24px;
}

.card-title {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 15px;
  margin-bottom: 20px;
}

.card-title span {
  color: var(--connect-accent-strong);
}

.card-title h2 {
  margin: 5px 0 0;
  color: #3d4743;
  font-size: 18px;
}

.card-title p {
  margin: 7px 0 0;
  color: var(--connect-muted);
  font-size: 13px;
  line-height: 1.5;
}

.card-title a,
.public-link {
  color: var(--connect-accent-strong);
  font-size: 12px;
  font-weight: 750;
}

.ranking {
  margin: 0;
  padding: 0;
  list-style: none;
}

.ranking li {
  display: grid;
  grid-template-columns: 28px 1fr auto;
  align-items: center;
  gap: 10px;
  padding: 13px 0;
  border-bottom: 1px solid #ecece7;
}

.ranking li:last-child { border: 0; }

.ranking li > b {
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  border-radius: 9px;
  background: var(--connect-sage);
  color: var(--connect-accent-strong);
  font-size: 11px;
}

.mini-chart {
  min-height: 190px;
  display: flex;
  align-items: end;
  gap: 10px;
  padding-top: 20px;
}

.mini-chart > div {
  height: 170px;
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: end;
  gap: 7px;
  text-align: center;
}

.mini-chart i {
  display: block;
  min-height: 3px;
  border-radius: 7px 7px 3px 3px;
  background: linear-gradient(#b8cfc4, var(--connect-accent));
}

.mini-chart small,
.empty-state {
  color: var(--connect-muted);
  font-size: 11px;
}

.empty-state { font-size: 13px; }

.editor-grid {
  grid-template-columns: minmax(420px, 1fr) minmax(300px, .75fr);
  align-items: start;
}

.connect-form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.connect-form label {
  display: grid;
  gap: 7px;
  color: #56625d;
  font-size: 12px;
  font-weight: 700;
}

.connect-form > label:nth-of-type(2) { grid-column: 1 / -1; }

.asset-upload-grid {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.asset-uploader {
  min-width: 0;
  padding: 13px;
  border: 1px solid var(--connect-line);
  border-radius: 15px;
  background: #f9f8f4;
  display: grid;
  grid-template-columns: 76px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
}

.asset-uploader > div:last-child { min-width: 0; }
.asset-uploader strong, .asset-uploader small { display: block; }
.asset-uploader strong { font-size: 12px; }
.asset-uploader small { margin: 4px 0 9px; color: var(--connect-muted); font-size: 9px; line-height: 1.35; }

.asset-thumb {
  width: 76px;
  height: 76px;
  overflow: hidden;
  border: 1px dashed #cbd2cc;
  border-radius: 14px;
  background: #efefea;
  color: #919a95;
  display: grid;
  place-items: center;
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .1em;
}

.asset-thumb img { width: 100%; height: 100%; object-fit: cover; }
.background-thumb { border-radius: 11px; }

.asset-picker {
  display: inline-flex !important;
  width: fit-content;
  padding: 7px 9px;
  border: 1px solid #cbd9d0;
  border-radius: 9px;
  background: var(--connect-sage);
  color: var(--connect-accent-strong) !important;
  font-size: 10px !important;
  cursor: pointer;
}

.asset-picker input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.asset-remove { margin-left: 6px; padding: 7px 3px; border: 0; background: transparent; color: #8c6b62; font: inherit; font-size: 9px; cursor: pointer; }
.upload-status { grid-column: 1 / -1; min-height: 16px; margin: -4px 0 0; color: var(--connect-accent-strong); font-size: 11px; }
.upload-status.error { color: #9e5b4f; }
.field-hint { display: block; color: var(--connect-muted); font-size: 10px; }
.field-hint[data-state="available"] { color: #4c725f; }
.field-hint[data-state="unavailable"] { color: #9e5b4f; font-weight: 700; }

.connect-form input,
.connect-form textarea,
.feature-fields input,
.feature-fields select,
.device-actions input,
.device-actions select,
.filter-bar input,
.filter-bar select {
  width: 100%;
  padding: 11px 12px;
  border: 1px solid #daddd7;
  border-radius: 11px;
  background: #fffefa;
  color: inherit;
  font: inherit;
  outline: 0;
}

.connect-form input:focus,
.connect-form textarea:focus,
.feature-fields input:focus,
.feature-fields select:focus,
.device-actions input:focus,
.device-actions select:focus,
.filter-bar input:focus,
.filter-bar select:focus {
  border-color: #9fb8aa;
  box-shadow: 0 0 0 4px rgba(154, 184, 169, .16);
}

.connect-form textarea { resize: vertical; }
.connect-form .connect-button { grid-column: 1 / -1; justify-self: start; }
.field-error { display: block; color: #9e5b4f; font-size: 11px; }

.preview-wrap {
  position: sticky;
  top: 116px;
  display: grid;
  justify-items: center;
  gap: 14px;
}

.phone {
  width: 285px;
  padding: 9px;
  border: 5px solid #59635f;
  border-radius: 38px;
  background: #59635f;
  box-shadow: 0 28px 50px rgba(62, 73, 68, .18);
}

.phone-screen {
  min-height: 520px;
  padding: 58px 24px 24px;
  border-radius: 28px;
  background: #f5f4ef;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.preview-logo {
  width: 78px;
  height: 78px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border-radius: 24px;
  background: var(--connect-accent);
  background-position: center;
  background-size: cover;
  color: #fff;
  font-size: 24px;
  font-weight: 850;
}

.phone h3 { margin: 20px 0 7px; font-size: 20px; }
.phone p { min-height: 55px; margin: 0; color: #6f7974; font-size: 12px; }

.preview-button {
  width: 100%;
  margin-top: 18px;
  padding: 14px;
  border-radius: 12px;
  background: var(--connect-accent);
  color: #fff;
  text-align: left;
  font-size: 12px;
}

.preview-button b { float: right; }
.phone small { margin-top: auto; color: #9aa19d; font-size: 9px; }

.feature-list { display: grid; gap: 12px; }

.feature-card {
  display: grid;
  grid-template-columns: 28px 1fr auto;
  gap: 14px;
  align-items: center;
  padding: 16px;
  border: 1px solid var(--connect-line);
  border-radius: 15px;
  background: #fbfaf7;
}

.feature-card.dragging { opacity: .45; }
.feature-card.is-disabled { background: #f4f3ef; }
.feature-card.is-disabled .feature-fields { opacity: .62; }
.drag { color: #9da6a1; font-size: 22px; cursor: grab; }
.feature-fields { display: grid; grid-template-columns: 140px 1fr 1.5fr; gap: 10px; }
.feature-fields label { display: grid; gap: 5px; color: var(--connect-muted); font-size: 10px; }
.feature-phone, .feature-message { display: none !important; }
.feature-card:has(select option[value="WHATSAPP"]:checked) .feature-url { display: none; }
.feature-card:has(select option[value="WHATSAPP"]:checked) .feature-phone,
.feature-card:has(select option[value="WHATSAPP"]:checked) .feature-message { display: grid !important; }

.switch { display: flex; align-items: center; gap: 7px; font-size: 11px; }
.switch input { position: absolute; opacity: 0; }
.switch span { width: 38px; height: 22px; padding: 3px; border-radius: 99px; background: #c9ceca; }
.switch span::before { display: block; width: 16px; height: 16px; border-radius: 50%; background: #fff; content: ""; transition: .2s; }
.switch input:checked + span { background: var(--connect-accent); }
.switch input:checked + span::before { transform: translateX(16px); }

.responsive-table { overflow: auto; }
.product-connect table { width: 100%; border-collapse: collapse; }
.product-connect th, .product-connect td { padding: 14px 10px; border-bottom: 1px solid #ecece7; text-align: left; font-size: 12px; }
.product-connect th { color: var(--connect-muted); font-size: 10px; text-transform: uppercase; }
.product-connect code { padding: 5px 7px; border-radius: 7px; background: #f0f1ed; }

.status { padding: 5px 8px; border-radius: 99px; background: #eef0ed; font-size: 9px; font-weight: 800; }
.status.active { background: #e1eee6; color: #4c725f; }
.status.blocked { background: #f5e3de; color: #92594e; }
.status.available { background: #e4eaf1; color: #5e7084; }

.device-actions { display: flex; gap: 7px; }
.device-actions input { min-width: 110px; }
.device-actions button { border: 0; border-radius: 8px; background: var(--connect-sage); color: #4d6c60; font-weight: 700; }
.nfc-address { display: grid; gap: 6px; min-width: 280px; }
.nfc-address a { color: #4d6c60; font-size: 10px; overflow-wrap: anywhere; }
.nfc-address button { justify-self: start; padding: 6px 9px; border: 1px solid #d8ddd7; border-radius: 8px; background: #f7f8f4; color: #53615b; font-size: 9px; font-weight: 750; cursor: pointer; }
.nfc-onboarding { margin-bottom: 18px; }
.device-create-form { display: grid; grid-template-columns: 1fr 1fr auto; gap: 12px; align-items: end; }
.device-create-form.device-create-simple { grid-template-columns: minmax(240px, 1fr) auto; }
.device-create-form label { display: grid; gap: 6px; color: var(--connect-muted); font-size: 10px; }
.device-create-form input { width: 100%; padding: 11px 12px; border: 1px solid #daddd7; border-radius: 11px; background: #fffefa; color: inherit; font: inherit; outline: 0; }
.device-create-form small { color: #8b948f; }
.device-link-form { display: grid; grid-template-columns: minmax(320px, 1.5fr) minmax(220px, 1fr) auto; gap: 12px; align-items: end; }
.device-link-form label { display: grid; gap: 6px; color: var(--connect-muted); font-size: 10px; }
.device-link-form input { width: 100%; padding: 11px 12px; border: 1px solid #daddd7; border-radius: 11px; background: #fffefa; color: inherit; font: inherit; outline: 0; }
.device-link-form small { color: #8b948f; }
.analytics-explainer { margin: 0 0 14px; padding: 12px 14px; border-radius: 12px; background: #edf2ee; color: #587066; font-size: 11px; line-height: 1.55; }
.analytics-detail-grid { grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr); }
.daily-access-list { display: grid; max-height: 430px; overflow: auto; border: 1px solid var(--connect-line); border-radius: 13px; }
.daily-access-row { display: grid; grid-template-columns: minmax(95px, 1fr) 1fr 1fr auto; align-items: center; gap: 12px; padding: 12px 14px; border-bottom: 1px solid var(--connect-line); color: #53615b; text-decoration: none; transition: background .16s ease, color .16s ease; }
.daily-access-row:last-child { border-bottom: 0; }
.daily-access-row:hover { background: #f3f6f2; }
.daily-access-row.selected { background: var(--connect-sage); color: var(--connect-accent-strong); }
.daily-access-row time { font-weight: 750; }
.daily-access-row span { font-size: 11px; }
.daily-access-row span strong { font-size: 14px; }
.daily-access-row > b { font-size: 9px; text-transform: uppercase; letter-spacing: .04em; }
.feature-day-ranking li > span { display: grid; gap: 2px; }
.feature-day-ranking li > strong { color: var(--connect-accent-strong); font-size: 11px; }
.menu-settings { grid-column: 1 / -1; display: grid; gap: 12px; }
.menu-settings > label { max-width: none; }
.internal-menu-editor { padding: 14px; border: 1px solid #dde2dc; border-radius: 14px; background: #f9faf7; }
.internal-menu-editor[hidden], [data-menu-link][hidden] { display: none !important; }
.menu-editor-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.menu-editor-heading strong, .menu-editor-heading small { display: block; }
.menu-editor-heading small { margin-top: 3px; color: var(--connect-muted); font-size: 10px; }
.menu-editor-heading button, .menu-item-remove { border: 0; border-radius: 9px; padding: 8px 10px; background: var(--connect-sage); color: #4d6c60; font-weight: 750; cursor: pointer; }
.menu-item-list { display: grid; gap: 10px; }
.menu-item-row { display: grid; grid-template-columns: 88px 1fr 1.2fr 2fr .8fr auto; align-items: end; gap: 8px; padding: 10px; border: 1px solid #e3e6e1; border-radius: 11px; background: #fffefa; }
.menu-item-row label { min-width: 0; }
.menu-item-row input, .menu-item-row textarea { width: 100%; }
.menu-item-remove { background: #f6e8e3; color: #8e5d52; }
.menu-item-media { display: grid; gap: 5px; align-self: stretch; }
.menu-item-thumb { min-height: 74px; overflow: hidden; display: grid; place-items: center; border: 1px dashed #d4dad4; border-radius: 10px; background: #f1f3ef; color: #89928d; font-size: 9px; }
.menu-item-thumb img { width: 100%; height: 100%; min-height: 74px; object-fit: cover; }
.menu-item-picker { display: block !important; padding: 6px; border-radius: 7px; background: #e5eee8; color: #4d6c60 !important; text-align: center; font-size: 9px !important; font-weight: 750; cursor: pointer; }
.menu-item-picker input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.menu-image-remove { border: 0; background: none; color: #96675d; font-size: 8px; cursor: pointer; }
.menu-upload-status { min-height: 16px; margin: 10px 0 0; color: #587066; font-size: 10px; }
.menu-upload-status.error { color: #a14f43; }

.filter-bar {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 15px;
  border: 1px solid var(--connect-line);
  border-radius: 15px;
  background: var(--connect-surface);
}

.filter-bar label { display: flex; align-items: center; gap: 7px; color: var(--connect-muted); font-size: 11px; }
.settings-card { max-width: 760px; }
.settings-card dl { margin: 0; }
.settings-card dl div { display: grid; grid-template-columns: 170px 1fr; padding: 15px 0; border-bottom: 1px solid #ecece7; }
.settings-card dt { color: var(--connect-muted); }
.settings-card dd { margin: 0; font-weight: 650; }

.security-note {
  margin: 20px 0 0;
  padding: 14px;
  border-radius: 11px;
  background: #edf2ee;
  color: #587066;
  font-size: 12px;
}

@media (max-width: 1050px) {
  .connect-metrics { grid-template-columns: repeat(2, 1fr); }
  .connect-grid.two, .editor-grid { grid-template-columns: 1fr; }
  .preview-wrap { position: static; }
  .feature-fields { grid-template-columns: 1fr 1fr; }
  .feature-url, .feature-message { grid-column: 1 / -1; }
  .analytics-detail-grid { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
  .connect-shell { display: block; }
  .connect-side {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 40;
    width: min(286px, 86vw);
    transform: translateX(-105%);
    transition: transform .22s ease;
    box-shadow: 18px 0 40px rgba(52, 62, 57, .16);
  }
  .connect-side.open { transform: translateX(0); }
  .product-connect .sidebar-overlay.is-open {
    position: fixed;
    inset: 0;
    z-index: 30;
    display: block;
    border: 0;
    background: rgba(52, 61, 57, .32);
  }
  .connect-heading .menu-btn {
    display: inline-grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border: 1px solid #d8ddd7;
    border-radius: 12px;
    background: #f5f6f2;
    color: #53615b;
    font-size: 18px;
  }
  .connect-topbar { min-height: 76px; padding: 14px 18px; }
  .connect-content { padding: 20px 18px 34px; }
  .connect-hero { align-items: start; flex-direction: column; }
}

@media (max-width: 680px) {
  .connect-topbar .product-switch { display: none; }
  .connect-subscription-validity { padding-inline: 8px; }
  .connect-metrics, .connect-metrics.three { grid-template-columns: 1fr 1fr; }
  .feature-card { grid-template-columns: 20px 1fr; }
  .feature-fields { grid-template-columns: 1fr; }
  .menu-item-row { grid-template-columns: 1fr 1fr; }
  .menu-item-media { grid-column: 1 / -1; grid-template-columns: 88px 1fr auto; align-items: center; }
  .menu-item-row label:nth-child(4) { grid-column: 1 / -1; }
  .switch { grid-column: 2; }
  .filter-bar, .device-actions { align-items: stretch; flex-direction: column; }
  .device-create-form { grid-template-columns: 1fr; }
  .device-create-form.device-create-simple { grid-template-columns: 1fr; }
  .device-link-form { grid-template-columns: 1fr; }
  .connect-form { grid-template-columns: 1fr; }
  .connect-form label { grid-column: 1 !important; }
  .asset-upload-grid { grid-template-columns: 1fr; }
  .card-title { align-items: stretch; flex-direction: column; }
  .user-quota { width: 100%; text-align: left; }
  .connect-button { width: 100%; }
  .daily-access-row { grid-template-columns: 1fr 1fr; }
  .daily-access-row > b { text-align: right; }
}

@media (max-width: 480px) {
  .connect-topbar h1 { font-size: 20px; }
  .connect-avatar.small { display: none; }
  .connect-subscription-validity small { display: none; }
  .connect-metrics, .connect-metrics.three { grid-template-columns: 1fr; }
  .connect-hero { padding: 24px; }
  .connect-hero h2 { font-size: 25px; }
  .connect-card { padding: 18px; }
  .phone { width: 100%; max-width: 285px; }
  .connect-content { padding-inline: 12px; }
  .connect-topbar { padding-inline: 12px; }
  .menu-item-row { grid-template-columns: 1fr; }
  .menu-item-media, .menu-item-row label:nth-child(4) { grid-column: 1; }
}

@media (prefers-reduced-motion: reduce) {
  .connect-loading-spinner { animation-duration: 1.5s; }
}


.loyalty-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.loyalty-stats article{padding:20px;border:1px solid var(--connect-line);border-radius:18px;background:#fff}.loyalty-stats span{display:block;color:var(--connect-muted);font-size:12px}.loyalty-stats strong{display:block;margin-top:8px;color:var(--connect-ink);font-size:28px}.loyalty-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.75fr);gap:18px;margin-bottom:18px}.loyalty-program-form,.loyalty-operation form{display:grid;gap:14px}.loyalty-program-form label,.loyalty-operation label{display:grid;gap:7px}.loyalty-program-form label>span,.loyalty-operation label>span{font-size:12px;font-weight:750;color:var(--connect-ink)}.loyalty-program-form input,.loyalty-program-form select,.loyalty-program-form textarea,.loyalty-operation input,.reverse-form input{width:100%;padding:11px 12px;border:1px solid var(--connect-line);border-radius:11px;background:#fbfcfa;color:var(--connect-ink)}.loyalty-program-form textarea{resize:vertical}.loyalty-program-form small{color:var(--connect-muted)}.loyalty-tip{margin-top:20px;padding:16px;border-radius:14px;background:#f5f7f3;color:var(--connect-muted);font-size:13px;line-height:1.5}.loyalty-tip strong{color:var(--connect-ink)}.loyalty-tip p{margin:5px 0 0}.table-subline{display:block;margin-top:4px;color:var(--connect-muted)}.customer-code{display:inline-block;padding:7px 9px;border-radius:8px;background:#f0f4ec;font-weight:800;letter-spacing:.08em}.mini-progress{width:100px;height:6px;margin-top:7px;overflow:hidden;border-radius:10px;background:#e6ebe3}.mini-progress span{display:block;height:100%;border-radius:inherit;background:#8ba58e}.inline-loyalty-action{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px}.inline-loyalty-action span,.inline-loyalty-action small{display:block}.inline-loyalty-action button,.reverse-form button{padding:7px 9px;border:0;border-radius:8px;background:#e8efe7;color:#49614d;font-weight:750;cursor:pointer}.reverse-form{display:grid;gap:6px;min-width:170px}.reverse-form input{padding:7px 8px}.muted{color:var(--connect-muted);font-size:12px}.status.inactive{background:#f1f2ef;color:#69726c}
.reward-config{display:grid;gap:12px;padding:15px;border:1px solid var(--connect-line);border-radius:15px;background:#f8faf7}.reward-config-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.reward-config-heading strong,.reward-config-heading small{display:block}.reward-config-heading small{margin-top:4px}.reward-config-heading button{flex:none;padding:8px 10px;border:0;border-radius:9px;background:#e6eee5;color:#45604a;font-size:12px;font-weight:800;cursor:pointer}.reward-config-rows{display:grid;gap:9px}.reward-config-row{position:relative;display:grid;grid-template-columns:130px minmax(160px,1fr) 120px 34px;align-items:end;gap:8px;padding:12px;border:1px solid #e0e7de;border-radius:12px;background:#fff}.reward-config-row[hidden]{display:none}.reward-config-row label{gap:5px}.reward-remove{width:34px;height:40px;border:0;border-radius:9px;background:#f8eaea;color:#a33b3b;font-size:20px;cursor:pointer}.reward-row-error{grid-column:1/-1}@media(max-width:680px){.reward-config-heading{display:grid}.reward-config-heading button{justify-self:start}.reward-config-row{grid-template-columns:1fr 1fr}.reward-config-row .reward-name{grid-column:1/-1}.reward-remove{position:absolute;top:8px;right:8px}}
@media(max-width:900px){.loyalty-stats{grid-template-columns:repeat(2,1fr)}.loyalty-grid{grid-template-columns:1fr}}@media(max-width:520px){.loyalty-stats{grid-template-columns:1fr 1fr}.loyalty-stats article{padding:15px}.loyalty-stats strong{font-size:23px}}
.loyalty-scan-button{width:100%;margin-bottom:14px;background:#6f8a73}.loyalty-divider{display:flex;align-items:center;gap:10px;margin:0 0 14px;color:var(--connect-muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em}.loyalty-divider:before,.loyalty-divider:after{content:"";height:1px;flex:1;background:var(--connect-line)}.loyalty-scanned-customer{display:grid;gap:3px;padding:13px;border:1px solid #bad0bb;border-radius:12px;background:#f0f7ef}.loyalty-scanned-customer span,.loyalty-scanned-customer small{color:var(--connect-muted)}.loyalty-scanner-modal[hidden]{display:none}.loyalty-scanner-modal{position:fixed;z-index:80;inset:0;padding:18px;display:grid;place-items:center;background:rgba(27,34,29,.68);backdrop-filter:blur(7px)}.loyalty-scanner-modal>section{position:relative;width:min(500px,100%);padding:24px;border-radius:24px;background:#fff;box-shadow:0 28px 80px rgba(0,0,0,.3)}.scanner-viewport{position:relative;overflow:hidden;aspect-ratio:1;border-radius:18px;background:#18201b}.scanner-viewport video{width:100%;height:100%;display:block;object-fit:cover}.scanner-viewport span{position:absolute;inset:15%;border:3px solid rgba(255,255,255,.9);border-radius:20px;box-shadow:0 0 0 999px rgba(0,0,0,.22)}.scanner-status{min-height:20px;margin:13px 0;color:var(--connect-muted);text-align:center;font-size:13px}.scanner-status.error{color:#b42318}.scanner-cancel{width:100%;padding:11px;border:0;border-radius:11px;background:#eef1ed;color:var(--connect-ink);font-weight:750;cursor:pointer}.scanner-open{overflow:hidden}
.loyalty-redemption-history{margin-top:18px}.history-total{padding:7px 10px;border-radius:999px;background:#f0f4ec;color:#586b5b;font-size:11px;font-weight:800}.redemption-stamps{display:inline-block;padding:6px 9px;border-radius:9px;background:#f5f1e8;color:#766348;font-size:12px;font-weight:750}.loyalty-history-pagination{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-top:16px;border-top:1px solid var(--connect-line);color:var(--connect-muted);font-size:12px}.loyalty-history-pagination div{display:flex;gap:8px}.loyalty-history-pagination a{padding:8px 11px;border:1px solid var(--connect-line);border-radius:9px;background:#fff;color:var(--connect-ink);font-weight:750;text-decoration:none}@media(max-width:600px){.loyalty-history-pagination{align-items:flex-start;flex-direction:column}.loyalty-history-pagination div{width:100%;justify-content:space-between}}
