/* =========================================================
   Campaign Hub — design system
   ========================================================= */
:root {
  --ink: #0b1220;
  --ink-2: #131c33;
  --ink-3: #1d2846;
  --bg: #f4f6fb;
  --surface: #ffffff;
  --surface-2: #f8fafc;
  --border: #e5e8f0;
  --border-2: #d6dbe7;
  --text: #0f172a;
  --text-2: #334155;
  --muted: #64748b;
  --primary: #4f46e5;
  --primary-600: #4338ca;
  --primary-soft: #eef2ff;
  --accent: #f59e0b;
  --accent-600: #d97706;
  --accent-soft: #fff7e6;
  --ok: #059669;
  --ok-soft: #ecfdf5;
  --warn: #b45309;
  --warn-soft: #fffbeb;
  --danger: #dc2626;
  --danger-soft: #fef2f2;
  --gray-soft: #f1f5f9;
  --wa: #25d366;
  --radius: 16px;
  --radius-sm: 10px;
  --shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);
  --shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 6px 24px rgba(15, 23, 42, .06);
  --shadow-lg: 0 12px 40px rgba(15, 23, 42, .14);
  --font: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --mono: ui-monospace, "SFMono-Regular", Consolas, monospace;
}

* {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
}

body {
  font-family: var(--font);
  background: var(--bg);
  color: var(--text);
  line-height: 1.55;
  font-size: 15px;
  -webkit-font-smoothing: antialiased;
}

a {
  color: var(--primary);
  text-decoration: none;
}

img {
  max-width: 100%;
}

h1,
h2,
h3 {
  letter-spacing: -.02em;
  line-height: 1.2;
}

.container {
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 16px;
}

.narrow {
  max-width: 980px;
}

.muted {
  color: var(--muted);
}

[hidden] {
  display: none !important;
}

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border: 1px solid var(--border-2);
  background: var(--surface);
  color: var(--text);
  padding: 10px 16px;
  border-radius: var(--radius-sm);
  font: inherit;
  font-weight: 600;
  font-size: 14px;
  cursor: pointer;
  white-space: nowrap;
  transition: all .15s ease;
  text-decoration: none;
  line-height: 1.2;
}

.btn:hover {
  background: var(--surface-2);
  border-color: #c3cad9;
}

.btn:active {
  transform: translateY(1px);
}

.btn svg {
  width: 16px;
  height: 16px;
  flex: none;
}

.btn-primary {
  background: var(--primary);
  border-color: var(--primary);
  color: #fff;
  box-shadow: 0 4px 14px rgba(79, 70, 229, .3);
}

.btn-primary:hover {
  background: var(--primary-600);
  border-color: var(--primary-600);
}

.btn-accent {
  background: var(--accent);
  border-color: var(--accent);
  color: #1c1203;
  box-shadow: 0 4px 14px rgba(245, 158, 11, .3);
}

.btn-accent:hover {
  background: var(--accent-600);
  border-color: var(--accent-600);
}

.btn-wa {
  background: var(--wa);
  border-color: var(--wa);
  color: #fff;
}

.btn-wa:hover {
  background: #1fb956;
  border-color: #1fb956;
}

.btn-ghost {
  background: transparent;
  border-color: transparent;
}

.btn-ghost:hover {
  background: var(--gray-soft);
  border-color: transparent;
}

.btn-danger {
  color: var(--danger);
}

.btn-danger:hover {
  background: var(--danger-soft);
  border-color: #fecaca;
}

.btn-sm {
  padding: 7px 11px;
  font-size: 13px;
  border-radius: 8px;
}

.btn-icon {
  padding: 8px;
  width: 34px;
  height: 34px;
}

.btn-block {
  width: 100%;
}

/* ---------- Badges / chips ---------- */
.badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 999px;
  white-space: nowrap;
}

.badge .dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: currentColor;
}

.badge-live {
  background: var(--ok-soft);
  color: var(--ok);
}

.badge-live .dot {
  animation: pulse 1.6s infinite;
}

.badge-ended {
  background: var(--gray-soft);
  color: var(--muted);
}

.badge-inactive {
  background: var(--warn-soft);
  color: var(--warn);
}

@keyframes pulse {
  0% {
    box-shadow: 0 0 0 0 rgba(5, 150, 105, .5);
  }

  70% {
    box-shadow: 0 0 0 6px rgba(5, 150, 105, 0);
  }

  100% {
    box-shadow: 0 0 0 0 rgba(5, 150, 105, 0);
  }
}

.chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 4px 11px;
  font-size: 13px;
  font-weight: 500;
  color: var(--text-2);
}

.days {
  font-size: 12px;
  font-weight: 700;
  padding: 3px 9px;
  border-radius: 999px;
  white-space: nowrap;
}

.d-ok {
  background: var(--primary-soft);
  color: var(--primary);
}

.d-urgent {
  background: #fff1f2;
  color: #e11d48;
}

.d-ended {
  background: var(--gray-soft);
  color: var(--muted);
}

.card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}

/* ---------- Public top bar + hero ---------- */
.site-top {
  background: var(--ink);
  color: #fff;
  position: relative;
  z-index: 2;
}

.site-top .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 64px;
  gap: 12px;
}

.logo {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #fff;
  font-weight: 800;
  font-size: 18px;
  letter-spacing: -.02em;
  white-space: nowrap;
}

.logo-mark {
  width: 34px;
  height: 34px;
  border-radius: 10px;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, var(--accent), #fb7185);
  font-size: 17px;
}

.site-top nav {
  display: flex;
  gap: 4px;
}

.site-top nav a {
  color: #b6c0dc;
  padding: 8px 12px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 600;
}

.site-top nav a:hover {
  color: #fff;
  background: rgba(255, 255, 255, .08);
}

.hero {
  position: relative;
  overflow: hidden;
  color: #fff;
  background:
    radial-gradient(600px 300px at 85% -10%, rgba(99, 102, 241, .45), transparent 70%),
    radial-gradient(500px 280px at 0% 110%, rgba(245, 158, 11, .25), transparent 70%),
    var(--ink);
}

.hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(255, 255, 255, .07) 1px, transparent 1px);
  background-size: 22px 22px;
  mask-image: linear-gradient(to bottom, #000, transparent);
  pointer-events: none;
}

.hero>* {
  position: relative;
  z-index: 1;
}

.hero-list {
  padding: 44px 0 90px;
}

.hero-list h1 {
  font-size: 40px;
  margin: 0 0 10px;
  font-weight: 800;
}

.hero-list h1 em {
  font-style: normal;
  background: linear-gradient(90deg, #fbbf24, #fb7185);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.hero-list p {
  margin: 0;
  color: #b6c0dc;
  font-size: 16px;
  max-width: 560px;
}

.hero-stats {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 22px;
}

.hero-stat {
  background: rgba(255, 255, 255, .07);
  border: 1px solid rgba(255, 255, 255, .1);
  border-radius: 12px;
  padding: 10px 16px;
  backdrop-filter: blur(6px);
}

.hero-stat b {
  display: block;
  font-size: 22px;
  font-weight: 800;
}

.hero-stat span {
  font-size: 12px;
  color: #b6c0dc;
  font-weight: 600;
}

.toolbar {
  margin-top: -30px;
  position: relative;
  z-index: 3;
  padding: 10px;
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
}

.search-box {
  flex: 1;
  min-width: 220px;
  position: relative;
}

.search-box svg {
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  width: 18px;
  height: 18px;
  color: var(--muted);
}

.search-box input {
  width: 100%;
  border: 1px solid transparent;
  background: var(--surface-2);
  border-radius: 10px;
  padding: 12px 14px 12px 42px;
  font: inherit;
  color: var(--text);
}

.search-box input:focus {
  outline: none;
  border-color: var(--primary);
  background: #fff;
  box-shadow: 0 0 0 4px var(--primary-soft);
}

.tabs {
  display: inline-flex;
  background: var(--gray-soft);
  border-radius: 10px;
  padding: 4px;
  gap: 2px;
  flex-wrap: wrap;
}

.tab {
  border: 0;
  background: transparent;
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  color: var(--muted);
  padding: 8px 14px;
  border-radius: 8px;
  cursor: pointer;
  display: inline-flex;
  gap: 6px;
  align-items: center;
}

.tab .n {
  background: rgba(15, 23, 42, .07);
  border-radius: 999px;
  padding: 0 7px;
  font-size: 11px;
}

.tab.active {
  background: #fff;
  color: var(--text);
  box-shadow: var(--shadow-sm);
}

.tab.active .n {
  background: var(--primary-soft);
  color: var(--primary);
}

/* ---------- Campaign cards (list) ---------- */
.grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 18px;
  padding: 22px 0 60px;
}

.c-card {
  display: flex;
  flex-direction: column;
  color: var(--text);
  overflow: hidden;
  transition: transform .2s ease, box-shadow .2s ease;
}

.c-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-lg);
}

.c-card .band {
  height: 6px;
  background: linear-gradient(90deg, var(--primary), #a855f7, var(--accent));
}

.c-card.is-ended .band {
  background: var(--border-2);
}

.c-card .body {
  padding: 18px 18px 14px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  flex: 1;
}

.c-card .top {
  display: flex;
  gap: 12px;
  align-items: flex-start;
}

.emoji-tile {
  min-width: 48px;
  width: auto !important;
  padding: 0 8px;
  height: 48px;
  flex: none;
  border-radius: 14px;
  display: grid;
  place-items: center;
  font-size: 24px;
  background: var(--primary-soft);
  white-space: nowrap;
  letter-spacing: -.12em;
}

.c-card h3 {
  margin: 2px 0 4px;
  font-size: 17px;
  font-weight: 800;
}

.c-card .tag {
  font-size: 13px;
  color: var(--muted);
  display: -webkit-box;
  -webkit-line-clamp: 1;
  line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.offer-pill {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  background: linear-gradient(135deg, #fff7e6, #ffedd5);
  border: 1px dashed #fbbf24;
  border-radius: 12px;
  padding: 10px 14px;
}

.offer-pill b {
  color: #9a3412;
  font-size: 16px;
  font-weight: 800;
}

.offer-pill small {
  color: #b45309;
  font-weight: 600;
  font-size: 12px;
}

.seg-mini {
  display: grid;
  gap: 8px;
}

.seg-mini .r {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  font-size: 14px;
}

.seg-mini .r b {
  font-weight: 700;
}

.seg-mini .r span.dt {
  color: var(--muted);
  font-size: 13px;
}

.c-card .foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 12px 18px;
  border-top: 1px solid var(--border);
  background: var(--surface-2);
  font-size: 13px;
  color: var(--muted);
}

.c-card .foot .go {
  color: var(--primary);
  font-weight: 700;
}

.empty {
  text-align: center;
  padding: 60px 16px;
  color: var(--muted);
}

.empty .big {
  font-size: 40px;
}

/* ---------- Campaign detail ---------- */
.hero-detail {
  padding: 30px 0 110px;
}

.crumb {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #b6c0dc;
  font-size: 14px;
  font-weight: 600;
}

.crumb:hover {
  color: #fff;
}

.hd {
  display: flex;
  gap: 18px;
  align-items: center;
  margin-top: 22px;
}

.hd .emoji-tile {
  min-width: 72px;
  height: 72px;
  font-size: 36px;
  border-radius: 20px;
  background: rgba(255, 255, 255, .1);
  border: 1px solid rgba(255, 255, 255, .15);
}

.hd>div {
  min-width: 0;
}

.hd h1 {
  margin: 0;
  font-size: 34px;
  font-weight: 800;
}

.hd .tagline {
  margin: 6px 0 0;
  color: #c7d0ea;
  font-size: 16px;
  font-style: italic;
}

.hero-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 18px;
}

.hero-badges .hb {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(255, 255, 255, .08);
  border: 1px solid rgba(255, 255, 255, .12);
  color: #e2e8f8;
  font-size: 13px;
  font-weight: 600;
  padding: 6px 12px;
  border-radius: 999px;
}

.hero-badges .badge-live {
  background: rgba(16, 185, 129, .18);
  color: #6ee7b7;
}

.hero-badges .badge-ended,
.hero-badges .badge-inactive {
  background: rgba(255, 255, 255, .1);
  color: #fff;
}

.detail {
  margin-top: -78px;
  padding-bottom: 120px;
  position: relative;
  z-index: 3;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 20px;
  align-items: start;
}

.detail .main,
.detail .side {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 20px;
  min-width: 0;
}

.detail .side {
  position: sticky;
  top: 16px;
}

.ticket {
  display: flex;
  overflow: hidden;
  position: relative;
}

.ticket .l {
  flex: 1;
  padding: 22px 24px;
}

.ticket .r {
  width: 170px;
  padding: 22px;
  display: grid;
  place-items: center;
  text-align: center;
  background: linear-gradient(135deg, var(--accent), #fb923c);
  color: #1c1203;
  border-left: 2px dashed rgba(255, 255, 255, .7);
  position: relative;
}

.ticket .r::before,
.ticket .r::after {
  content: "";
  position: absolute;
  left: -12px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--bg);
}

.ticket .r::before {
  top: -11px;
}

.ticket .r::after {
  bottom: -11px;
}

.ticket .lbl {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--muted);
  font-weight: 700;
}

.ticket .big {
  font-size: 34px;
  font-weight: 800;
  color: var(--text);
  letter-spacing: -.03em;
  line-height: 1.1;
  margin-top: 4px;
}

.ticket .r b {
  font-size: 14px;
  font-weight: 800;
  line-height: 1.3;
}

.ticket .r span {
  font-size: 26px;
  display: block;
  margin-bottom: 4px;
}

.sec {
  padding: 22px;
}

.sec-h {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 16px;
}

.sec-h h2 {
  margin: 0;
  font-size: 17px;
  font-weight: 800;
  display: flex;
  align-items: center;
  gap: 10px;
}

.sec-h h2 .ic {
  width: 32px;
  height: 32px;
  border-radius: 9px;
  display: grid;
  place-items: center;
  background: var(--primary-soft);
  font-size: 16px;
}

.seg-card {
  border: 1px solid var(--border);
  border-radius: 14px;
  overflow: hidden;
}

.seg-card+.seg-card {
  margin-top: 14px;
}

.seg-card .sh {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 14px 16px;
  background: var(--surface-2);
  border-bottom: 1px solid var(--border);
  flex-wrap: wrap;
}

.seg-card .sh .nm {
  font-weight: 800;
  font-size: 16px;
}

.seg-card .sh .dt {
  font-size: 13px;
  color: var(--muted);
  font-weight: 600;
}

.seg-card .sb {
  padding: 16px;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 14px;
}

.seg-card .k {
  font-size: 12px;
  font-weight: 700;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: .06em;
  margin-bottom: 6px;
}

.cities {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.url-box {
  display: flex;
  align-items: stretch;
  border: 1px solid var(--border-2);
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
}

.url-box code {
  flex: 1;
  min-width: 0;
  font-family: var(--mono);
  font-size: 13px;
  padding: 10px 12px;
  color: var(--text-2);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.url-box button {
  border: 0;
  border-left: 1px solid var(--border-2);
  background: var(--surface-2);
  padding: 0 14px;
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  color: var(--text);
}

.url-box button:hover {
  background: var(--primary-soft);
  color: var(--primary);
}

.url-box button.ok {
  background: var(--ok-soft);
  color: var(--ok);
}

.seg-acts {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.stepper {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 10px;
  counter-reset: s;
}

.stepper li {
  counter-increment: s;
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 12px;
  font-size: 13px;
  font-weight: 600;
  color: var(--text-2);
  position: relative;
}

.stepper li::before {
  content: counter(s);
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  border-radius: 8px;
  background: var(--primary);
  color: #fff;
  font-size: 12px;
  font-weight: 800;
  margin-bottom: 8px;
}

.stepper li:last-child::before {
  background: var(--ok);
  content: "✓";
}

.facts {
  display: grid;
  gap: 2px;
}

.fact {
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 10px 0;
  border-bottom: 1px dashed var(--border);
}

.fact:last-child {
  border-bottom: 0;
}

.fact .i {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: var(--surface-2);
  border: 1px solid var(--border);
  display: grid;
  place-items: center;
  font-size: 16px;
  flex: none;
}

.fact .k {
  font-size: 12px;
  color: var(--muted);
  font-weight: 600;
}

.fact .v {
  font-weight: 700;
  font-size: 14px;
}

.note {
  background: var(--warn-soft);
  border: 1px solid #fde68a;
  color: #78350f;
  border-radius: var(--radius);
  padding: 16px;
  font-size: 13.5px;
}

.note .t {
  font-weight: 800;
  color: var(--warn);
  margin-bottom: 4px;
  display: flex;
  gap: 6px;
  align-items: center;
}

.share-card {
  padding: 18px;
  display: grid;
  gap: 10px;
}

.share-card h3 {
  margin: 0;
  font-size: 15px;
}

.share-card p {
  margin: 0 0 4px;
  font-size: 13px;
  color: var(--muted);
}

.mobile-bar {
  display: none;
}

.toast {
  position: fixed;
  left: 50%;
  bottom: 28px;
  transform: translateX(-50%) translateY(20px);
  background: var(--ink);
  color: #fff;
  padding: 12px 18px;
  border-radius: 12px;
  font-size: 14px;
  font-weight: 600;
  opacity: 0;
  pointer-events: none;
  transition: .25s ease;
  z-index: 50;
  box-shadow: var(--shadow-lg);
}

.toast.show {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

/* =========================================================
   Admin
   ========================================================= */
.admin {
  display: grid;
  grid-template-columns: 248px minmax(0, 1fr);
  min-height: 100vh;
}

.sidebar {
  background: var(--ink);
  color: #fff;
  padding: 20px 14px;
  position: sticky;
  top: 0;
  height: 100vh;
  display: flex;
  flex-direction: column;
  gap: 22px;
}

.sidebar .logo {
  padding: 4px 8px;
}

.side-nav {
  display: grid;
  gap: 4px;
}

.side-nav .lbl {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: #64748b;
  font-weight: 700;
  padding: 8px 10px 4px;
}

.side-nav a {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #b6c0dc;
  padding: 10px 12px;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 600;
}

.side-nav a svg {
  width: 18px;
  height: 18px;
}

.side-nav a:hover {
  background: rgba(255, 255, 255, .06);
  color: #fff;
}

.side-nav a.active {
  background: var(--primary);
  color: #fff;
  box-shadow: 0 4px 14px rgba(79, 70, 229, .4);
}

.side-foot {
  margin-top: auto;
  background: var(--ink-2);
  border: 1px solid var(--ink-3);
  border-radius: 12px;
  padding: 12px;
  display: flex;
  align-items: center;
  gap: 10px;
}

.avatar {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--primary), #a855f7);
  display: grid;
  place-items: center;
  font-weight: 800;
  font-size: 14px;
  flex: none;
}

.side-foot .who {
  flex: 1;
  min-width: 0;
  font-size: 13px;
}

.side-foot .who b {
  display: block;
}

.side-foot .who span {
  color: #94a3b8;
  font-size: 12px;
}

.side-foot a {
  color: #94a3b8;
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 8px;
}

.side-foot a:hover {
  background: rgba(255, 255, 255, .08);
  color: #fff;
}

.side-foot a svg {
  width: 18px;
  height: 18px;
}

.a-main {
  padding: 28px 32px 60px;
  min-width: 0;
}

.a-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 22px;
}

.a-head h1 {
  margin: 0;
  font-size: 26px;
  font-weight: 800;
}

.a-head p {
  margin: 4px 0 0;
  color: var(--muted);
}

.a-head .acts {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  margin-bottom: 22px;
}

.stat {
  padding: 18px;
  display: flex;
  gap: 14px;
  align-items: center;
}

.stat .ico {
  width: 46px;
  height: 46px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  flex: none;
}

.stat .ico svg {
  width: 22px;
  height: 22px;
}

.stat .k {
  font-size: 13px;
  color: var(--muted);
  font-weight: 600;
}

.stat .v {
  font-size: 26px;
  font-weight: 800;
  letter-spacing: -.02em;
  line-height: 1.1;
}

.ico-indigo {
  background: var(--primary-soft);
  color: var(--primary);
}

.ico-green {
  background: var(--ok-soft);
  color: var(--ok);
}

.ico-amber {
  background: var(--accent-soft);
  color: var(--accent-600);
}

.ico-pink {
  background: #fdf2f8;
  color: #db2777;
}

.panel {
  overflow: hidden;
}

.panel-top {
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  padding: 14px 16px;
  border-bottom: 1px solid var(--border);
}

.panel-top .search-box {
  max-width: 320px;
}

.panel-top .search-box input {
  padding-top: 9px;
  padding-bottom: 9px;
}

table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}

th,
td {
  text-align: left;
  padding: 14px 16px;
  border-bottom: 1px solid var(--border);
  vertical-align: middle;
}

th {
  font-size: 11.5px;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--muted);
  font-weight: 700;
  background: var(--surface-2);
}

tbody tr {
  transition: background .12s;
}

tbody tr:hover {
  background: #fafbff;
}

tbody tr:last-child td {
  border-bottom: 0;
}

.t-camp {
  display: flex;
  gap: 12px;
  align-items: center;
  min-width: 220px;
}

.t-camp .emoji-tile {
  min-width: 42px;
  height: 42px;
  font-size: 20px;
  border-radius: 12px;
}

.t-camp b {
  display: block;
  font-size: 14.5px;
}

.t-camp small {
  color: var(--muted);
  font-size: 12px;
}

.t-offer {
  font-weight: 700;
  color: #9a3412;
}

.t-segs {
  display: grid;
  gap: 5px;
  min-width: 190px;
}

.t-segs .r {
  display: flex;
  gap: 8px;
  align-items: center;
  font-size: 13px;
}

.t-segs .r b {
  font-weight: 700;
}

.t-clicks b {
  font-size: 16px;
}

.bar {
  height: 5px;
  border-radius: 99px;
  background: var(--gray-soft);
  margin-top: 5px;
  width: 80px;
  overflow: hidden;
}

.bar i {
  display: block;
  height: 100%;
  background: linear-gradient(90deg, var(--primary), #a855f7);
  border-radius: 99px;
}

.t-acts {
  display: flex;
  gap: 4px;
  align-items: center;
  justify-content: flex-end;
}

.t-acts form {
  display: contents;
}

.t-acts .btn-icon {
  border-color: transparent;
  background: transparent;
  color: var(--muted);
}

.t-acts .btn-icon:hover {
  background: var(--gray-soft);
  color: var(--text);
}

.t-acts .btn-icon.btn-danger:hover {
  background: var(--danger-soft);
  color: var(--danger);
}

.alert {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  padding: 14px 16px;
  border-radius: 12px;
  margin-bottom: 18px;
  font-size: 14px;
  font-weight: 500;
}

.alert-ok {
  background: var(--ok-soft);
  color: #065f46;
  border: 1px solid #a7f3d0;
}

.alert-err {
  background: var(--danger-soft);
  color: #991b1b;
  border: 1px solid #fecaca;
}

.alert ul {
  margin: 6px 0 0;
  padding-left: 18px;
}

/* ---------- Edit form ---------- */
.edit-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 380px;
  gap: 22px;
  align-items: start;
}

.form {
  display: grid;
  gap: 18px;
}

.f-sec {
  padding: 22px;
}

.f-sec-h {
  display: flex;
  gap: 12px;
  align-items: center;
  margin-bottom: 18px;
}

.f-sec-h .num {
  width: 32px;
  height: 32px;
  border-radius: 10px;
  background: var(--primary);
  color: #fff;
  display: grid;
  place-items: center;
  font-weight: 800;
  font-size: 14px;
  flex: none;
}

.f-sec-h h2 {
  margin: 0;
  font-size: 16px;
  font-weight: 800;
}

.f-sec-h p {
  margin: 2px 0 0;
  font-size: 13px;
  color: var(--muted);
}

.row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.row-emoji {
  grid-template-columns: 96px minmax(0, 1fr);
}

.field {
  display: grid;
  gap: 6px;
  margin-bottom: 14px;
  align-content: start;
}

.field:last-child {
  margin-bottom: 0;
}

.field label {
  font-size: 13px;
  font-weight: 700;
  color: var(--text-2);
}

.field label .opt {
  color: var(--muted);
  font-weight: 500;
}

.field small {
  color: var(--muted);
  font-size: 12px;
}

input[type=text],
input[type=url],
input[type=date],
input[type=password],
input[type=email],
input[type=tel],
textarea,
select {
  width: 100%;
  padding: 11px 13px;
  border: 1px solid var(--border-2);
  border-radius: 10px;
  font: inherit;
  font-size: 14px;
  background: var(--surface);
  color: var(--text);
  transition: border-color .15s, box-shadow .15s;
}

input:focus,
textarea:focus,
select:focus {
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 4px var(--primary-soft);
}

textarea {
  resize: vertical;
  min-height: 84px;
}

.emoji-in {
  text-align: center;
  font-size: 22px;
  padding: 7px !important;
}

.status-switch {
  display: flex;
  gap: 8px;
}

.status-switch label {
  flex: 1;
  cursor: pointer;
}

.status-switch input {
  display: none;
}

.status-switch span {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 10px;
  border: 1px solid var(--border-2);
  border-radius: 10px;
  font-weight: 700;
  font-size: 13px;
  color: var(--muted);
  transition: .15s;
}

.status-switch input:checked+span.on {
  background: var(--ok-soft);
  border-color: #6ee7b7;
  color: var(--ok);
}

.status-switch input:checked+span.off {
  background: var(--warn-soft);
  border-color: #fcd34d;
  color: var(--warn);
}

.seg {
  border: 1px solid var(--border);
  border-radius: 14px;
  background: var(--surface-2);
  margin-bottom: 14px;
  overflow: hidden;
}

.seg-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 14px;
  background: #fff;
  border-bottom: 1px solid var(--border);
}

.seg-head b {
  font-size: 14px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.seg-head b::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--primary);
}

.seg-body {
  padding: 14px;
}

.add-seg {
  width: 100%;
  border: 2px dashed var(--border-2);
  background: transparent;
  border-radius: 14px;
  padding: 14px;
  font: inherit;
  font-weight: 700;
  color: var(--primary);
  cursor: pointer;
  transition: .15s;
}

.add-seg:hover {
  border-color: var(--primary);
  background: var(--primary-soft);
}

.preview {
  position: sticky;
  top: 20px;
  display: grid;
  gap: 12px;
}

.preview-card {
  overflow: hidden;
}

.preview-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  border-bottom: 1px solid var(--border);
}

.preview-top b {
  font-size: 14px;
  display: flex;
  gap: 8px;
  align-items: center;
}

.wa-bg {
  background: #efe7de;
  background-image: radial-gradient(rgba(0, 0, 0, .035) 1px, transparent 1px);
  background-size: 14px 14px;
  padding: 16px;
  max-height: 62vh;
  overflow: auto;
}

.wa-bubble {
  background: #d9fdd3;
  border-radius: 10px 0 10px 10px;
  padding: 10px 12px 18px;
  font-size: 13px;
  line-height: 1.45;
  white-space: pre-wrap;
  word-break: break-word;
  position: relative;
  box-shadow: 0 1px 1px rgba(0, 0, 0, .08);
  color: #111b21;
}

.wa-bubble .tm {
  position: absolute;
  right: 8px;
  bottom: 4px;
  font-size: 10.5px;
  color: #667781;
}

.wa-bubble strong {
  font-weight: 700;
}

.wa-bubble .q {
  display: block;
  border-left: 3px solid #06cf9c;
  padding-left: 8px;
  color: #3b4a54;
}

.save-bar {
  position: sticky;
  bottom: 0;
  z-index: 5;
  margin-top: 4px;
  background: rgba(244, 246, 251, .9);
  backdrop-filter: blur(8px);
  border-top: 1px solid var(--border);
  padding: 14px 0;
  display: flex;
  gap: 10px;
  justify-content: flex-end;
}

/* ---------- Login ---------- */
.login-page {
  min-height: 100vh;
  display: grid;
  grid-template-columns: 1fr 1fr;
}

.login-art {
  color: #fff;
  padding: 48px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.login-art h2 {
  font-size: 36px;
  margin: 0 0 12px;
  font-weight: 800;
  max-width: 420px;
}

.login-art p {
  color: #b6c0dc;
  max-width: 420px;
  margin: 0;
}

.login-art ul {
  list-style: none;
  padding: 0;
  margin: 26px 0 0;
  display: grid;
  gap: 10px;
  color: #d6dcf0;
  font-weight: 600;
}

.login-form {
  display: grid;
  place-items: center;
  padding: 24px 16px;
  background: var(--bg);
}

.login {
  width: 100%;
  max-width: 400px;
  padding: 32px;
}

.login h1 {
  margin: 0 0 4px;
  font-size: 24px;
  font-weight: 800;
}

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
  .stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .edit-grid {
    grid-template-columns: 1fr;
  }

  .preview {
    position: static;
  }
}

@media (max-width: 900px) {
  .detail {
    grid-template-columns: minmax(0, 1fr);
  }

  .detail .side {
    position: static;
  }

  .admin {
    grid-template-columns: 1fr;
  }

  /* sidebar becomes a slide-in drawer — see "Responsive polish" */
  .a-main {
    padding: 20px 16px 40px;
  }

  .login-page {
    grid-template-columns: 1fr;
  }

  .login-art {
    display: none;
  }
}

@media (max-width: 720px) {
  body {
    font-size: 14.5px;
  }

  .site-top nav a {
    padding: 8px;
  }

  .hero-list {
    padding: 30px 0 76px;
  }

  .hero-list h1 {
    font-size: 30px;
  }

  .hd {
    align-items: flex-start;
  }

  .hd .emoji-tile {
    min-width: 56px;
    height: 56px;
    font-size: 28px;
    border-radius: 16px;
  }

  .hd h1 {
    font-size: 24px;
  }

  .ticket {
    flex-direction: column;
  }

  .ticket .r {
    width: auto;
    border-left: 0;
    border-top: 2px dashed rgba(255, 255, 255, .7);
    padding: 14px;
  }

  .ticket .r::before,
  .ticket .r::after {
    display: none;
  }

  .ticket .big {
    font-size: 28px;
  }

  .detail {
    padding-bottom: 100px;
  }

  .detail .side .share-card {
    display: none;
  }

  .mobile-bar {
    display: flex;
    gap: 10px;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 30;
    padding: 12px 16px;
    background: rgba(255, 255, 255, .95);
    backdrop-filter: blur(8px);
    border-top: 1px solid var(--border);
  }

  .mobile-bar .btn {
    flex: 1;
  }

  .toast {
    bottom: 90px;
  }

  .row {
    grid-template-columns: 1fr;
  }

  .row-emoji {
    grid-template-columns: 76px minmax(0, 1fr);
  }

  .stats {
    gap: 10px;
  }

  .stat {
    padding: 14px;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }

  .stat .v {
    font-size: 22px;
  }

  /* table -> cards */
  .rtable thead {
    display: none;
  }

  .rtable,
  .rtable tbody,
  .rtable tr,
  .rtable td {
    display: block;
    width: 100%;
  }

  .rtable tr {
    padding: 14px 16px;
    border-bottom: 1px solid var(--border);
  }

  .rtable td {
    border: 0;
    padding: 4px 0;
  }

  .rtable td[data-label]::before {
    content: attr(data-label);
    display: block;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .07em;
    color: var(--muted);
    font-weight: 700;
    margin-bottom: 2px;
  }

  .rtable td.t-first {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
  }

  .t-acts {
    justify-content: flex-start;
    padding-top: 8px !important;
    border-top: 1px dashed var(--border) !important;
    margin-top: 8px;
  }

  .panel-top .search-box {
    max-width: none;
  }
}

/* =========================================================
   Storefront (home, offers, campaign, login, my orders)
   ========================================================= */
:root {
  --navy: #1e1b4b;
  --navy-2: #2e2a6b;
  --orange: #f97316;
  --cream: #fff6ee;
}

body.store {
  background: #fff;
}

.annc {
  background: #f1f2f6;
  font-size: 13px;
  font-weight: 600;
  color: var(--text-2);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 8px 16px;
  flex-wrap: wrap;
  text-align: center;
}

.annc .wa-dot svg {
  width: 16px;
  height: 16px;
  color: var(--wa);
  vertical-align: -3px;
}

.annc-btn {
  background: linear-gradient(90deg, #14b8a6, #84cc16);
  color: #fff;
  font-size: 11.5px;
  font-weight: 800;
  padding: 4px 12px;
  border-radius: 999px;
  letter-spacing: .04em;
}

.s-header {
  background: #fff;
  position: sticky;
  top: 0;
  z-index: 40;
  box-shadow: 0 1px 0 var(--border);
}

.s-head-row {
  display: flex;
  align-items: center;
  gap: 24px;
  height: 72px;
}

.s-logo {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-weight: 800;
  font-size: 20px;
  color: var(--navy);
  white-space: nowrap;
  letter-spacing: -.02em;
}

.s-search {
  flex: 1;
  max-width: 580px;
  position: relative;
  margin: 0;
}

.s-search svg {
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  width: 18px;
  height: 18px;
  color: var(--muted);
}

.s-search input {
  width: 100%;
  border: 1px solid transparent;
  background: #eef0f4;
  border-radius: 8px;
  padding: 12px 14px 12px 44px;
  font: inherit;
  color: var(--text);
}

.s-search input:focus {
  outline: none;
  background: #fff;
  border-color: var(--navy);
}

.s-user {
  margin-left: auto;
}

.btn-dark {
  background: #0b0b14;
  border-color: #0b0b14;
  color: #fff;
  border-radius: 6px;
}

.btn-dark:hover {
  background: var(--navy);
  border-color: var(--navy);
  color: #fff;
}

.btn-grad {
  background: linear-gradient(90deg, #22c1c3, #a3e635);
  border: 0;
  color: #fff;
  border-radius: 6px;
  text-shadow: 0 1px 1px rgba(0, 0, 0, .12);
}

.btn-grad:hover {
  filter: brightness(1.05);
  background: linear-gradient(90deg, #22c1c3, #a3e635);
}

.s-nav {
  background: #f7f8fb;
  border-top: 1px solid var(--border);
}

.s-nav-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  height: 54px;
}

.s-links {
  display: flex;
  gap: 4px;
  overflow-x: auto;
}

.s-links a {
  color: var(--text);
  font-weight: 500;
  font-size: 15px;
  padding: 8px 12px;
  border-radius: 6px;
  white-space: nowrap;
}

.s-links a:hover,
.s-links a.on {
  color: var(--navy);
  background: #eceefe;
}

.s-links a.on {
  font-weight: 700;
}

.u-menu {
  position: relative;
}

.u-menu summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  font-size: 14px;
  padding: 5px 12px 5px 6px;
  border-radius: 999px;
  border: 1px solid var(--border);
}

.u-menu summary::-webkit-details-marker {
  display: none;
}

.u-av {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--orange), #ec4899);
  color: #fff;
  display: grid;
  place-items: center;
  font-weight: 800;
}

.u-drop {
  position: absolute;
  right: 0;
  top: calc(100% + 8px);
  min-width: 230px;
  padding: 8px;
  display: grid;
  z-index: 50;
}

.u-drop a {
  padding: 10px 12px;
  border-radius: 8px;
  color: var(--text);
  font-weight: 600;
  font-size: 14px;
}

.u-drop a:hover {
  background: var(--surface-2);
}

.u-info {
  padding: 8px 12px 10px;
  border-bottom: 1px solid var(--border);
  margin-bottom: 4px;
  display: grid;
}

.u-info span {
  font-size: 12px;
  color: var(--muted);
}

/* hero slider */
/* All slides are stacked in one grid cell; the active one (.on) fades/slides in. */
.h-slider {
  position: relative;
  background: var(--cream);
  overflow: hidden;
  display: grid;
  --slide-ms: 5000ms;
}

.h-slide {
  grid-area: 1 / 1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  height: var(--hero-h, clamp(440px, calc(100vh - 250px), 760px));
  min-height: 420px;
  background: var(--cream);
  opacity: 0;
  visibility: hidden;
  transform: translateX(60px);
  transition: opacity .9s ease, transform .9s cubic-bezier(.22, .8, .3, 1), visibility 0s .9s;
}

.h-slide.on {
  opacity: 1;
  visibility: visible;
  transform: none;
  z-index: 1;
  transition: opacity .9s ease, transform .9s cubic-bezier(.22, .8, .3, 1), visibility 0s;
}

.h-slide.out {
  transform: translateX(-60px);
}

/* Ken Burns zoom on the photo */
.h-slide.on .h-media img {
  animation: kenburns calc(var(--slide-ms) + 1500ms) ease-out both;
}

@keyframes kenburns {
  from {
    transform: scale(1.12) translateX(-1.5%);
  }

  to {
    transform: scale(1) translateX(0);
  }
}

/* Text lines rise in one after another */
.h-slide.on .h-text>* {
  animation: rise .7s cubic-bezier(.22, .8, .3, 1) both;
}

.h-slide.on .h-text> :nth-child(1) {
  animation-delay: .25s;
}

.h-slide.on .h-text> :nth-child(2) {
  animation-delay: .38s;
}

.h-slide.on .h-text> :nth-child(3) {
  animation-delay: .5s;
}

.h-slide.on .h-text> :nth-child(4) {
  animation-delay: .62s;
}

.h-slide.on .h-text> :nth-child(5) {
  animation-delay: .74s;
}

@keyframes rise {
  from {
    opacity: 0;
    transform: translateY(24px);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

.h-slide.on .btn-deal-lg {
  box-shadow: 0 0 0 0 rgba(30, 27, 75, .45);
  animation: rise .7s .74s cubic-bezier(.22, .8, .3, 1) both, ctaPulse 2.4s 1.6s ease-out infinite;
}

@keyframes ctaPulse {
  0% {
    box-shadow: 0 0 0 0 rgba(30, 27, 75, .4);
  }

  70% {
    box-shadow: 0 0 0 14px rgba(30, 27, 75, 0);
  }

  100% {
    box-shadow: 0 0 0 0 rgba(30, 27, 75, 0);
  }
}

.h-arrow,
.h-dots {
  z-index: 3;
}

.h-arrow {
  transition: transform .2s, background .2s;
}

.h-arrow:hover {
  background: var(--navy);
  color: #fff;
}

.h-slider.paused .h-dots button.on::after {
  animation-play-state: paused;
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

.h-media {
  background: linear-gradient(135deg, #fb923c, #f59e0b 55%, #fde68a);
  display: grid;
  place-items: center;
  overflow: hidden;
}

.h-media {
  position: relative;
}

.h-media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* the photo never decides the hero height */
.h-emoji {
  font-size: 150px;
  filter: drop-shadow(0 20px 30px rgba(0, 0, 0, .18));
  letter-spacing: -.1em;
}

.h-text {
  padding: 60px clamp(70px, 7vw, 130px) 60px clamp(40px, 6vw, 110px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  gap: 14px;
}

.h-kicker {
  color: var(--orange);
  font-weight: 700;
  font-size: 14px;
}

.h-text h1 {
  margin: 0;
  font-family: "Poppins", var(--font);
  font-size: clamp(40px, 3.7vw, 66px);
  font-weight: 700;
  color: #22304f;
  letter-spacing: -.01em;
  line-height: 1.12;
}

.h-sub {
  margin: 0;
  color: var(--text-2);
  font-size: clamp(15px, 1.05vw, 18px);
  max-width: 560px;
}

.h-meta {
  margin: 0;
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  font-size: 13px;
  font-weight: 600;
  color: var(--muted);
}

.btn-deal {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--navy);
  color: #fff;
  font-weight: 700;
  font-size: 14px;
  padding: 10px 22px;
  border-radius: 999px;
  border: 0;
  cursor: pointer;
  white-space: nowrap;
  transition: .15s;
}

.btn-deal:hover {
  background: var(--navy-2);
  color: #fff;
}

.btn-deal-lg {
  padding: 14px 28px;
  font-size: 15px;
  margin-top: 6px;
}

.h-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 42px;
  height: 42px;
  border-radius: 50%;
  border: 0;
  background: #fff;
  color: var(--navy);
  font-size: 18px;
  cursor: pointer;
  box-shadow: var(--shadow);
  z-index: 2;
}

.h-prev {
  left: 20px;
}

.h-next {
  right: 20px;
}

.h-dots {
  position: absolute;
  bottom: 18px;
  left: 75%;
  transform: translateX(-50%);
  display: flex;
  gap: 6px;
}

.h-dots button {
  position: relative;
  overflow: hidden;
  width: 8px;
  height: 8px;
  border-radius: 99px;
  border: 0;
  background: #d6c9bd;
  cursor: pointer;
  padding: 0;
  transition: width .3s;
}

.h-dots button.on {
  width: 36px;
  background: #f3d9c2;
}

/* progress bar inside the active dot = time until the next slide */
.h-dots button.on::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--orange);
  border-radius: inherit;
  transform-origin: left;
  animation: dotFill var(--slide-ms) linear both;
}

@keyframes dotFill {
  from {
    transform: scaleX(0);
  }

  to {
    transform: scaleX(1);
  }
}

@media (prefers-reduced-motion: reduce) {

  .h-slide,
  .h-slide.on {
    transition: opacity .3s;
    transform: none;
  }

  .h-slide.on .h-media img,
  .h-slide.on .h-text>*,
  .h-slide.on .btn-deal-lg {
    animation: none;
  }

  .mq-track {
    animation: none;
  }
}

/* marquee */
.marquee {
  border-block: 1px solid var(--border);
  overflow: hidden;
  background: #fff;
  padding: 14px 0;
}

.mq-track {
  display: flex;
  align-items: center;
  gap: 28px;
  width: max-content;
  animation: mq 32s linear infinite;
}

.mq-track span {
  font-size: 30px;
  font-weight: 500;
  color: var(--navy);
  white-space: nowrap;
}

.mq-track i {
  font-style: normal;
  color: var(--navy);
  font-size: 26px;
}

@keyframes mq {
  to {
    transform: translateX(-50%);
  }
}

/* sections & offer cards */
.sec-pad {
  padding: 60px 16px;
}

.sec-title {
  text-align: center;
  margin-bottom: 36px;
}

.o-flame {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--orange);
  display: inline-grid;
  place-items: center;
  font-size: 22px;
  margin-bottom: 10px;
}

.sec-title h2 {
  margin: 0 0 8px;
  font-size: 32px;
  font-weight: 800;
  color: var(--navy);
}

.sec-title p {
  margin: 0 auto;
  max-width: 520px;
  color: var(--muted);
  font-size: 14px;
}

.o-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  max-width: 1000px;
  margin: 0 auto;
}

.o-card {
  position: relative;
  display: flex;
  gap: 18px;
  padding: 42px 18px 18px;
  border: 1px solid #e3f2ee;
  border-radius: 10px;
  background: #fff;
  transition: .2s;
}

.o-card:hover {
  box-shadow: var(--shadow-lg);
  border-color: #c8ebe2;
}

.o-card.is-ended {
  opacity: .75;
}

.o-badge {
  position: absolute;
  left: 12px;
  top: 12px;
  font-size: 11px;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 999px;
  color: #fff;
}

.o-live {
  background: #10b981;
}

.o-ended {
  background: #94a3b8;
}

.o-inactive {
  background: var(--warn);
}

.o-share {
  position: absolute;
  right: 10px;
  top: 8px;
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border: 0;
  background: transparent;
  color: var(--muted);
  cursor: pointer;
  border-radius: 8px;
}

.o-share:hover,
.o-share.ok {
  background: var(--surface-2);
  color: var(--navy);
}

.o-share svg {
  width: 17px;
  height: 17px;
}

.o-img {
  width: 116px;
  height: 116px;
  flex: none;
  border-radius: 8px;
  background: #f3f4f8;
  display: grid;
  place-items: center;
  overflow: hidden;
  font-size: 40px;
  letter-spacing: -.1em;
  white-space: nowrap;
}

.seg-acts {
  align-items: center;
}

/* ---------- Sign-in card (popup + login page) ----------
   The card IS the design image (signin-bg.png on desktop, signin-bg-mobile.png on phones).
   The form is placed on the image's white panel using percentages, and its text scales
   with the card width (cqw units), so it always fits inside the white area. */
.signin-card {
  position: relative;
  container-type: inline-size;
  width: min(1000px, 96vw, calc(92vh * 1.9167));
  aspect-ratio: 1173 / 612;
  background: url(img/signin-bg.png) center / 100% 100% no-repeat;
  filter: drop-shadow(0 30px 60px rgba(15, 23, 42, .35));
}

.signin-form {
  position: absolute;
  left: 56%;
  right: 11%;
  top: 8.5%;
  bottom: 8.5%;
  display: flex;
  flex-direction: column;
  justify-content: safe center;
  font-size: clamp(10px, 1.3cqw, 14px);
  overflow-y: auto;
  scrollbar-width: none;
}

.signin-logo {
  height: 3.6em;
  width: auto;
  align-self: center;
}

.signin-sub {
  text-align: center;
  color: #7b8494;
  font-size: 1em;
  margin: .45em 0 1.1em;
}

.signin-x {
  position: absolute;
  top: 9%;
  right: 5.5%;
  z-index: 2;
  width: 2.2em;
  height: 2.2em;
  font-size: clamp(14px, 1.9cqw, 20px);
  border: 0;
  background: transparent;
  cursor: pointer;
  color: #111;
  border-radius: 8px;
  line-height: 1;
}

.signin-x:hover {
  background: #f1f2f6;
}

.signin-err {
  margin: 0 0 .8em;
  font-size: .9em;
  padding: .6em .8em;
}

.sf-field {
  display: grid;
  gap: .35em;
  margin-bottom: .7em;
}

.sf-field label {
  font-size: .9em;
  font-weight: 500;
  color: #1f2937;
}

.sf-field input {
  width: 100%;
  border: 1px solid transparent;
  background: #f4f4f5;
  border-radius: 6px;
  padding: .6em .95em;
  font: inherit;
  font-size: 1em;
  color: var(--text);
}

.sf-field input:focus {
  outline: none;
  border-color: #111;
  background: #fff;
}

.sf-row {
  display: flex;
  align-items: center;
  gap: .7em;
  margin: .2em 0 1.1em;
}

.sf-check {
  display: inline-flex;
  align-items: center;
  gap: .5em;
  font-size: .9em;
  color: #374151;
  cursor: pointer;
}

.sf-check input {
  width: 1.05em;
  height: 1.05em;
  accent-color: #111;
}

.sf-btn {
  width: 100%;
  background: #000;
  color: #fff;
  border: 0;
  border-radius: 6px;
  padding: .9em;
  font: inherit;
  font-size: 1em;
  font-weight: 700;
  cursor: pointer;
  transition: .15s;
}

.sf-btn:hover {
  background: var(--navy);
}

.sf-btn:disabled {
  opacity: .6;
  cursor: default;
}

.sf-foot {
  text-align: center;
  font-size: .85em;
  color: #4b5563;
  margin: .9em 0 0;
}

.signin-modal {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: grid;
  place-items: center;
  padding: 16px;
  background: rgba(15, 23, 42, .6);
  backdrop-filter: blur(4px);
  animation: fadeIn .25s ease;
  overflow-y: auto;
}

.signin-modal[hidden] {
  display: none !important;
}

.signin-modal .signin-card {
  animation: popIn .3s ease;
}

@keyframes popIn {
  from {
    transform: translateY(16px) scale(.97);
    opacity: 0;
  }

  to {
    transform: none;
    opacity: 1;
  }
}

body.modal-open {
  overflow: hidden;
}

.signin-page {
  display: grid;
  place-items: center;
  padding: 40px 16px 60px;
  background: var(--cream);
}

/* Phones / narrow screens: portrait design image, form on the top white panel */
@media (max-width: 760px) {
  .signin-card {
    width: min(440px, 94vw, calc(94vh * .564));
    aspect-ratio: 1080 / 1915;
    background-image: url(img/signin-bg-mobile.png);
  }

  .signin-form {
    left: 10.5%;
    right: 9.5%;
    top: 7.5%;
    bottom: 48.5%;
    font-size: clamp(10px, 3.5cqw, 15px);
  }

  .signin-logo {
    height: 3em;
  }

  .signin-sub {
    margin: .3em 0 .8em;
  }

  .sf-field {
    margin-bottom: .55em;
  }

  .sf-field label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
  }

  /* labels kept for screen readers; placeholders show */
  .sf-row {
    margin: .1em 0 .7em;
  }

  .sf-foot {
    display: none;
  }

  .signin-x {
    top: 7.2%;
    right: 7.5%;
    font-size: clamp(14px, 4.5cqw, 20px);
  }
}

.s-logo img {
  height: 52px;
  width: auto;
  display: block;
}

.f-logo img {
  height: 58px;
  width: auto;
}

.logo-img {
  height: 30px;
  width: auto;
}

.req-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 16px;
}

.req-list span {
  background: #eef2ff;
  color: var(--navy);
  font-size: 12.5px;
  font-weight: 700;
  padding: 5px 11px;
  border-radius: 999px;
}

.claim-row {
  flex-wrap: wrap;
}

.inv-up {
  flex-basis: 100%;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  border-top: 1px dashed var(--border);
  padding-top: 10px;
  margin-top: 2px;
}

.inv-up .inv-t {
  font-size: 13px;
  font-weight: 700;
  color: var(--text-2);
  margin-right: auto;
}

.inv-up.missing {
  background: var(--danger-soft);
  border: 1px solid #fecaca;
  border-radius: 10px;
  padding: 8px 10px;
}

.inv-up.missing .inv-t {
  color: var(--danger);
}

.inv-up .fn {
  font-size: 12px;
  max-width: 160px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.orders-t td:nth-child(2),
.orders-t td:nth-child(3) {
  white-space: nowrap;
}

.orders-t .t-email {
  min-width: 180px;
  word-break: normal;
  overflow-wrap: anywhere;
}

.orders-t td:nth-child(5) {
  min-width: 170px;
}

.o-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.o-body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.o-title {
  font-weight: 700;
  font-size: 16px;
  color: var(--navy);
  line-height: 1.3;
}

.o-price {
  color: var(--orange);
  font-weight: 800;
  font-size: 19px;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.o-pill {
  background: #10b981;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 4px;
}

.o-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 14px;
  font-size: 12px;
  color: var(--muted);
}

.o-acts {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: auto;
  padding-top: 4px;
  flex-wrap: wrap;
}

.o-acts .btn-deal {
  padding: 9px 20px;
  font-size: 13px;
}

.o-up {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--text-2);
}

.o-up:hover {
  color: var(--orange);
}

.see-all {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 1.5px solid var(--navy);
  color: var(--navy);
  border-radius: 999px;
  padding: 10px 22px;
  font-weight: 700;
  font-size: 14px;
  background: #fff;
}

.see-all:hover {
  background: var(--navy);
  color: #fff;
}

.how {
  background: var(--cream);
  padding: 60px 0;
  scroll-margin-top: 130px;
}

.how-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}

.how-step {
  background: #fff;
  border-radius: 14px;
  padding: 22px;
  box-shadow: var(--shadow);
}

.how-step span {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: var(--navy);
  color: #fff;
  display: grid;
  place-items: center;
  font-weight: 800;
  margin-bottom: 12px;
}

.how-step h3 {
  margin: 0 0 6px;
  font-size: 16px;
  color: var(--navy);
}

.how-step p {
  margin: 0;
  font-size: 13.5px;
  color: var(--muted);
}

/* footer */
.s-footer {
  background: #000;
  color: #d4d4d8;
  padding: 44px 0 22px;
}

.s-footer .s-logo {
  color: #fff;
}

.f-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  padding-bottom: 26px;
  border-bottom: 1px solid #27272a;
}

.f-help {
  font-size: 13px;
}

.f-help b {
  color: #fff;
  font-size: 17px;
  font-weight: 600;
  margin-left: 6px;
}

.f-grid {
  display: grid;
  grid-template-columns: 1.3fr 1fr 1.2fr 1fr;
  gap: 30px;
  padding: 34px 0;
}

.f-grid h4 {
  color: #fff;
  margin: 0 0 14px;
  font-size: 18px;
}

.f-grid p {
  margin: 0;
  font-size: 13.5px;
  line-height: 1.7;
}

.f-grid a {
  display: block;
  color: #d4d4d8;
  font-size: 13.5px;
  padding: 3px 0;
}

.f-grid a:hover {
  color: #fff;
}

.f-copy {
  border-top: 1px solid #27272a;
  padding-top: 18px;
  font-size: 13px;
}

/* campaign page */
.c-hero {
  background: var(--cream);
  padding: 36px 0;
}

.c-hero-grid {
  display: grid;
  grid-template-columns: 400px minmax(0, 1fr);
  gap: 44px;
  align-items: center;
}

.c-media {
  aspect-ratio: 1 / 1;
  border-radius: 20px;
  overflow: hidden;
  background: linear-gradient(135deg, #fb923c, #f59e0b 55%, #fde68a);
  display: grid;
  place-items: center;
  box-shadow: var(--shadow-lg);
}

.c-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.c-media .h-emoji {
  font-size: 120px;
}

.c-info {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
  min-width: 0;
}

.c-crumb {
  font-size: 13px;
  font-weight: 600;
  color: var(--muted);
}

.c-info h1 {
  margin: 0;
  font-size: 40px;
  font-weight: 800;
  color: var(--navy);
}

.c-offer {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.c-offer b {
  font-size: 30px;
  font-weight: 800;
  color: var(--orange);
  letter-spacing: -.02em;
}

.c-offer span {
  background: #10b981;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 6px;
}

.c-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.c-cta {
  display: flex;
  gap: 12px;
  align-items: center;
  flex-wrap: wrap;
  margin-top: 4px;
}

.c-cta .btn-deal-lg {
  margin-top: 0;
}

.c-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 330px;
  gap: 22px;
  align-items: start;
  padding-top: 28px;
  padding-bottom: 60px;
}

.c-main,
.c-side {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 20px;
  min-width: 0;
}

.c-side {
  position: sticky;
  top: 140px;
}

.claim-alert {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  background: linear-gradient(135deg, #ecfeff, #f0fdf4);
  border: 1px solid #a7f3d0;
  border-radius: var(--radius);
  padding: 16px 18px;
}

.claim-alert .ca-ic {
  width: 42px;
  height: 42px;
  flex: none;
  border-radius: 12px;
  background: #10b981;
  display: grid;
  place-items: center;
  font-size: 20px;
}

.claim-alert b {
  color: #065f46;
}

.claim-alert>div>b:first-child {
  font-size: 15.5px;
}

.claim-alert p {
  margin: 4px 0 0;
  color: #166534;
  font-size: 13.5px;
}

.claim {
  border: 2px solid var(--navy);
}

#claim,
#deals,
#my-claims {
  scroll-margin-top: 140px;
}

.login-need {
  text-align: center;
  padding: 20px 10px;
}

.login-need .big {
  font-size: 40px;
}

.login-need h3 {
  margin: 6px 0;
  color: var(--navy);
}

.login-need p {
  margin: 0 0 16px;
}

.drop {
  position: relative;
  display: grid;
  justify-items: center;
  gap: 4px;
  text-align: center;
  border: 2px dashed var(--border-2);
  border-radius: 12px;
  padding: 18px 12px;
  cursor: pointer;
  background: var(--surface-2);
  transition: .15s;
}

.drop:hover,
.drop.has {
  border-color: var(--navy);
  background: #f5f5ff;
}

.drop input {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
  width: 100%;
}

.drop-t {
  font-weight: 700;
  font-size: 14px;
  color: var(--navy);
  word-break: break-all;
}

.drop small {
  color: var(--muted);
  font-size: 12px;
}

.drop img {
  max-height: 120px;
  border-radius: 8px;
  margin-top: 6px;
}

.claims {
  display: grid;
  gap: 10px;
}

.claim-row {
  display: flex;
  align-items: center;
  gap: 14px;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 10px 12px;
}

.cl-thumb {
  width: 56px;
  height: 56px;
  flex: none;
  border-radius: 8px;
  overflow: hidden;
  background: var(--surface-2);
}

.cl-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.cl-info {
  flex: 1;
  min-width: 0;
  display: grid;
  gap: 2px;
  font-size: 13px;
  color: var(--muted);
}

.cl-info b {
  color: var(--text);
}

.cl-info>b:first-child {
  font-size: 14px;
}

.cl-rem {
  color: var(--text-2);
  background: var(--surface-2);
  padding: 4px 8px;
  border-radius: 6px;
  margin-top: 4px;
  justify-self: start;
}

.st {
  display: inline-block;
  font-size: 12px;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 999px;
  white-space: nowrap;
}

.st-pending {
  background: var(--warn-soft);
  color: var(--warn);
}

.st-approved {
  background: var(--ok-soft);
  color: var(--ok);
}

.st-rejected {
  background: var(--danger-soft);
  color: var(--danger);
}

.opt {
  color: var(--muted);
  font-weight: 500;
}

.prefix-in {
  display: flex;
  border: 1px solid var(--border-2);
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
}

.prefix-in span {
  background: var(--surface-2);
  padding: 11px 12px;
  font-weight: 700;
  color: var(--muted);
  border-right: 1px solid var(--border-2);
}

.prefix-in input {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.prefix-in:focus-within {
  border-color: var(--primary);
  box-shadow: 0 0 0 4px var(--primary-soft);
}

/* auth */
.auth-wrap {
  padding: 50px 16px 70px;
  background: var(--cream);
}

.auth-card {
  max-width: 900px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1.15fr;
  overflow: hidden;
}

.auth-side {
  background: var(--navy);
  color: #fff;
  padding: 40px 34px;
}

.auth-side h2 {
  margin: 6px 0 22px;
  font-size: 26px;
}

.auth-side ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 14px;
}

.auth-side li {
  display: flex;
  gap: 12px;
  align-items: center;
  font-size: 14.5px;
  color: #dcdcf5;
}

.auth-side li b {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  background: rgba(255, 255, 255, .12);
  display: grid;
  place-items: center;
  flex: none;
}

.auth-form {
  padding: 36px 34px;
}

.auth-form h1 {
  margin: 0 0 4px;
  font-size: 26px;
  color: var(--navy);
}

.auth-form>.muted {
  margin: 0 0 20px;
  font-size: 14px;
}

/* my orders */
.mo-head h1 {
  margin: 0;
  font-size: 30px;
  color: var(--navy);
}

.mo-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin: 20px 0;
}

.mo-stats .card {
  padding: 16px 18px;
  display: grid;
}

.mo-stats b {
  font-size: 26px;
  font-weight: 800;
}

.mo-stats span {
  font-size: 13px;
  color: var(--muted);
  font-weight: 600;
}

.up-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 10px;
}

.up-item {
  display: flex;
  align-items: center;
  gap: 12px;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 10px 12px;
  color: var(--text);
}

.up-item:hover {
  border-color: var(--navy);
  background: #f8f8ff;
}

.up-item>span:nth-child(2) {
  flex: 1;
  min-width: 0;
  display: grid;
}

.up-item small {
  color: var(--orange);
  font-weight: 700;
}

.up-item .go {
  font-weight: 700;
  color: var(--navy);
  font-size: 13px;
}

.up-item .emoji-tile {
  height: 42px;
  min-width: 42px;
  font-size: 20px;
  border-radius: 10px;
}

/* admin extras */
.nav-badge {
  margin-left: auto;
  background: var(--accent);
  color: #1c1203;
  font-style: normal;
  font-size: 11px;
  font-weight: 800;
  padding: 1px 8px;
  border-radius: 999px;
}

.stats {
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
}

a.stat {
  color: var(--text);
  transition: box-shadow .15s;
}

a.stat:hover {
  box-shadow: var(--shadow-lg);
}

.filters {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
  margin: 0;
}

.filters select {
  width: auto;
  min-width: 190px;
  padding: 9px 12px;
}

.filters .search-box {
  min-width: 240px;
}

a.tab {
  text-decoration: none;
}

/* ---------- Wide screens: storefront uses the full desktop width ---------- */
@media (min-width: 1280px) {
  body.store .container {
    max-width: 1440px;
    padding-left: 40px;
    padding-right: 40px;
  }

  body.store .s-head-row {
    height: 84px;
    gap: 40px;
  }

  body.store .s-search {
    max-width: 820px;
  }

  body.store .s-links a {
    font-size: 16px;
    padding: 8px 14px;
  }

  body.store .o-grid {
    max-width: 1180px;
  }
}

/* =========================================================
   Admin theme — colours taken from the Paisalelo logo
   (teal #2ec4c9 → green #9be073, dark slate text)
   ========================================================= */
body.adm {
  --brand-grad: linear-gradient(90deg, #2ec4c9, #9be073);
  --primary: #0e9384;
  --primary-600: #0b766b;
  --primary-soft: #e3f7f2;
  --ink: #0d2a2d;
  --ink-2: #133539;
  --ink-3: #1f4a4e;
  background: #f3f8f7;
}

body.adm .sidebar {
  background: linear-gradient(180deg, #0d2a2d 0%, #0b2326 100%);
}

body.adm .side-nav a {
  color: #b5d0ce;
}

body.adm .side-nav a:hover {
  background: rgba(155, 224, 115, .08);
  color: #fff;
}

body.adm .side-nav a.active {
  background: var(--brand-grad);
  color: #06302b;
  box-shadow: 0 6px 18px rgba(46, 196, 201, .35);
}

body.adm .side-nav .lbl {
  color: #5d8a87;
}

body.adm .side-foot {
  background: rgba(255, 255, 255, .04);
  border-color: #1f4a4e;
}

body.adm .side-foot .who span {
  color: #8fb3b0;
}

body.adm .avatar {
  background: var(--brand-grad);
  color: #06302b;
}

body.adm .nav-badge {
  background: #9be073;
  color: #0d2a2d;
}

body.adm .btn-primary {
  background: var(--primary);
  border-color: var(--primary);
  box-shadow: 0 4px 14px rgba(14, 147, 132, .28);
}

body.adm .btn-primary:hover {
  background: var(--primary-600);
  border-color: var(--primary-600);
}

body.adm .f-sec-h .num {
  background: var(--brand-grad);
  color: #06302b;
}

body.adm .bar i {
  background: var(--brand-grad);
}

body.adm .a-head h1 {
  color: #0d2a2d;
}

body.adm .stat .ico-indigo {
  background: #e3f7f2;
  color: #0e9384;
}

body.adm .stat .ico-green {
  background: #eefbe5;
  color: #4d9a1f;
}

body.adm .tab.active .n {
  background: #e3f7f2;
  color: #0e9384;
}

body.adm .add-seg {
  color: var(--primary);
}

body.adm .hero {
  background: radial-gradient(600px 300px at 85% -10%, rgba(46, 196, 201, .35), transparent 70%), radial-gradient(500px 280px at 0% 110%, rgba(155, 224, 115, .25), transparent 70%), var(--ink);
}

/* ---------- Create / edit campaign — polished UI ---------- */
.ce-head {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-bottom: 20px;
  padding: 18px 22px;
  border-radius: var(--radius);
  background: linear-gradient(120deg, #0d2a2d 0%, #12454a 55%, #1d6b5f 100%);
  color: #e6f4f2;
  box-shadow: var(--shadow);
  position: relative;
  overflow: hidden;
}

.ce-head::after {
  content: "";
  position: absolute;
  right: -60px;
  top: -80px;
  width: 260px;
  height: 260px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(155, 224, 115, .35), transparent 70%);
  pointer-events: none;
}

.ce-ico {
  width: 54px;
  height: 54px;
  flex: none;
  border-radius: 16px;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, #2ec4c9, #9be073);
  color: #06302b;
}

.ce-ico svg {
  width: 26px;
  height: 26px;
}

.ce-txt {
  flex: 1;
  min-width: 0;
}

.ce-txt a.muted {
  color: #9fd3cc !important;
}

.ce-txt h1 {
  margin: 4px 0 2px;
  font-size: 24px;
  font-weight: 800;
  color: #fff;
}

.ce-txt p {
  margin: 0;
  color: #b8d8d3;
  font-size: 14px;
}

.ce-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  position: relative;
  z-index: 1;
}

.ce-score {
  display: grid;
  justify-items: end;
  gap: 3px;
  min-width: 120px;
}

.ce-score span {
  font-size: 22px;
  font-weight: 800;
  color: #fff;
  line-height: 1;
}

.ce-score small {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: #9fd3cc;
}

.ce-score i {
  display: block;
  width: 120px;
  height: 6px;
  border-radius: 99px;
  background: rgba(255, 255, 255, .15);
  overflow: hidden;
}

.ce-score i b {
  display: block;
  height: 100%;
  width: 0;
  border-radius: inherit;
  background: linear-gradient(90deg, #2ec4c9, #9be073);
  transition: width .4s ease;
}

.ce-meta .btn {
  background: rgba(255, 255, 255, .1);
  border-color: rgba(255, 255, 255, .2);
  color: #fff;
}

.ce-meta .btn:hover {
  background: rgba(255, 255, 255, .18);
}

.qchips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 6px;
}

.qchips button {
  border: 1px dashed var(--border-2);
  background: #fff;
  color: var(--text-2);
  font: inherit;
  font-size: 12px;
  font-weight: 600;
  padding: 4px 10px;
  border-radius: 999px;
  cursor: pointer;
  transition: .15s;
}

.qchips button:hover {
  border-style: solid;
  border-color: var(--primary);
  color: var(--primary);
  background: var(--primary-soft);
}

.emoji-chips {
  margin: -6px 0 14px;
}

.emoji-chips button {
  font-size: 18px;
  padding: 3px 8px;
  border-style: solid;
}

.counter {
  float: right;
  font-size: 11.5px;
}

.counter.over {
  color: var(--warn);
  font-weight: 700;
}

.link-btn {
  border: 0;
  background: none;
  padding: 0 0 0 8px;
  font: inherit;
  font-size: 12.5px;
  font-weight: 700;
  color: var(--primary);
  cursor: pointer;
}

.link-btn:hover {
  text-decoration: underline;
}

.tpl-btns {
  float: right;
  font-size: 12px;
  color: var(--muted);
  font-weight: 600;
}

.slug-prev {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.slug-prev b {
  color: var(--primary);
}

.journey-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 12px;
  align-items: start;
}

.journey-prev {
  list-style: none;
  margin: 0;
  padding: 12px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface-2);
  counter-reset: j;
  display: grid;
  gap: 6px;
  max-height: 210px;
  overflow: auto;
}

.journey-prev li {
  counter-increment: j;
  display: flex;
  gap: 8px;
  align-items: center;
  font-size: 13px;
  font-weight: 600;
  color: var(--text-2);
}

.journey-prev li::before {
  content: counter(j);
  width: 22px;
  height: 22px;
  flex: none;
  border-radius: 7px;
  display: grid;
  place-items: center;
  font-size: 11px;
  font-weight: 800;
  background: var(--brand-grad, var(--primary));
  color: #06302b;
}

.journey-prev li.empty {
  color: var(--muted);
  font-weight: 500;
}

.journey-prev li.empty::before {
  content: "…";
  background: var(--border);
  color: var(--muted);
}

.seg {
  box-shadow: var(--shadow-sm);
}

.seg-head {
  gap: 10px;
}

.seg-title {
  display: flex;
  align-items: baseline;
  gap: 10px;
  min-width: 0;
}

.seg-sum {
  font-size: 13px;
  color: var(--muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.seg-tools {
  display: flex;
  gap: 4px;
  flex: none;
}

.city-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 6px;
}

.city-chips:empty {
  display: none;
}

.city-chips span {
  font-size: 11.5px;
  font-weight: 600;
  padding: 2px 9px;
  border-radius: 999px;
  background: #e3f7f2;
  color: #0b766b;
}

.city-chips span.more {
  background: var(--gray-soft);
  color: var(--muted);
}

.url-row {
  display: flex;
  gap: 8px;
}

.url-row input {
  flex: 1;
  min-width: 0;
}

/* Image upload panel */
.up-panel {
  border: 1px solid var(--border);
  border-radius: 14px;
  background: var(--surface-2);
  padding: 16px;
  margin: 4px 0 16px;
}

.up-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}

.up-head b {
  font-size: 14px;
}

.up-head span {
  font-size: 12px;
  color: var(--muted);
}

.up-panel .img-pair {
  margin: 0;
  gap: 18px 22px;
}

.img-lbl {
  display: grid;
  gap: 1px;
  margin-bottom: 2px;
}

.img-lbl b {
  font-size: 13px;
  color: var(--text-2);
}

.img-lbl small {
  font-size: 11.5px;
  color: var(--muted);
}

.up-panel .img-drop {
  background: #fff;
  border-color: #c9d6d4;
}

.up-panel .img-drop:hover,
.img-drop.drag {
  border-color: var(--primary);
  background: var(--primary-soft);
}

.drop-empty {
  display: grid;
  justify-items: center;
  gap: 4px;
  color: var(--text-2);
  pointer-events: none;
}

.drop-empty i {
  width: 40px;
  height: 40px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  background: var(--primary-soft);
  color: var(--primary);
  margin-bottom: 2px;
}

.drop-empty i svg {
  width: 20px;
  height: 20px;
  transform: rotate(180deg);
}

.drop-empty b {
  font-size: 13px;
  color: var(--text);
}

.drop-empty small {
  font-size: 11.5px;
  color: var(--muted);
  font-weight: 500;
}

.chk.sm {
  font-size: 12.5px;
  margin-top: 4px;
}

.up-note {
  margin: 14px 0 0;
  padding-top: 12px;
  border-top: 1px dashed var(--border-2);
  font-size: 12.5px;
  color: var(--muted);
}

/* Live preview (right column) */
.pv-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--border);
}

.pv-top b {
  font-size: 14px;
}

.pv-tabs {
  display: flex;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 4px;
  gap: 4px;
}

.pv-tabs button {
  flex: 1;
  border: 0;
  background: transparent;
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  color: var(--muted);
  padding: 8px;
  border-radius: 9px;
  cursor: pointer;
}

.pv-tabs button.on {
  background: var(--brand-grad, var(--primary));
  color: #06302b;
}

.pv-pane[data-pane="site"] {
  padding: 14px;
  display: grid;
  gap: 10px;
}

.pv-label {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-weight: 800;
  color: var(--muted);
}

.pv-slide {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-radius: 12px;
  overflow: hidden;
  background: var(--cream);
  border: 1px solid var(--border);
  min-height: 150px;
}

.pv-media {
  background: #ddd center / cover no-repeat;
}

.pv-text {
  padding: 12px;
  display: grid;
  align-content: center;
  gap: 4px;
}

.pv-kick {
  font-size: 10px;
  font-weight: 700;
  color: var(--orange);
}

.pv-text b {
  font-size: 15px;
  line-height: 1.15;
  font-weight: 800;
  color: var(--navy);
  overflow-wrap: anywhere;
}

.pv-text small {
  font-size: 10.5px;
  color: var(--text-2);
}

.pv-cta {
  justify-self: start;
  margin-top: 4px;
  font-size: 10px;
  font-weight: 700;
  color: #fff;
  background: var(--navy);
  padding: 5px 10px;
  border-radius: 999px;
}

.pv-card {
  position: relative;
  display: flex;
  gap: 12px;
  padding: 30px 12px 12px;
  border: 1px solid #e3f2ee;
  border-radius: 10px;
  background: #fff;
}

.pv-badge {
  position: absolute;
  left: 10px;
  top: 8px;
  font-size: 10px;
  font-weight: 700;
  color: #fff;
  background: #10b981;
  padding: 2px 8px;
  border-radius: 999px;
}

.pv-img {
  width: 72px;
  height: 72px;
  flex: none;
  border-radius: 8px;
  background: #f3f4f8;
  display: grid;
  place-items: center;
  overflow: hidden;
  font-size: 30px;
  letter-spacing: -.1em;
  white-space: nowrap;
}

.pv-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.pv-body {
  min-width: 0;
  display: grid;
  gap: 4px;
  align-content: start;
}

.pv-body>b {
  font-size: 13px;
  color: var(--navy);
}

.pv-price {
  font-size: 14px;
  font-weight: 800;
  color: var(--orange);
  overflow-wrap: anywhere;
}

.pv-price em {
  font-style: normal;
  font-size: 9.5px;
  font-weight: 700;
  color: #fff;
  background: #10b981;
  padding: 1px 6px;
  border-radius: 4px;
  vertical-align: 2px;
}

.pv-meta {
  font-size: 10.5px;
  color: var(--muted);
}

.pv-btn {
  justify-self: start;
  margin-top: 2px;
  font-size: 10.5px;
  font-weight: 700;
  color: #fff;
  background: var(--navy);
  padding: 5px 12px;
  border-radius: 999px;
}

@media (max-width: 720px) {
  .ce-head {
    flex-wrap: wrap;
  }

  .ce-meta {
    width: 100%;
    justify-content: space-between;
  }

  .ce-score {
    justify-items: start;
  }

  .journey-grid {
    grid-template-columns: 1fr;
  }

  .tpl-btns {
    float: none;
    display: block;
    margin-top: 4px;
  }
}

/* ---------- Forced password change ---------- */
.team-form {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.f-sec.must {
  border: 2px solid #2ec4c9;
  box-shadow: 0 0 0 5px rgba(46, 196, 201, .12), var(--shadow);
}

.f-sec.must .num {
  font-size: 16px;
}

.f-sec code {
  background: var(--surface-2);
  border: 1px solid var(--border);
  padding: 1px 6px;
  border-radius: 6px;
  font-size: 12px;
}

.side-nav a.nav-locked {
  opacity: .5;
}

.side-nav a.nav-locked:hover {
  opacity: .8;
}

.nav-lock {
  margin-left: auto;
  font-style: normal;
  font-size: 12px;
}

/* ---------- Admin login (dark glass, logo colours) ---------- */
.al-body {
  min-height: 100vh;
  margin: 0;
  background: #061a1d;
  color: #e6f4f2;
  overflow-x: hidden;
}

.al-bg {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background:
    linear-gradient(rgba(255, 255, 255, .035) 1px, transparent 1px) 0 0 / 56px 56px,
    linear-gradient(90deg, rgba(255, 255, 255, .035) 1px, transparent 1px) 0 0 / 56px 56px,
    radial-gradient(ellipse at 50% 120%, #0b2a2e 0%, #061a1d 55%, #040f11 100%);
}

.al-glow {
  position: absolute;
  border-radius: 50%;
  filter: blur(90px);
  opacity: .55;
  animation: alFloat 14s ease-in-out infinite alternate;
}

.al-glow.g1 {
  width: 620px;
  height: 620px;
  left: -180px;
  top: -160px;
  background: radial-gradient(circle, #2ec4c9 0%, rgba(46, 196, 201, 0) 70%);
}

.al-glow.g2 {
  width: 560px;
  height: 560px;
  right: -160px;
  bottom: -180px;
  background: radial-gradient(circle, #9be073 0%, rgba(155, 224, 115, 0) 70%);
  animation-delay: -6s;
  opacity: .45;
}

.al-glow.g3 {
  width: 360px;
  height: 360px;
  left: 55%;
  top: 48%;
  background: radial-gradient(circle, #1aa79b 0%, rgba(26, 167, 155, 0) 70%);
  opacity: .25;
  animation-delay: -3s;
}

@keyframes alFloat {
  from {
    transform: translate(0, 0) scale(1);
  }

  to {
    transform: translate(40px, 30px) scale(1.08);
  }
}

.al-wrap {
  position: relative;
  z-index: 1;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 32px 16px;
  gap: 22px;
}

.al-brand {
  display: flex;
  align-items: center;
  gap: 14px;
  animation: rise .6s ease both;
}

.al-brand img {
  height: 62px;
  width: auto;
  filter: drop-shadow(0 6px 18px rgba(46, 196, 201, .25));
}

.al-sep {
  width: 1px;
  height: 34px;
  background: rgba(255, 255, 255, .25);
}

.al-tag {
  font-size: 26px;
  font-weight: 800;
  letter-spacing: .02em;
  background: linear-gradient(90deg, #2ec4c9, #9be073);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.al-card {
  width: 100%;
  max-width: 420px;
  padding: 32px 32px 26px;
  border-radius: 24px;
  background: linear-gradient(160deg, rgba(25, 58, 62, .72), rgba(10, 32, 36, .72));
  border: 1px solid rgba(155, 224, 115, .16);
  box-shadow: 0 30px 80px rgba(0, 0, 0, .45), inset 0 1px 0 rgba(255, 255, 255, .06);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  animation: rise .6s .08s ease both;
}

.al-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12.5px;
  font-weight: 700;
  color: #7fe3d8;
  padding: 5px 12px;
  border-radius: 999px;
  background: rgba(46, 196, 201, .1);
  border: 1px solid rgba(46, 196, 201, .35);
}

.al-pill svg {
  width: 14px;
  height: 14px;
}

.al-card h1 {
  margin: 18px 0 6px;
  font-size: 27px;
  font-weight: 800;
  color: #fff;
  letter-spacing: -.02em;
}

.al-sub {
  margin: 0 0 24px;
  font-size: 14px;
  color: #9fbdba;
  line-height: 1.5;
}

.al-err {
  margin: 0 0 16px;
  padding: 10px 14px;
  border-radius: 12px;
  font-size: 13.5px;
  color: #ffd4d4;
  background: rgba(220, 38, 38, .14);
  border: 1px solid rgba(248, 113, 113, .35);
}

.al-field {
  position: relative;
  display: block;
  margin-bottom: 14px;
  padding: 9px 14px 8px;
  border-radius: 14px;
  background: rgba(4, 20, 23, .55);
  border: 1px solid rgba(159, 189, 186, .22);
  transition: border-color .2s, box-shadow .2s;
  cursor: text;
}

.al-field:focus-within {
  border-color: #2ec4c9;
  box-shadow: 0 0 0 4px rgba(46, 196, 201, .16);
}

.al-field>span {
  display: block;
  font-size: 11.5px;
  font-weight: 600;
  color: #7fd4cc;
  margin-bottom: 2px;
}

.al-field input {
  width: 100%;
  border: 0 !important;
  outline: none;
  background: transparent !important;
  box-shadow: none !important;
  padding: 0 !important;
  color: #fff;
  font: inherit;
  font-size: 15px;
}

.al-field input::placeholder {
  color: rgba(230, 244, 242, .3);
}

.al-field input:-webkit-autofill {
  -webkit-text-fill-color: #fff;
  -webkit-box-shadow: 0 0 0 40px #0b2629 inset !important;
}

.al-pw input {
  padding-right: 34px !important;
}

.al-eye {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: #9fbdba;
  cursor: pointer;
  display: grid;
  place-items: center;
}

.al-eye:hover {
  background: rgba(255, 255, 255, .06);
  color: #fff;
}

.al-eye.on {
  color: #9be073;
}

.al-eye svg {
  width: 18px;
  height: 18px;
}

.al-btn {
  width: 100%;
  margin-top: 12px;
  padding: 14px;
  border: 0;
  border-radius: 14px;
  cursor: pointer;
  font: inherit;
  font-size: 15.5px;
  font-weight: 800;
  color: #062b27;
  background: linear-gradient(90deg, #2ec4c9, #9be073);
  box-shadow: 0 12px 30px rgba(46, 196, 201, .35);
  transition: transform .15s, box-shadow .2s, filter .2s;
}

.al-btn:hover {
  filter: brightness(1.06);
  box-shadow: 0 16px 36px rgba(46, 196, 201, .45);
}

.al-btn:active {
  transform: translateY(1px);
}

.al-btn:disabled {
  opacity: .7;
  cursor: default;
}

.al-back {
  display: block;
  text-align: center;
  margin-top: 18px;
  font-size: 13px;
  color: #9fbdba;
}

.al-back:hover {
  color: #fff;
}

.al-foot {
  margin: 0;
  font-size: 12px;
  color: rgba(159, 189, 186, .6);
}

@media (max-width: 480px) {
  .al-card {
    padding: 26px 20px 22px;
    border-radius: 20px;
  }

  .al-brand img {
    height: 50px;
  }

  .al-tag {
    font-size: 22px;
  }
}

/* ---------- Campaign wizard ---------- */
.wiz-steps {
  list-style: none;
  margin: 0 0 20px;
  padding: 14px 10px;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}

.wiz-steps li {
  position: relative;
}

.wiz-steps li:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 25px;
  left: calc(50% + 26px);
  right: calc(-50% + 26px);
  height: 3px;
  border-radius: 3px;
  background: var(--border);
  transition: background .3s;
}

.wiz-steps li.done:not(:last-child)::after {
  background: var(--brand-grad, var(--primary));
}

.wiz-steps button {
  width: 100%;
  background: none;
  border: 0;
  padding: 4px;
  display: grid;
  justify-items: center;
  gap: 6px;
  font: inherit;
  cursor: pointer;
}

.wiz-steps button:disabled {
  cursor: not-allowed;
  opacity: .55;
}

.ws-n {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-weight: 800;
  font-size: 15px;
  background: #fff;
  border: 2px solid var(--border-2);
  color: var(--muted);
  transition: .25s;
  position: relative;
  z-index: 1;
}

.ws-l {
  font-size: 13px;
  font-weight: 700;
  color: var(--muted);
}

.wiz-steps li.done .ws-n {
  background: var(--primary);
  border-color: var(--primary);
  color: #fff;
  font-size: 0;
}

.wiz-steps li.done .ws-n::before {
  content: "✓";
  font-size: 18px;
}

.wiz-steps li.on .ws-n {
  background: var(--brand-grad, var(--primary));
  border-color: transparent;
  color: #06302b;
  font-size: 15px;
  box-shadow: 0 0 0 6px var(--primary-soft);
}

.wiz-steps li.on .ws-n::before {
  content: none;
}

.wiz-steps li.on .ws-l {
  color: var(--text);
}

.f-sec[data-step]:not([hidden]) {
  animation: rise .35s ease both;
}

.wiz-bar {
  align-items: center;
}

.wiz-bar .wiz-pos {
  margin-right: auto;
  margin-left: 6px;
  font-size: 13px;
  font-weight: 700;
  color: var(--muted);
}

.invalid {
  border-color: var(--danger) !important;
  box-shadow: 0 0 0 4px var(--danger-soft) !important;
  animation: shake .35s;
}

@keyframes shake {
  25% {
    transform: translateX(-4px);
  }

  75% {
    transform: translateX(4px);
  }
}

.rv-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.rv-card {
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 14px 16px;
  background: var(--surface-2);
}

.rv-card h4 {
  margin: 0 0 6px;
  font-size: 14px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.rv-card h4 button {
  border: 0;
  background: none;
  color: var(--primary);
  font: inherit;
  font-size: 12.5px;
  font-weight: 700;
  cursor: pointer;
}

.rv-row {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  padding: 7px 0;
  border-bottom: 1px dashed var(--border);
  font-size: 13.5px;
}

.rv-row:last-child {
  border-bottom: 0;
}

.rv-row span {
  color: var(--muted);
  flex: none;
}

.rv-row b {
  text-align: right;
  font-weight: 600;
  overflow-wrap: anywhere;
}

.rv-row.warn b {
  color: var(--warn);
}

@media (max-width: 720px) {
  .wiz-steps .ws-l {
    display: none;
  }

  .wiz-steps li:not(:last-child)::after {
    left: calc(50% + 22px);
    right: calc(-50% + 22px);
  }

  .ws-n {
    width: 38px;
    height: 38px;
  }

  .rv-grid {
    grid-template-columns: 1fr;
  }

  .wiz-bar .wiz-pos {
    display: none;
  }
}

/* ---------- Team & access ---------- */
.side-foot a.who {
  color: #fff;
  display: block;
  min-width: 0;
}

.side-foot a.who:hover b {
  text-decoration: underline;
}

.role-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 12px;
  margin-bottom: 18px;
}

.role-card {
  padding: 14px 16px;
  display: grid;
  gap: 8px;
}

.role-card b {
  font-size: 14px;
}

.chips {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  align-items: flex-start;
  align-content: flex-start;
}

.chips span {
  font-size: 11px;
  font-weight: 700;
  background: var(--primary-soft);
  color: var(--primary);
  padding: 2px 8px;
  border-radius: 999px;
  white-space: nowrap;
}

.chips.big span {
  font-size: 13px;
  padding: 5px 12px;
  background: var(--ok-soft);
  color: var(--ok);
}

.role-pill {
  font-size: 12px;
  font-weight: 800;
  padding: 4px 10px;
  border-radius: 8px;
  background: var(--gray-soft);
  color: var(--text-2);
  white-space: nowrap;
}

.role-super {
  background: #fef3c7;
  color: #92400e;
}

.role-manager {
  background: var(--primary-soft);
  color: var(--primary);
}

.role-reviewer {
  background: var(--ok-soft);
  color: var(--ok);
}

.role-viewer {
  background: #f1f5f9;
  color: #475569;
}

.role-custom {
  background: #fdf2f8;
  color: #be185d;
}

.you {
  font-size: 10px;
  font-weight: 800;
  background: var(--accent);
  color: #1c1203;
  padding: 1px 6px;
  border-radius: 6px;
  vertical-align: 2px;
}

.team-form {
  max-width: 860px;
}

.role-pick {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 10px;
  margin-bottom: 16px;
}

.role-opt {
  cursor: pointer;
}

.role-opt input {
  display: none;
}

.role-opt span {
  display: grid;
  gap: 2px;
  border: 2px solid var(--border);
  border-radius: 12px;
  padding: 12px 14px;
  transition: .15s;
}

.role-opt span b {
  font-size: 14px;
}

.role-opt span small {
  font-size: 12px;
  color: var(--muted);
}

.role-opt input:checked+span {
  border-color: var(--primary);
  background: var(--primary-soft);
}

.perm-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 10px 18px;
  padding: 14px;
  border: 1px dashed var(--border-2);
  border-radius: 12px;
}

.perm-list.locked {
  opacity: .7;
}

.perm-list .perm {
  font-weight: 500;
}

.pw-wrap {
  display: flex;
  gap: 8px;
}

.pw-wrap input {
  flex: 1;
  font-family: var(--mono);
}

.filter-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 10px 14px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--border);
  background: var(--surface-2);
  margin: 0;
}

.filter-bar label {
  display: grid;
  gap: 4px;
  font-size: 11.5px;
  font-weight: 700;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: .05em;
}

.filter-bar select,
.filter-bar input[type=date] {
  width: auto;
  min-width: 150px;
  padding: 8px 10px;
  font-size: 13px;
  text-transform: none;
  letter-spacing: 0;
  font-weight: 500;
}

.filter-bar .fb-count {
  margin-left: auto;
  align-self: center;
  font-size: 13px;
  font-weight: 700;
  color: var(--text-2);
}

.panel-top .search-box {
  min-width: 240px;
}

.rtable th,
.rtable td {
  padding-left: 11px;
  padding-right: 11px;
}

.rtable .t-segs {
  min-width: 165px;
}

.rtable .t-offer {
  display: inline-block;
  max-width: 130px;
}

.rtable .t-acts {
  gap: 2px;
}

.rtable .t-acts .btn-icon {
  width: 30px;
  height: 30px;
  padding: 6px;
}

.sidebar .logo-img {
  height: 46px;
}

@media (max-width: 720px) {

  .filter-bar label,
  .filter-bar select,
  .filter-bar input[type=date] {
    width: 100%;
  }

  .filter-bar .fb-count {
    margin-left: 0;
  }
}

.orders-t td {
  font-size: 13.5px;
}

.t-email {
  max-width: 200px;
  word-break: break-all;
}

.oid {
  font-family: var(--mono);
  font-size: 12.5px;
  background: var(--surface-2);
  border: 1px solid var(--border);
  padding: 2px 6px;
  border-radius: 6px;
}

.thumb {
  display: block;
  width: 54px;
  height: 54px;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid var(--border);
}

.thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.oa {
  display: grid;
  gap: 6px;
}

.oa input {
  padding: 7px 10px;
  font-size: 13px;
}

.oa-btns {
  display: flex;
  gap: 6px;
}

.btn-ok {
  color: var(--ok);
}

.btn-ok:hover {
  background: var(--ok-soft);
  border-color: #a7f3d0;
}

.btn:disabled {
  opacity: .45;
  cursor: default;
}

.avatar.sm {
  width: 36px;
  height: 36px;
  color: #fff;
  font-size: 14px;
}

.img-up {
  display: flex;
  gap: 14px;
  align-items: center;
}

/* Compact, fixed-size image pickers (banner 16:9, card square) */
.img-pair {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 20px;
  margin-bottom: 10px;
  align-items: flex-start;
}

.img-box {
  display: grid;
  gap: 6px;
  align-content: start;
}

.img-box>label:first-child {
  font-size: 13px;
  font-weight: 700;
  color: var(--text-2);
}

.img-drop {
  position: relative;
  display: grid;
  place-items: center;
  border: 2px dashed var(--border-2);
  border-radius: 12px;
  background: var(--surface-2);
  overflow: hidden;
  cursor: pointer;
  text-align: center;
  color: var(--navy);
  font-weight: 700;
  font-size: 13px;
  line-height: 1.4;
  padding: 8px;
  transition: .15s;
}

.img-drop:hover {
  border-color: var(--primary);
  background: var(--primary-soft);
}

.img-drop.wide {
  width: 320px;
  height: 180px;
}

.img-drop.square {
  width: 180px;
  height: 180px;
}

.img-drop img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.img-drop:has(img) {
  border-style: solid;
  padding: 0;
}

.img-drop:has(img)::after {
  content: "Change";
  position: absolute;
  right: 8px;
  bottom: 8px;
  background: rgba(15, 23, 42, .75);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  padding: 4px 9px;
  border-radius: 999px;
}

.img-drop small {
  color: var(--muted);
  font-weight: 500;
}

.img-drop input {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
  z-index: 1;
}

.emoji-tile img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: inherit;
}

.t-camp .emoji-tile:has(img) {
  padding: 0;
  width: 42px !important;
  overflow: hidden;
}

@media (max-width: 720px) {
  .img-drop.wide {
    width: 100%;
    max-width: 320px;
    height: auto;
    aspect-ratio: 16 / 9;
  }
}

.img-prev {
  width: 84px;
  height: 84px;
  flex: none;
  border-radius: 12px;
  background: var(--surface-2);
  border: 1px solid var(--border);
  display: grid;
  place-items: center;
  overflow: hidden;
  font-size: 34px;
}

.img-prev img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.chk {
  display: flex;
  gap: 8px;
  align-items: center;
  font-size: 13.5px;
  font-weight: 600;
  cursor: pointer;
}

.chk input {
  width: 16px;
  height: 16px;
}

@media (max-width: 1000px) {
  .h-text {
    padding: 40px 70px 40px 40px;
  }

  .h-text h1 {
    font-size: 38px;
  }

  .c-hero-grid {
    grid-template-columns: 300px minmax(0, 1fr);
    gap: 26px;
  }

  .c-body {
    grid-template-columns: minmax(0, 1fr);
  }

  .c-side {
    position: static;
  }

  .how-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .f-grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 760px) {
  .s-header {
    position: static;
  }

  .s-head-row {
    flex-wrap: wrap;
    height: auto;
    padding-top: 10px;
    padding-bottom: 10px;
    gap: 10px;
  }

  .s-search {
    order: 3;
    flex-basis: 100%;
    max-width: none;
  }

  .s-logo {
    font-size: 17px;
  }

  .s-nav-row {
    height: auto;
    padding-top: 6px;
    padding-bottom: 6px;
  }

  .s-nav .btn-grad {
    display: none;
  }

  .h-slide {
    grid-template-columns: 1fr;
    height: auto;
    min-height: 0;
  }

  .h-media {
    height: 220px;
  }

  .h-emoji {
    font-size: 100px;
  }

  .h-text {
    padding: 26px 20px 46px;
  }

  .h-text h1 {
    font-size: 30px;
  }

  .h-dots {
    left: 50%;
  }

  .h-arrow {
    top: 110px;
    width: 36px;
    height: 36px;
  }

  .mq-track span {
    font-size: 22px;
  }

  .sec-pad {
    padding: 40px 16px;
  }

  .sec-title h2 {
    font-size: 26px;
  }

  .o-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .o-img {
    width: 92px;
    height: 92px;
    font-size: 32px;
  }

  .o-card {
    gap: 14px;
    padding: 40px 14px 14px;
  }

  .how-grid {
    grid-template-columns: 1fr;
  }

  .f-grid {
    grid-template-columns: 1fr;
    gap: 22px;
  }

  .f-top {
    justify-content: center;
    text-align: center;
  }

  .c-hero-grid {
    grid-template-columns: 1fr;
  }

  .c-media {
    aspect-ratio: 16 / 10;
  }

  .c-info h1 {
    font-size: 28px;
  }

  .c-offer b {
    font-size: 24px;
  }

  .c-body {
    padding-bottom: 100px;
  }

  #claim,
  #deals,
  #my-claims {
    scroll-margin-top: 16px;
  }

  .auth-card {
    grid-template-columns: 1fr;
  }

  .auth-side {
    display: none;
  }

  .auth-form {
    padding: 26px 20px;
  }

  .mo-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .claim-row {
    flex-wrap: wrap;
  }

  .filters,
  .filters select,
  .filters .search-box {
    width: 100%;
    min-width: 0;
  }
}

/* =========================================================
   Responsive polish — phones, tablets, small laptops
   (kept last so it wins over earlier rules)
   ========================================================= */
.m-top,
.m-overlay {
  display: none;
}

.annc-short {
  display: none;
}

/* ----- Admin: tablet & phone → top bar + slide-in drawer ----- */
@media (max-width: 900px) {
  .m-top {
    display: flex;
    align-items: center;
    gap: 12px;
    position: sticky;
    top: 0;
    z-index: 50;
    height: 60px;
    padding: 0 14px;
    background: linear-gradient(180deg, #0d2a2d, #0b2326);
    box-shadow: 0 2px 12px rgba(0, 0, 0, .18);
  }

  .m-burger {
    width: 42px;
    height: 42px;
    border: 0;
    border-radius: 12px;
    background: rgba(255, 255, 255, .08);
    color: #fff;
    display: grid;
    place-items: center;
    cursor: pointer;
  }

  .m-burger svg {
    width: 22px;
    height: 22px;
  }

  .m-logo img {
    height: 40px;
    display: block;
  }

  .m-av {
    margin-left: auto;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    font-weight: 800;
    color: #06302b;
    background: linear-gradient(135deg, #2ec4c9, #9be073);
  }

  .m-overlay {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 55;
    background: rgba(4, 15, 17, .55);
    opacity: 0;
    pointer-events: none;
    transition: opacity .25s;
  }

  body.nav-open .m-overlay {
    opacity: 1;
    pointer-events: auto;
  }

  body.nav-open {
    overflow: hidden;
  }

  .admin .sidebar {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    z-index: 60;
    width: 280px;
    max-width: 85vw;
    height: 100vh;
    height: 100dvh;
    flex-direction: column;
    padding: 20px 14px;
    gap: 22px;
    transform: translateX(-105%);
    transition: transform .28s cubic-bezier(.22, .8, .3, 1);
    overflow-y: auto;
  }

  body.nav-open .admin .sidebar {
    transform: none;
    box-shadow: 20px 0 50px rgba(0, 0, 0, .35);
  }

  .a-main {
    padding: 20px 18px 40px;
  }

  .a-head {
    margin-bottom: 16px;
  }

  .a-head h1 {
    font-size: 22px;
  }
}

/* ----- Admin: tables turn into tidy cards below 1100px ----- */
@media (max-width: 1100px) {
  .rtable thead {
    display: none;
  }

  .rtable,
  .rtable tbody {
    display: block;
    width: 100%;
  }

  .rtable tr {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
    gap: 12px 18px;
    padding: 16px;
    border-bottom: 1px solid var(--border);
  }

  .rtable tbody tr:hover {
    background: transparent;
  }

  .rtable td {
    display: block;
    border: 0;
    padding: 0;
    min-width: 0;
  }

  .rtable td[data-label]::before {
    content: attr(data-label);
    display: block;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .07em;
    color: var(--muted);
    font-weight: 700;
    margin-bottom: 3px;
  }

  .rtable td.t-first,
  .rtable td:last-child {
    grid-column: 1 / -1;
  }

  .rtable td:last-child .t-acts {
    justify-content: flex-start;
    flex-wrap: wrap;
    border-top: 1px dashed var(--border);
    padding-top: 12px;
  }

  .rtable .t-camp {
    min-width: 0;
  }

  .orders-t td {
    white-space: normal !important;
    min-width: 0 !important;
  }

  .orders-t .oa {
    max-width: 420px;
  }

  .panel-top {
    gap: 10px;
  }

  .panel-top .filters {
    width: 100%;
  }
}

/* ----- Admin: phones ----- */
@media (max-width: 600px) {
  .stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .stat {
    flex-direction: row;
    align-items: center;
    padding: 12px;
    gap: 10px;
  }

  .stat .ico {
    width: 36px;
    height: 36px;
    border-radius: 10px;
  }

  .stat .ico svg {
    width: 18px;
    height: 18px;
  }

  .stat .k {
    font-size: 11.5px;
  }

  .stat .v {
    font-size: 20px;
  }

  .a-head .acts {
    width: 100%;
  }

  .a-head .acts .btn {
    flex: 1;
  }

  .tabs {
    width: 100%;
    overflow-x: auto;
    flex-wrap: nowrap;
  }

  .tab {
    flex: none;
  }

  .filters select,
  .filters .search-box,
  .panel-top .search-box {
    width: 100%;
    min-width: 0;
    max-width: none;
  }

  .ce-head {
    padding: 16px;
    gap: 12px;
  }

  .ce-ico {
    width: 44px;
    height: 44px;
    border-radius: 12px;
  }

  .ce-txt h1 {
    font-size: 20px;
  }

  .wiz-bar {
    flex-wrap: wrap;
  }

  .wiz-bar .btn {
    flex: 1 1 auto;
  }

  .role-cards {
    grid-template-columns: 1fr 1fr;
  }

  .img-drop.square {
    width: 140px;
    height: 140px;
  }
}

/* ----- Site: tablets & phones → stacked hero (photo on top, text below) ----- */
@media (max-width: 900px) {
  .h-slide {
    grid-template-columns: 1fr;
    height: auto;
    min-height: 0;
  }

  .h-media {
    height: 340px;
  }

  .h-text {
    padding: 28px 24px 48px;
  }

  .h-text h1 {
    font-size: 34px;
  }

  .h-dots {
    left: 50%;
  }

  .h-arrow {
    top: 170px;
  }
}

@media (max-width: 600px) {
  .annc {
    flex-wrap: nowrap;
    font-size: 12px;
    padding: 7px 12px;
    gap: 8px;
  }

  .annc-long {
    display: none;
  }

  .annc-short {
    display: inline;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
  }

  .annc-btn {
    flex: none;
    font-size: 10.5px;
    padding: 3px 10px;
  }

  .s-links a {
    font-size: 14px;
    padding: 7px 9px;
  }

  .s-links {
    gap: 0;
  }

  .h-media {
    height: 230px;
  }

  .h-text {
    padding: 22px 18px 44px;
  }

  .h-text h1 {
    font-size: 28px;
  }

  .h-arrow {
    top: 115px;
  }

  .mq-track span {
    font-size: 20px;
  }

  .mq-track i {
    font-size: 18px;
  }

  .sec-title h2 {
    font-size: 24px;
  }

  .o-acts {
    gap: 8px;
  }

  .c-info h1 {
    font-size: 26px;
  }

  .stepper {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* ===== Get Deal — ticket cards (campaign page) ===== */
.deals {
  padding: 24px;
}

.deal-head {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 18px;
}

.dh-ic {
  width: 46px;
  height: 46px;
  flex: none;
  border-radius: 14px;
  display: grid;
  place-items: center;
  font-size: 22px;
  background: linear-gradient(135deg, #e0f7f7, #effbe0);
}

.dh-t {
  min-width: 0;
  flex: 1;
}

.dh-t h2 {
  margin: 0;
  font-size: 20px;
  font-weight: 800;
  color: var(--navy);
  letter-spacing: -.01em;
}

.dh-t p {
  margin: 2px 0 0;
  font-size: 13.5px;
  color: var(--muted);
}

.deal-count {
  flex: none;
  font-size: 12.5px;
  font-weight: 700;
  color: var(--navy);
  background: #eef0ff;
  padding: 6px 12px;
  border-radius: 999px;
}

.deal-list {
  display: grid;
  gap: 14px;
}

.deal-tk {
  --tk: #16a34a;
  --tk-soft: #ecfdf3;
  --side: 210px;
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) var(--side);
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 18px;
  box-shadow: 0 1px 2px rgba(15, 23, 42, .04);
  transition: transform .18s, box-shadow .18s, border-color .18s;
}

.deal-tk:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 28px rgba(30, 27, 75, .10);
  border-color: #d9dcf3;
}

.deal-tk.tk-urgent {
  --tk: #ea580c;
  --tk-soft: #fff4ec;
}

.deal-tk.tk-ended {
  --tk: #94a3b8;
  --tk-soft: #f1f5f9;
}

.deal-tk.tk-ended .tk-main {
  opacity: .65;
}

/* perforation notches */
.deal-tk::before,
.deal-tk::after {
  content: "";
  position: absolute;
  left: calc(100% - var(--side) - 11px);
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #fff;
  border: 1px solid var(--border);
  z-index: 1;
}

.deal-tk::before {
  top: -12px;
  clip-path: inset(50% 0 0 0);
}

.deal-tk::after {
  bottom: -12px;
  clip-path: inset(0 0 50% 0);
}

.tk-main {
  position: relative;
  padding: 20px 22px 20px 26px;
  display: grid;
  gap: 16px;
  align-content: start;
}

.tk-main::before {
  content: "";
  position: absolute;
  left: 0;
  top: 18px;
  bottom: 18px;
  width: 4px;
  border-radius: 0 4px 4px 0;
  background: var(--tk);
}

.tk-top {
  display: flex;
  align-items: center;
  gap: 14px;
}

.tk-no {
  flex: none;
  width: 42px;
  height: 42px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  font-weight: 800;
  font-size: 14px;
  color: var(--navy);
  background: #f1f2fb;
  letter-spacing: .02em;
}

.tk-ttl {
  min-width: 0;
}

.tk-ttl h3 {
  margin: 0;
  font-size: 18px;
  font-weight: 800;
  color: var(--navy);
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.tk-date {
  display: inline-block;
  margin-top: 3px;
  font-size: 13px;
  font-weight: 600;
  color: var(--muted);
}

.tk-k {
  display: block;
  font-size: 11.5px;
  font-weight: 700;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: .07em;
  margin-bottom: 8px;
}

.tk-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.tk-chips span {
  font-size: 13px;
  font-weight: 600;
  color: var(--text-2);
  background: var(--surface-2);
  border: 1px solid var(--border);
  padding: 5px 12px;
  border-radius: 999px;
}

.tk-chips span.more {
  display: none;
}

.tk-chips.all span.more {
  display: inline-block;
}

.tk-more {
  font: inherit;
  font-size: 12.5px;
  font-weight: 700;
  color: var(--navy);
  background: #eef0ff;
  border: 0;
  padding: 5px 12px;
  border-radius: 999px;
  cursor: pointer;
}

.tk-side {
  border-left: 2px dashed var(--border);
  padding: 20px 18px;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
  gap: 10px;
  text-align: center;
  background: linear-gradient(180deg, var(--tk-soft), #fff 70%);
  border-radius: 0 18px 18px 0;
}

.tk-days {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 6px;
  color: var(--tk);
}

.tk-days b {
  font-size: 34px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -.03em;
}

.tk-days span {
  font-size: 13px;
  font-weight: 700;
}

.tk-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  background: var(--navy);
  color: #fff;
  font-weight: 700;
  font-size: 14.5px;
  padding: 12px 16px;
  border-radius: 12px;
  white-space: nowrap;
  transition: .15s;
  box-shadow: 0 6px 16px rgba(30, 27, 75, .18);
}

.tk-btn:hover {
  background: var(--navy-2);
  color: #fff;
  transform: translateY(-1px);
}

.tk-btn.tk-off {
  background: #e2e8f0;
  color: #64748b;
  box-shadow: none;
  cursor: default;
}

.tk-up {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--text-2);
}

.tk-up:hover {
  color: var(--orange);
}

@media (max-width: 640px) {
  .deals {
    padding: 16px;
  }

  .deal-head {
    flex-wrap: wrap;
    gap: 12px;
  }

  .dh-ic {
    width: 40px;
    height: 40px;
    font-size: 19px;
  }

  .dh-t h2 {
    font-size: 18px;
  }

  .deal-tk {
    grid-template-columns: minmax(0, 1fr);
  }

  .deal-tk::before,
  .deal-tk::after {
    display: none;
  }

  .tk-main {
    padding: 18px 16px 16px 20px;
  }

  .tk-side {
    border-left: 0;
    border-top: 2px dashed var(--border);
    border-radius: 0 0 18px 18px;
    padding: 14px 16px 16px;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    text-align: left;
    gap: 10px 14px;
    background: linear-gradient(90deg, var(--tk-soft), #fff 60%);
  }

  .tk-days {
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
  }

  .tk-days b {
    font-size: 26px;
  }

  .tk-days span {
    font-size: 11.5px;
  }

  .tk-up {
    grid-column: 1 / -1;
    text-align: center;
  }
}

/* ===== Home page background ===== */
body.store.home {
  background: #F7F7F7;
}

body.home .h-slider,
body.home .h-slide,
body.home .how {
  background: #F7F7F7;
}

/* ===== Order files: view / download ===== */
.file-cell {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.dl-link {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: #fff;
  color: var(--text-2);
}

.dl-link svg,
.btn-dl svg {
  width: 15px;
  height: 15px;
}

.dl-link:hover,
.btn-dl:hover {
  border-color: #2ec4c9;
  color: #0d2a2d;
  background: #e9fafa;
}

.btn-dl {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

/* ===== Orders: Action column file buttons ===== */
.oa-files {
  display: grid;
  gap: 6px;
  margin-bottom: 10px;
  padding-bottom: 10px;
  border-bottom: 1px dashed var(--border);
}

.oaf {
  display: flex;
  align-items: center;
  gap: 6px;
}

.oaf-k {
  flex: 1;
  min-width: 92px;
  font-size: 12.5px;
  font-weight: 700;
  color: var(--text-2);
  white-space: nowrap;
}

.oaf-b {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  height: 28px;
  padding: 0 10px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: #fff;
  color: var(--text-2);
  font-size: 12.5px;
  font-weight: 700;
  white-space: nowrap;
}

.oaf-b svg {
  width: 14px;
  height: 14px;
}

.oaf-b:hover {
  border-color: #2ec4c9;
  color: #0d2a2d;
  background: #e9fafa;
}

.oaf-miss {
  font-size: 12px;
  font-weight: 700;
  color: var(--danger);
  background: var(--danger-soft);
  padding: 4px 10px;
  border-radius: 999px;
}

/* ===== ⋮ more menu (orders Action column) ===== */
.kebab {
  position: relative;
  display: inline-block;
}

.oa-btns {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.oa-btns .kebab {
  margin-left: auto;
}

.kebab>summary {
  list-style: none;
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: #fff;
  color: var(--text-2);
  cursor: pointer;
  transition: .15s;
}

.kebab>summary::-webkit-details-marker {
  display: none;
}

.kebab>summary svg {
  width: 17px;
  height: 17px;
}

.kebab>summary:hover,
.kebab[open]>summary {
  border-color: #2ec4c9;
  background: #e9fafa;
  color: #0d2a2d;
}

.kb-menu {
  position: fixed;
  z-index: 200;
  min-width: 220px;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 12px;
  box-shadow: 0 14px 36px rgba(13, 42, 45, .18);
  padding: 6px;
  display: none;
}

.kebab[open] .kb-menu {
  display: block;
}

.kb-h {
  font-size: 10.5px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--muted);
  padding: 8px 10px 4px;
}

.kb-h+a,
.kb-menu a+.kb-h {
  margin-top: 0;
}

.kb-menu a+.kb-h {
  border-top: 1px solid var(--border);
  margin-top: 4px;
  padding-top: 10px;
}

.kb-menu a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  border-radius: 8px;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--text);
  white-space: nowrap;
}

.kb-menu a svg {
  width: 16px;
  height: 16px;
  color: var(--muted);
}

.kb-menu a:hover {
  background: #e9fafa;
  color: #0d2a2d;
}

.kb-menu a:hover svg {
  color: #1a9ea3;
}

.kb-off {
  display: block;
  padding: 8px 10px;
  font-size: 13px;
  font-weight: 600;
  color: var(--danger);
}

.oa-btns {
  flex-wrap: nowrap;
}

/* ===== Sidebar collapse (desktop) ===== */
.side-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.side-top .logo {
  min-width: 0;
}

.side-collapse {
  flex: none;
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 9px;
  border: 1px solid rgba(255, 255, 255, .12);
  background: rgba(255, 255, 255, .04);
  color: #b5d0ce;
  cursor: pointer;
  transition: .15s;
}

.side-collapse svg {
  width: 16px;
  height: 16px;
  transition: transform .25s;
}

.side-collapse:hover {
  background: rgba(155, 224, 115, .12);
  color: #fff;
  border-color: rgba(155, 224, 115, .4);
}

@media (min-width: 901px) {
  .admin {
    transition: grid-template-columns .25s ease;
  }

  body.side-mini .admin {
    grid-template-columns: 78px minmax(0, 1fr);
  }

  body.side-mini .sidebar {
    padding: 18px 10px;
    align-items: stretch;
  }

  body.side-mini .side-top {
    flex-direction: column;
    gap: 12px;
  }

  body.side-mini .side-top .logo {
    padding: 0;
    display: grid;
    place-items: center;
  }

  body.side-mini .sidebar .logo-img {
    height: auto;
    width: 52px;
    max-width: 100%;
  }

  body.side-mini .side-collapse svg {
    transform: rotate(180deg);
  }

  body.side-mini .side-nav .lbl {
    display: none;
  }

  body.side-mini .side-nav a {
    position: relative;
    justify-content: center;
    padding: 11px 0;
  }

  body.side-mini .side-nav a>span {
    display: none;
  }

  body.side-mini .side-nav a svg {
    width: 20px;
    height: 20px;
  }

  body.side-mini .nav-badge {
    position: absolute;
    top: 3px;
    right: 6px;
    margin: 0;
    font-size: 10px;
    padding: 0 5px;
    line-height: 16px;
  }

  body.side-mini .nav-lock {
    position: absolute;
    top: 2px;
    right: 4px;
    margin: 0;
    font-size: 10px;
  }

  body.side-mini .side-foot {
    flex-direction: column;
    padding: 10px 6px;
    gap: 8px;
  }

  body.side-mini .side-foot .who {
    display: none;
  }
}

@media (max-width: 900px) {
  .side-collapse {
    display: none;
  }
}

/* ===== Table pagination (all admin tables) ===== */
tr.pg-off {
  display: none !important;
}

.pager {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
  padding: 14px 18px;
  border-top: 1px solid var(--border);
  background: #fff;
  border-radius: 0 0 var(--radius) var(--radius);
}

.pager[hidden] {
  display: none;
}

.pg-left {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  color: var(--muted);
}

.pg-size {
  height: 38px;
  padding: 0 30px 0 14px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background-color: #fff;
  font: inherit;
  font-size: 14px;
  font-weight: 600;
  color: var(--text);
  cursor: pointer;
  width: auto;
}

.pg-size:focus {
  outline: none;
  border-color: #2ec4c9;
  box-shadow: 0 0 0 3px rgba(46, 196, 201, .18);
}

.pg-nav {
  display: flex;
  align-items: center;
  gap: 6px;
}

.pg-btn {
  min-width: 38px;
  height: 38px;
  padding: 0 6px;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: #fff;
  color: var(--text);
  font: inherit;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  display: grid;
  place-items: center;
  transition: .15s;
}

.pg-btn:hover:not(:disabled):not(.on) {
  border-color: #2ec4c9;
  background: #e9fafa;
  color: #0d2a2d;
}

.pg-btn.on {
  background: linear-gradient(135deg, #2ec4c9, #22a8ad);
  border-color: transparent;
  color: #fff;
  box-shadow: 0 4px 12px rgba(46, 196, 201, .35);
  cursor: default;
}

.pg-btn.pg-edge {
  font-size: 16px;
}

.pg-btn:disabled {
  color: #c3cad6;
  background: #fafbfc;
  cursor: default;
}

.pg-gap {
  min-width: 22px;
  text-align: center;
  color: var(--muted);
  font-weight: 700;
}

@media (max-width: 600px) {
  .pager {
    padding: 12px;
    justify-content: center;
  }

  .pg-left {
    width: 100%;
    justify-content: center;
    font-size: 13px;
  }

  .pg-btn {
    min-width: 34px;
    height: 34px;
    font-size: 13px;
  }

  .pg-nav {
    gap: 4px;
    flex-wrap: wrap;
    justify-content: center;
  }
}

/* ===== Collapse button at the bottom of the sidebar ===== */
.sidebar .side-collapse {
  margin-top: auto;
  width: 100%;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  padding: 0 12px;
  font: inherit;
  font-size: 13.5px;
  font-weight: 600;
}

.sidebar .side-collapse+.side-foot {
  margin-top: -10px;
}

@media (min-width: 901px) {
  body.side-mini .sidebar .side-collapse {
    justify-content: center;
    padding: 0;
  }

  body.side-mini .sidebar .side-collapse span {
    display: none;
  }
}

/* ===== Orders table: compact columns so it fits without cutting ===== */
.orders-t td {
  white-space: normal !important;
  vertical-align: middle;
}

.orders-t td:nth-child(2),
.orders-t td:nth-child(3),
.orders-t td:nth-child(5) {
  min-width: 0;
}

.orders-t .t-num {
  color: var(--muted);
  font-weight: 700;
  white-space: nowrap !important;
}

.orders-t .t-sub {
  display: block;
  font-size: 12.5px;
  color: var(--muted);
  line-height: 1.45;
  margin-top: 2px;
}

.orders-t a.t-sub:hover {
  color: #1a9ea3;
}

.orders-t .t-user {
  min-width: 170px;
  max-width: 230px;
}

.orders-t .t-user b,
.orders-t .t-ocamp b {
  display: block;
  line-height: 1.3;
}

.orders-t .t-mail {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 220px;
}

.orders-t .t-ocamp {
  min-width: 150px;
  max-width: 200px;
}

.orders-t .t-order {
  min-width: 130px;
}

.orders-t .t-order .oid {
  display: inline-block;
  max-width: 100%;
  overflow-wrap: anywhere;
}

.orders-t .t-amt {
  display: block;
  font-weight: 800;
  color: var(--text);
  margin-top: 4px;
}

.orders-t .t-proof {
  min-width: 96px;
}

.orders-t .t-proof .thumb {
  margin-bottom: 6px;
}

.orders-t .t-proof .st {
  white-space: nowrap;
}

.orders-t .t-status {
  min-width: 130px;
  max-width: 180px;
}

.orders-t .th-act {
  min-width: 250px;
}

.orders-t .oa-btns .btn-sm {
  padding-inline: 10px;
}

@media (max-width: 1100px) {

  .orders-t .t-user,
  .orders-t .t-ocamp,
  .orders-t .t-status,
  .orders-t .t-mail {
    max-width: none;
  }

  .orders-t .t-proof {
    display: flex;
    align-items: center;
    gap: 10px;
  }

  .orders-t .t-proof .thumb {
    margin: 0;
  }
}

/* ===== Pagination stays fixed at the bottom of the screen on desktop ===== */
@media (min-width: 901px) {
  .panel {
    overflow: clip;
  }

  .pager {
    position: sticky;
    bottom: 0;
    z-index: 2;
    box-shadow: 0 -8px 20px -12px rgba(13, 42, 45, .18);
  }
}

/* ===== Orders action: cleaner buttons ===== */
.oa input[name=remark] {
  height: 38px;
  border-radius: 10px;
}

.oa-btns .btn-sm {
  height: 34px;
  padding: 0 14px;
  border-radius: 9px;
  font-weight: 700;
}

.oa-btns .btn-ok {
  background: #ecfdf3;
  border-color: #bbf0d0;
  color: #067a4b;
}

.oa-btns .btn-ok:hover {
  background: #16a34a;
  border-color: #16a34a;
  color: #fff;
}

.oa-btns .btn-danger {
  background: #fff;
  border-color: #f6c9c9;
  color: #c42626;
}

.oa-btns .btn-danger:hover {
  background: #dc2626;
  border-color: #dc2626;
  color: #fff;
}

.oa-btns .kebab>summary {
  width: 34px;
  height: 34px;
}

.kb-item {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 8px 10px;
  border: 0;
  border-radius: 8px;
  background: none;
  font: inherit;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--text);
  text-align: left;
  cursor: pointer;
  white-space: nowrap;
}

.kb-item:hover {
  background: #fff7e6;
  color: #b45309;
}

.kb-menu .kb-off+.kb-h {
  border-top: 1px solid var(--border);
  margin-top: 4px;
  padding-top: 10px;
}

/* ===== Orders table — clean layout ===== */
.orders-t td {
  padding-top: 16px;
  padding-bottom: 16px;
}

.orders-t .t-name {
  display: block;
  font-weight: 700;
  color: var(--text);
  line-height: 1.3;
}

.orders-t .t-name:hover {
  color: #1a9ea3;
}

.orders-t .t-sub {
  font-size: 12.5px;
  color: var(--muted);
  margin-top: 2px;
}

.orders-t .t-line {
  display: block;
  margin-top: 6px;
  font-size: 13px;
  color: var(--muted);
  white-space: nowrap;
}

.orders-t .t-line b {
  color: var(--text);
  font-weight: 800;
  font-size: 14px;
}

.orders-t .t-line i {
  font-style: normal;
  margin: 0 2px;
}

.orders-t .t-note {
  display: block;
  margin-top: 4px;
  font-size: 12.5px;
  color: var(--text-2);
  font-style: italic;
  max-width: 200px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.orders-t .t-proof {
  min-width: 80px;
}

.orders-t .t-proof .thumb {
  width: 46px;
  height: 46px;
  margin-bottom: 6px;
}

.t-inv {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
}

.t-inv::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
}

.t-inv.yes {
  color: #067a4b;
}

.t-inv.yes::before {
  background: #16a34a;
}

.t-inv.no {
  color: #b42318;
}

.t-inv.no::before {
  background: #ef4444;
}

.orders-t .t-status .st {
  margin-bottom: 2px;
}

.orders-t .th-act {
  min-width: 0;
  width: 1%;
}

.orders-t .t-act {
  white-space: nowrap !important;
}

.oa-row {
  display: flex;
  align-items: center;
  gap: 6px;
  justify-content: flex-end;
}

.oa-btn {
  height: 34px;
  padding: 0 14px;
  border-radius: 9px;
  border: 1px solid;
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
  transition: .15s;
}

.oa-btn.ok {
  background: #ecfdf3;
  border-color: #bbf0d0;
  color: #067a4b;
}

.oa-btn.ok:hover {
  background: #16a34a;
  border-color: #16a34a;
  color: #fff;
}

.oa-btn.no {
  background: #fff;
  border-color: #f6c9c9;
  color: #c42626;
}

.oa-btn.no:hover {
  background: #dc2626;
  border-color: #dc2626;
  color: #fff;
}

.oa-row .kebab>summary {
  width: 34px;
  height: 34px;
}

.kb-item svg {
  width: 16px;
  height: 16px;
  color: var(--muted);
}

/* Reject / remark popup */
.oa-dlg {
  border: 0;
  border-radius: 16px;
  padding: 0;
  width: min(440px, calc(100vw - 32px));
  box-shadow: 0 24px 60px rgba(13, 42, 45, .3);
}

.oa-dlg::backdrop {
  background: rgba(8, 24, 27, .45);
  backdrop-filter: blur(2px);
}

.oa-dlg form {
  padding: 22px;
  display: grid;
  gap: 10px;
}

.oa-dlg h3 {
  margin: 0;
  font-size: 18px;
  color: #0d2a2d;
}

.oa-dlg p {
  margin: 0;
  font-size: 13.5px;
}

.oa-dlg textarea {
  width: 100%;
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 10px 12px;
  font: inherit;
  font-size: 14px;
  resize: vertical;
}

.oa-dlg textarea:focus {
  outline: none;
  border-color: #2ec4c9;
  box-shadow: 0 0 0 3px rgba(46, 196, 201, .18);
}

.oa-dlg-btns {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 4px;
}

.btn-danger-solid {
  background: #dc2626;
  border-color: #dc2626;
  color: #fff;
}

.btn-danger-solid:hover {
  background: #b91c1c;
  border-color: #b91c1c;
  color: #fff;
}

@media (max-width: 1100px) {
  .oa-row {
    justify-content: flex-start;
  }

  .orders-t .t-note {
    max-width: none;
  }
}

/* ===== Footer top: logo + contact cards ===== */
.f-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
}

.f-contacts {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

.f-ct {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 18px 10px 10px;
  border: 1px solid #27272a;
  border-radius: 14px;
  background: #0c0c0e;
  color: #d4d4d8;
  min-width: 0;
  transition: .15s;
}

.f-ct:hover {
  border-color: #2ec4c9;
  background: #0f1a1b;
  color: #fff;
}

.f-ic {
  width: 40px;
  height: 40px;
  flex: none;
  border-radius: 10px;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, #2ec4c9, #9be073);
  color: #06302b;
}

.f-ic svg {
  width: 19px;
  height: 19px;
}

.f-ct-t {
  display: grid;
  min-width: 0;
  line-height: 1.25;
}

.f-ct-t small {
  font-size: 12px;
  color: #a1a1aa;
}

.f-ct-t b {
  font-size: 15.5px;
  font-weight: 700;
  color: #fff;
  overflow-wrap: anywhere;
}

@media (max-width: 760px) {
  .f-top {
    flex-direction: column;
    align-items: stretch;
    text-align: left;
    gap: 18px;
  }

  .f-top .f-logo {
    align-self: center;
  }

  .f-contacts {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
  }

  .f-ct {
    padding: 10px 14px 10px 10px;
  }
}

/* ===== Offer card tags ===== */
.o-tags {
  position: absolute;
  left: 12px;
  top: 12px;
  display: flex;
  gap: 6px;
  align-items: center;
}

.o-tags .o-badge {
  position: static;
}

.o-left {
  font-size: 11px;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 999px;
  background: #ecfdf3;
  color: #067a4b;
  white-space: nowrap;
}

.o-left.urgent {
  background: #fff1e6;
  color: #c2410c;
}

/* ===== All Offers page ===== */
body.store.soft {
  background: #F7F7F7;
}

.ofs-wrap {
  max-width: 1180px;
}

.ofs-hero {
  background: radial-gradient(900px 260px at 15% 0%, rgba(46, 196, 201, .16), transparent 70%), radial-gradient(700px 240px at 90% 10%, rgba(155, 224, 115, .18), transparent 70%), #fff;
  border-bottom: 1px solid var(--border);
  padding: 44px 0 40px;
  text-align: center;
}

.ofs-kicker {
  display: inline-block;
  font-size: 13px;
  font-weight: 700;
  color: var(--orange);
  background: #fff4ec;
  padding: 5px 12px;
  border-radius: 999px;
}

.ofs-hero h1 {
  margin: 12px 0 8px;
  font-family: "Poppins", var(--font);
  font-size: clamp(30px, 4vw, 44px);
  font-weight: 700;
  color: #22304f;
  letter-spacing: -.01em;
}

.ofs-hero p {
  margin: 0 auto;
  max-width: 560px;
  color: var(--muted);
  font-size: 15px;
}

.ofs-stats {
  display: inline-flex;
  gap: 0;
  margin-top: 22px;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 16px;
  box-shadow: 0 6px 20px rgba(30, 27, 75, .06);
  overflow: hidden;
}

.ofs-stats div {
  padding: 12px 26px;
  display: grid;
  gap: 1px;
}

.ofs-stats div+div {
  border-left: 1px solid var(--border);
}

.ofs-stats b {
  font-size: 22px;
  font-weight: 800;
  color: var(--navy);
  line-height: 1.1;
}

.ofs-stats span {
  font-size: 12.5px;
  color: var(--muted);
  font-weight: 600;
}

.ofs-body {
  padding-top: 26px;
  padding-bottom: 60px;
}

.ofs-bar {
  display: flex;
  gap: 10px;
  align-items: center;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 8px;
  box-shadow: 0 4px 16px rgba(30, 27, 75, .05);
}

.ofs-search {
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--surface-2);
  border-radius: 11px;
  padding: 0 14px;
  height: 44px;
}

.ofs-search svg {
  width: 18px;
  height: 18px;
  color: var(--muted);
  flex: none;
}

.ofs-search input {
  flex: 1;
  min-width: 0;
  border: 0;
  background: none;
  font: inherit;
  font-size: 14.5px;
  color: var(--text);
  outline: none;
}

.ofs-tabs {
  display: flex;
  gap: 2px;
  background: var(--surface-2);
  border-radius: 11px;
  padding: 4px;
}

.ofs-tabs button {
  border: 0;
  background: none;
  font: inherit;
  font-size: 13.5px;
  font-weight: 700;
  color: var(--muted);
  padding: 8px 14px;
  border-radius: 8px;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
}

.ofs-tabs button i {
  font-style: normal;
  font-size: 11.5px;
  background: #e8ebf3;
  color: var(--text-2);
  padding: 1px 7px;
  border-radius: 999px;
}

.ofs-tabs button.on {
  background: #fff;
  color: var(--navy);
  box-shadow: 0 1px 4px rgba(15, 23, 42, .1);
}

.ofs-tabs button.on i {
  background: #eef0ff;
  color: var(--navy);
}

.ofs-sort {
  height: 44px;
  border: 1px solid var(--border);
  border-radius: 11px;
  padding: 0 34px 0 14px;
  font: inherit;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--text);
  background-color: #fff;
  cursor: pointer;
  width: auto;
}

.ofs-count {
  font-size: 13px;
  color: var(--muted);
  font-weight: 600;
  margin: 16px 2px 12px;
  min-height: 18px;
}

body.store .o-grid.ofs-grid {
  max-width: none;
  margin: 0;
}

.ofs-grid .o-card {
  border-color: var(--border);
  border-radius: 16px;
  box-shadow: 0 1px 2px rgba(15, 23, 42, .04);
}

.ofs-grid .o-card:hover {
  transform: translateY(-2px);
}

.ofs-empty {
  display: grid;
  justify-items: center;
  gap: 6px;
  text-align: center;
  background: #fff;
  border: 1px dashed var(--border-2);
  border-radius: 16px;
  padding: 46px 20px;
  color: var(--muted);
}

.ofs-empty .big {
  font-size: 40px;
}

.ofs-empty b {
  color: var(--navy);
  font-size: 17px;
}

.ofs-empty .see-all {
  margin-top: 10px;
}

@media (max-width: 760px) {
  .ofs-hero {
    padding: 30px 0 28px;
  }

  .ofs-stats div {
    padding: 10px 16px;
  }

  .ofs-stats b {
    font-size: 19px;
  }

  .ofs-bar {
    flex-wrap: wrap;
    position: static;
  }

  .ofs-search {
    flex: 1 1 100%;
  }

  .ofs-tabs {
    flex: 1;
  }

  .ofs-tabs button {
    flex: 1;
    justify-content: center;
    padding: 8px 6px;
  }

  .ofs-sort {
    flex: none;
  }
}

@media (max-width: 420px) {
  .ofs-sort {
    flex: 1 1 100%;
  }
}

/* ===== Create campaign: quick fill from WhatsApp message ===== */
.qf {
  margin-bottom: 18px;
  border: 1.5px dashed #9fdcdc;
  background: linear-gradient(135deg, #f2fcfc, #f7fdf1);
  padding: 18px 20px;
}

.qf-head {
  display: flex;
  align-items: flex-start;
  gap: 14px;
}

.qf-ic {
  width: 42px;
  height: 42px;
  flex: none;
  border-radius: 12px;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, #2ec4c9, #9be073);
  color: #06302b;
}

.qf-ic svg {
  width: 20px;
  height: 20px;
}

.qf-t {
  flex: 1;
  min-width: 0;
}

.qf-t h2 {
  margin: 0;
  font-size: 16.5px;
  color: #0d2a2d;
}

.qf-t p {
  margin: 3px 0 0;
  font-size: 13px;
  color: var(--muted);
}

.qf-toggle {
  border: 0;
  background: none;
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  color: #1a9ea3;
  cursor: pointer;
  padding: 4px 6px;
}

.qf-body {
  margin-top: 14px;
}

.qf-body[hidden] {
  display: none;
}

.qf textarea {
  width: 100%;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 12px 14px;
  font: inherit;
  font-size: 13.5px;
  line-height: 1.5;
  background: #fff;
  resize: vertical;
  min-height: 140px;
}

.qf textarea:focus {
  outline: none;
  border-color: #2ec4c9;
  box-shadow: 0 0 0 3px rgba(46, 196, 201, .18);
}

.qf-acts {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 10px;
}

.qf-acts .btn svg {
  width: 16px;
  height: 16px;
}

.qf-hint {
  font-size: 12.5px;
  color: var(--muted);
}

.qf-result {
  margin-top: 12px;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 12px 14px;
  font-size: 13px;
}

.qf-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 8px 0;
}

.qf-chips span {
  font-size: 12px;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 999px;
}

.qf-chips .ok {
  background: #ecfdf3;
  color: #067a4b;
}

.qf-chips .miss {
  background: #f1f5f9;
  color: #94a3b8;
}

.qf-result small {
  color: var(--muted);
}

@media (max-width: 600px) {
  .qf {
    padding: 14px;
  }

  .qf-head {
    flex-wrap: wrap;
  }
}

/* ===== Orders per user (campaign editor) ===== */
.lim-field {
  margin-top: 16px;
}

.lim-opts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 6px 0 6px;
}

.lim-opt {
  position: relative;
  display: flex;
  gap: 10px;
  align-items: flex-start;
  border: 1.5px solid var(--border);
  border-radius: 12px;
  padding: 12px 14px;
  background: #fff;
  cursor: pointer;
  transition: .15s;
}

.lim-opt:hover {
  border-color: #9fdcdc;
}

.lim-opt input[type=radio] {
  margin-top: 3px;
  accent-color: #1a9ea3;
  flex: none;
}

.lim-opt b {
  display: block;
  font-size: 14px;
  color: #0d2a2d;
}

.lim-opt small {
  display: block;
  font-size: 12.5px;
  color: var(--muted);
  line-height: 1.45;
  margin-top: 2px;
}

.lim-opt:has(input[type=radio]:checked) {
  border-color: #2ec4c9;
  background: #f0fbfb;
  box-shadow: 0 0 0 3px rgba(46, 196, 201, .14);
}

.lim-n {
  width: 58px !important;
  display: inline-block;
  padding: 2px 6px !important;
  height: 26px;
  font-size: 13px;
  margin: 0 2px;
}

@media (max-width: 760px) {
  .lim-opts {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* ===== Campaign page: already claimed ===== */
.tk-btn.tk-done {
  background: #ecfdf3;
  color: #067a4b;
  box-shadow: none;
  cursor: default;
  border: 1px solid #bbf0d0;
}

.tk-btn.tk-done:hover {
  background: #ecfdf3;
  color: #067a4b;
  transform: none;
}

.claimed-box {
  text-align: center;
  padding: 18px 10px 8px;
}

.claimed-box .big {
  font-size: 40px;
}

.claimed-box h3 {
  margin: 8px 0 6px;
  color: var(--navy);
}

.claimed-box p {
  max-width: 460px;
  margin: 0 auto 14px;
}

/* ===== Sign-in popup: close button — clear round button pinned to the card corner ===== */
.signin-x,
.signin-x:hover {
  top: 12px;
  right: 12px;
  width: 38px;
  height: 38px;
  font-size: 0;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #fff;
  color: #111;
  border: 1px solid rgba(15, 23, 42, .08);
  box-shadow: 0 6px 18px rgba(15, 23, 42, .18);
  transition: transform .15s, background .15s, color .15s;
}

.signin-x::before {
  content: "";
  width: 16px;
  height: 16px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6 6 18'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6 6 18'/%3E%3C/svg%3E") center / contain no-repeat;
}

.signin-x:hover {
  background: #111;
  color: #fff;
  transform: rotate(90deg);
}

.signin-x:focus-visible {
  outline: 3px solid #2ec4c9;
  outline-offset: 2px;
}

@media (max-width: 760px) {

  .signin-x,
  .signin-x:hover {
    top: 10px;
    right: 10px;
    width: 34px;
    height: 34px;
  }

  .signin-x::before {
    width: 14px;
    height: 14px;
  }
}

/* Close button sits inside the white form panel (top-right corner of the panel) */
.signin-x,
.signin-x:hover {
  top: calc(7.3% + 10px);
  right: calc(7.8% + 10px);
  width: 34px;
  height: 34px;
  background: #f2f3f5;
  border: 0;
  box-shadow: none;
  color: #374151;
}

.signin-x::before {
  width: 14px;
  height: 14px;
}

.signin-x:hover {
  background: #111;
  color: #fff;
}

@media (max-width: 760px) {

  .signin-x,
  .signin-x:hover {
    top: calc(6.5% + 8px);
    right: calc(6.2% + 8px);
    width: 30px;
    height: 30px;
  }

  .signin-x::before {
    width: 12px;
    height: 12px;
  }
}

/* Close button lives inside the form box (which always sits on the white panel) */
.signin-form .signin-x,
.signin-form .signin-x:hover {
  position: absolute;
  top: 0;
  right: 0;
}

@media (max-width: 760px) {

  .signin-form .signin-x,
  .signin-form .signin-x:hover {
    top: 0;
    right: 0;
  }
}

@media (max-width: 760px) {

  .signin-form .signin-x,
  .signin-form .signin-x:hover {
    top: 8px;
    right: 2px;
  }
}

/* ===== Unique device option (campaign editor) ===== */
.ud-opt {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  margin-top: 12px;
  border: 1.5px solid var(--border);
  border-radius: 12px;
  padding: 12px 14px;
  background: #fff;
  cursor: pointer;
  transition: .15s;
}

.ud-opt:hover {
  border-color: #9fdcdc;
}

.ud-opt input {
  margin-top: 3px;
  width: 17px;
  height: 17px;
  accent-color: #1a9ea3;
  flex: none;
}

.ud-opt b {
  display: block;
  font-size: 14px;
  color: #0d2a2d;
}

.ud-opt small {
  display: block;
  font-size: 12.5px;
  color: var(--muted);
  line-height: 1.45;
  margin-top: 2px;
}

.ud-opt:has(input:checked) {
  border-color: #2ec4c9;
  background: #f0fbfb;
  box-shadow: 0 0 0 3px rgba(46, 196, 201, .14);
}

/* ===== Orders: device / IP + duplicate flags ===== */
.orders-t .t-dev {
  display: block;
  margin-top: 6px;
  font-size: 12px;
  color: var(--muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 230px;
}

.orders-t .t-dev a {
  color: var(--text-2);
  font-family: var(--mono);
  font-size: 11.5px;
}

.orders-t .t-dev a:hover {
  color: #1a9ea3;
}

.t-flag {
  display: inline-block;
  margin-top: 4px;
  margin-right: 4px;
  font-size: 11.5px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 999px;
  white-space: nowrap;
}

.t-flag.dev {
  background: #fef2f2;
  color: #b42318;
}

.t-flag.ip {
  background: #fff7e6;
  color: #b45309;
}

/* Close button: keep clear of the white panel's rounded top edge */
.signin-form .signin-x,
.signin-form .signin-x:hover {
  top: 16px;
  right: 4px;
}

@media (max-width: 760px) {

  .signin-form .signin-x,
  .signin-form .signin-x:hover {
    top: 10px;
    right: 2px;
  }
}

/* Close button: icon exactly centred */
.signin-form .signin-x,
.signin-form .signin-x:hover {
  padding: 0;
  line-height: 0;
  display: block;
}

.signin-form .signin-x::before {
  content: "";
  position: absolute;
  inset: 0;
  margin: auto;
  display: block;
}

/* ===== Sign-in form validation ===== */
.sf-msg {
  display: block;
  min-height: 0;
  font-size: .78em;
  font-weight: 600;
  color: #dc2626;
  line-height: 1.3;
}

.sf-msg:empty {
  display: none;
}

.sf-field input.bad {
  border-color: #ef4444 !important;
  background: #fff5f5 !important;
}

.sf-field input.bad:focus {
  box-shadow: 0 0 0 3px rgba(239, 68, 68, .15);
}

/* ===== Sign-in: OTP step ===== */
.sf-step1[hidden],
.sf-step2[hidden],
.sf-test[hidden] {
  display: none !important;
}

.sf-otp-to {
  text-align: center;
  font-size: .95em;
  color: #4b5563;
  margin: 0 0 .9em;
  line-height: 1.5;
}

.sf-otp-to b {
  color: #111;
  font-size: 1.05em;
  letter-spacing: .02em;
}

.sf-link {
  border: 0;
  background: none;
  padding: 0 0 0 .3em;
  font: inherit;
  font-size: .92em;
  font-weight: 700;
  color: #1a9ea3;
  cursor: pointer;
}

.sf-link:hover {
  text-decoration: underline;
}

.sf-otp {
  text-align: center;
  font-size: 1.45em !important;
  font-weight: 700;
  letter-spacing: .55em;
  padding-left: 1.1em !important;
  font-variant-numeric: tabular-nums;
}

.sf-otp::placeholder {
  letter-spacing: .35em;
  color: #c4c9d2;
}

.sf-test {
  background: #fff7e6;
  border: 1px dashed #f5c26b;
  color: #92400e;
  border-radius: 8px;
  padding: .5em .8em;
  font-size: .85em;
  text-align: center;
  margin-bottom: .8em;
}

.sf-test b {
  font-size: 1.15em;
  letter-spacing: .12em;
}

.sf-resend {
  text-align: center;
  font-size: .85em;
  color: #6b7280;
  margin: .8em 0 0;
  min-height: 1.3em;
}

.sf-resend .sf-link {
  padding: 0;
}

/* ---------- Users: device / IP column ---------- */
.t-udev {
  min-width: 170px;
}

.t-udev .t-dlabel {
  display: block;
  font-size: 13px;
  color: var(--text-2);
  white-space: nowrap;
  cursor: help;
}

.t-udev .t-dlabel i {
  font-style: normal;
  font-size: 11px;
  font-weight: 700;
  color: var(--muted);
  background: #f1f3f6;
  border-radius: 999px;
  padding: 1px 6px;
  margin-left: 2px;
}

.t-udev .t-ip {
  display: block;
  margin-top: 2px;
  font-family: var(--mono);
  font-size: 11.5px;
  color: var(--muted);
}

.t-udev .t-ip:hover {
  color: #1a9ea3;
}

.t-udev .muted {
  color: var(--muted);
}

.t-ver {
  display: inline-grid;
  place-items: center;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #e7f8ef;
  color: #12805c;
  font-size: 10px;
  font-weight: 800;
  vertical-align: 1px;
  cursor: help;
}

/* ---------- New-offer alerts (admin progress box + campaign form option) ---------- */
.nf-box {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 90;
  width: min(340px, calc(100vw - 36px));
  background: #0f2f33;
  color: #fff;
  border-radius: 14px;
  padding: 14px 16px;
  box-shadow: 0 12px 34px rgba(0, 0, 0, .25);
  font-size: 13px;
}

.nf-box .nf-t {
  font-weight: 700;
  font-size: 14px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.nf-box .nf-s {
  margin-top: 4px;
  color: #b9d6d8;
}

.nf-box .nf-bar {
  margin-top: 10px;
  height: 6px;
  border-radius: 99px;
  background: rgba(255, 255, 255, .15);
  overflow: hidden;
}

.nf-box .nf-bar i {
  display: block;
  height: 100%;
  width: 0;
  background: linear-gradient(90deg, #2ec5c0, #9be15d);
  border-radius: inherit;
  transition: width .4s;
}

.nf-box.done {
  background: #12503f;
}

.nf-opt {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  margin-top: 4px;
  padding: 12px 14px;
  border: 1px dashed #b7dedb;
  border-radius: 12px;
  background: #f3fbfa;
}

.nf-opt input {
  margin-top: 3px;
}

.nf-opt span {
  display: block;
}

.nf-opt small {
  display: block;
  margin-top: 2px;
  font-size: 12.5px;
  color: var(--muted);
  font-weight: 400;
}

/* ---------- Public: "offers updated" bar + unsubscribe page ---------- */
.live-bar {
  position: fixed;
  left: 50%;
  bottom: 18px;
  transform: translateX(-50%);
  z-index: 80;
  border: 0;
  cursor: pointer;
  background: #111827;
  color: #fff;
  font: inherit;
  font-size: 14px;
  padding: 12px 20px;
  border-radius: 999px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, .25);
  white-space: nowrap;
  animation: liveIn .35s ease-out;
}

.live-bar b {
  color: #9be15d;
}

@keyframes liveIn {
  from {
    opacity: 0;
    transform: translate(-50%, 16px);
  }

  to {
    opacity: 1;
    transform: translate(-50%, 0);
  }
}

.unsub-card {
  max-width: 520px;
  margin: 0 auto;
  padding: 36px 28px;
  text-align: center;
}

.unsub-card .big {
  font-size: 46px;
  line-height: 1;
  margin-bottom: 10px;
}

.unsub-card h1 {
  margin: 0 0 8px;
  font-size: 24px;
}

.unsub-card p.muted {
  margin: 0 0 22px;
  line-height: 1.55;
}

.unsub-off {
  border: 1px solid #e5e7eb;
  background: #fff;
  color: #b42318;
  font: inherit;
  font-weight: 600;
  padding: 11px 20px;
  border-radius: 10px;
  cursor: pointer;
}

.unsub-off:hover {
  background: #fef2f2;
}

.unsub-home {
  margin: 20px 0 0;
  font-size: 14px;
}

@media (max-width: 480px) {
  .live-bar {
    font-size: 13px;
    padding: 11px 16px;
  }
}

/* ---------- "Allow offer alerts" prompt (browser push) ---------- */
.push-ask {
  position: fixed;
  left: 50%;
  bottom: 18px;
  transform: translateX(-50%);
  z-index: 85;
  width: min(460px, calc(100vw - 24px));
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  background: #fff;
  border-radius: 16px;
  padding: 14px 16px;
  box-shadow: 0 14px 40px rgba(15, 47, 51, .22);
  border: 1px solid #e6eef0;
  animation: liveIn .35s ease-out;
}

.push-ask[hidden] {
  display: none;
}

.push-ask .pa-ic {
  width: 42px;
  height: 42px;
  flex: none;
  display: grid;
  place-items: center;
  font-size: 22px;
  border-radius: 12px;
  background: #e9f8f6;
}

.push-ask .pa-tx {
  flex: 1;
  min-width: 200px;
  font-size: 13.5px;
  line-height: 1.45;
  color: #374151;
}

.push-ask .pa-tx b {
  display: block;
  font-size: 15px;
  color: #111827;
  margin-bottom: 1px;
}

.push-ask .pa-sub {
  display: block;
}

.push-ask .pa-btns {
  display: flex;
  gap: 8px;
  margin-left: auto;
}

.push-ask button {
  font: inherit;
  font-weight: 700;
  font-size: 14px;
  border-radius: 10px;
  padding: 9px 16px;
  cursor: pointer;
  border: 1px solid #e5e7eb;
  background: #fff;
  color: #374151;
}

.push-ask .pa-yes {
  border: 0;
  background: #1fb5a6;
  color: #fff;
}

.push-ask .pa-yes:hover {
  background: #179c8f;
}

.push-ask .pa-yes[hidden] {
  display: none;
}

/* ---------- Dashboard campaigns table: cleaner rows + ⋮ menu ---------- */
.camp-t td {
  vertical-align: middle;
  padding-top: 14px;
  padding-bottom: 14px;
}

.camp-t .t-camp b {
  font-size: 14.5px;
  line-height: 1.35;
}

.camp-t .t-offer {
  display: inline-block;
  max-width: 210px;
  font-size: 13.5px;
  font-weight: 700;
  line-height: 1.4;
  color: #c2410c;
}

.camp-t .t-segs {
  gap: 6px;
  min-width: 210px;
}

.camp-t .t-segs .r {
  flex-wrap: wrap;
  row-gap: 2px;
}

.camp-t .seg-more {
  font-size: 12px;
  font-weight: 700;
  color: #1a9ea3;
  cursor: help;
}

.camp-t .t-clicks {
  min-width: 90px;
}

.camp-t .t-ords {
  white-space: nowrap;
}

.camp-t .ord-n {
  display: inline-grid;
  place-items: center;
  min-width: 30px;
  height: 26px;
  padding: 0 8px;
  border-radius: 999px;
  background: #e9fafa;
  color: #0d7f84;
  font-weight: 800;
  font-size: 13px;
}

.camp-t .ord-n.zero {
  background: var(--gray-soft);
  color: var(--muted);
}

.camp-t .t-ords .st {
  margin-left: 6px;
}

.camp-t .t-acts {
  gap: 8px;
  flex-wrap: nowrap;
}

.camp-t .t-acts .kebab>summary {
  width: 34px;
  height: 34px;
}

.camp-menu {
  min-width: 210px;
}

.camp-menu .kb-form {
  display: block;
  margin: 0;
}

.camp-menu .kb-form .kb-h {
  border-top: 1px solid var(--border);
  margin-top: 4px;
  padding-top: 10px;
}

.camp-menu .kb-item:hover {
  background: #e9fafa;
  color: #0d2a2d;
}

.camp-menu .kb-item:hover svg {
  color: #1a9ea3;
}

.camp-menu .kb-danger {
  color: var(--danger);
}

.camp-menu .kb-danger svg {
  color: var(--danger);
}

.camp-menu .kb-danger:hover {
  background: var(--danger-soft);
  color: var(--danger);
}

.camp-menu .kb-danger:hover svg {
  color: var(--danger);
}

@media (max-width: 900px) {
  .camp-t .t-offer {
    max-width: none;
  }

  .camp-t .t-segs {
    min-width: 0;
  }

  .camp-t .t-acts {
    justify-content: flex-start;
  }
}

/* ---------- Footer legal links ---------- */
.f-copy {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px 20px;
}

.f-legal {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 18px;
}

.f-legal a {
  color: #d4d4d8;
  font-size: 13px;
}

.f-legal a:hover {
  color: #fff;
  text-decoration: underline;
}

/* ---------- Privacy Policy / Terms pages ---------- */
.legal {
  padding-bottom: 60px;
}

.lg-hero {
  background: linear-gradient(135deg, #e9faf7 0%, #f7fbe9 100%);
  border-bottom: 1px solid #e6eef0;
  padding: 48px 16px 40px;
  text-align: center;
}

.lg-kicker {
  display: inline-block;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #0d7f84;
  background: #fff;
  border: 1px solid #cdeeed;
  border-radius: 999px;
  padding: 5px 14px;
}

.lg-hero h1 {
  margin: 14px 0 8px;
  font-size: clamp(28px, 4vw, 42px);
  color: #111827;
  letter-spacing: -.02em;
}

.lg-intro {
  margin: 0 auto;
  max-width: 620px;
  color: #4b5563;
  font-size: 16px;
  line-height: 1.6;
}

.lg-date {
  margin: 12px 0 0;
  font-size: 13px;
  color: #6b7280;
}

.lg-wrap {
  display: grid;
  grid-template-columns: 250px minmax(0, 1fr);
  gap: 28px;
  align-items: start;
  padding-top: 32px;
}

.lg-toc-in {
  position: sticky;
  top: 20px;
  background: #fff;
  border: 1px solid #e6eef0;
  border-radius: 14px;
  padding: 18px;
}

.lg-toc-in>b {
  display: block;
  font-size: 12px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #6b7280;
  margin-bottom: 10px;
}

.lg-toc ol {
  margin: 0;
  padding-left: 20px;
  display: grid;
  gap: 7px;
  font-size: 13.5px;
}

.lg-toc ol a {
  color: #374151;
}

.lg-toc ol a:hover {
  color: #0d7f84;
}

.lg-other {
  display: block;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid #eef0f3;
  font-size: 13.5px;
  font-weight: 700;
  color: #0d7f84;
}

.lg-body {
  padding: 34px 38px;
  border-radius: 16px;
  color: #374151;
  font-size: 15px;
  line-height: 1.75;
}

.lg-body section {
  scroll-margin-top: 20px;
}

.lg-body section+section {
  margin-top: 30px;
  padding-top: 26px;
  border-top: 1px solid #eef0f3;
}

.lg-body h2 {
  margin: 0 0 12px;
  font-size: 21px;
  color: #111827;
  line-height: 1.35;
}

.lg-body h2 span {
  color: #1fb5a6;
}

.lg-body h3 {
  margin: 18px 0 6px;
  font-size: 16px;
  color: #111827;
}

.lg-body p {
  margin: 0 0 12px;
}

.lg-body ul,
.lg-body ol {
  margin: 0 0 12px;
  padding-left: 22px;
}

.lg-body li {
  margin-bottom: 6px;
}

.lg-body a {
  color: #0d7f84;
  font-weight: 600;
}

.lg-body code {
  font-size: 13px;
  background: #f3f4f6;
  padding: 2px 6px;
  border-radius: 6px;
}

.lg-table {
  overflow-x: auto;
  margin: 4px 0 14px;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
}

.lg-table table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}

.lg-table th,
.lg-table td {
  text-align: left;
  padding: 10px 14px;
  border-bottom: 1px solid #eef0f3;
  vertical-align: top;
}

.lg-table th {
  background: #f9fafb;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: #6b7280;
}

.lg-table tr:last-child td {
  border-bottom: 0;
}

.lg-contact {
  margin-top: 6px;
  background: #f3fbfa;
  border: 1px solid #cdeeed;
  border-radius: 12px;
  padding: 16px 18px;
}

.lg-contact p {
  margin: 0 0 4px;
}

@media (max-width: 900px) {
  .lg-wrap {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .lg-toc-in {
    position: static;
  }

  .lg-body {
    padding: 24px 18px;
    font-size: 14.5px;
  }

  .lg-body h2 {
    font-size: 19px;
  }
}

@media (max-width: 600px) {
  .f-copy {
    justify-content: center;
    text-align: center;
  }

  .f-legal {
    justify-content: center;
  }
}

/* ---------- Admin: page header stays on top while scrolling ---------- */
.a-main>.a-head {
  position: sticky;
  top: 0;
  z-index: 40;
  background: #f3f8f7;
  margin: -28px -32px 22px;
  padding: 28px 32px 16px;
  transition: box-shadow .2s, padding .2s;
}

.a-main>.a-head.stuck {
  padding-top: 16px;
  box-shadow: 0 8px 18px -12px rgba(13, 42, 45, .35);
  border-bottom: 1px solid #e3ecea;
}

@media (max-width: 900px) {
  .a-main>.a-head {
    top: 60px;
    margin: -20px -18px 16px;
    padding: 20px 18px 12px;
  }

  .a-main>.a-head.stuck {
    padding-top: 12px;
  }
}

.a-main>.a-head:not(:first-child) {
  margin-top: 0;
  padding-top: 12px;
}

@media (max-width: 900px) {
  .a-main>.a-head.stuck>div:first-child p {
    display: none;
  }

  .a-main>.a-head.stuck h1 {
    font-size: 20px;
  }

  .a-main>.a-head.stuck .acts .btn {
    padding-top: 7px;
    padding-bottom: 7px;
  }
}

/* ---------- Dashboard "Updates" tab: campaign change history (timeline) ---------- */
.tabs .tab-log {
  margin-left: 6px;
}

.hx {
  padding: 20px 22px 26px;
}

.hx-sum {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  padding: 14px;
  border-radius: 14px;
  background: linear-gradient(135deg, #eefaf8, #f6fbec);
  border: 1px solid #dcefeb;
}

.hx-stat {
  display: flex;
  align-items: baseline;
  gap: 6px;
  background: #fff;
  border: 1px solid #e3efec;
  border-radius: 10px;
  padding: 8px 14px;
}

.hx-stat b {
  font-size: 20px;
  font-weight: 800;
  color: var(--ink);
}

.hx-stat span {
  font-size: 12.5px;
  color: var(--muted);
  font-weight: 600;
}

.hx-last {
  margin-left: auto;
  font-size: 13px;
  color: var(--text-2);
  max-width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.hx-last b {
  color: var(--ink);
}

.hx-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 16px 0 6px;
}

.hx-chip {
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  color: var(--text-2);
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 7px 14px;
  cursor: pointer;
  transition: .15s;
}

.hx-chip span {
  display: inline-block;
  min-width: 20px;
  margin-left: 4px;
  padding: 1px 6px;
  border-radius: 999px;
  background: var(--gray-soft);
  font-size: 11.5px;
  text-align: center;
}

.hx-chip:hover {
  border-color: #2ec4c9;
  color: var(--ink);
}

.hx-chip.on {
  background: var(--ink);
  border-color: var(--ink);
  color: #fff;
}

.hx-chip.on span {
  background: rgba(255, 255, 255, .18);
  color: #fff;
}

.hx-list {
  position: relative;
}

.hx-day {
  position: sticky;
  top: 0;
  z-index: 3;
  padding: 16px 0 8px;
  background: linear-gradient(#fff 70%, rgba(255, 255, 255, 0));
}

.hx-day span {
  display: inline-block;
  font-size: 11.5px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #0d7f84;
  background: #e9fafa;
  border: 1px solid #cdeeed;
  border-radius: 999px;
  padding: 4px 12px;
}

.hx-it {
  position: relative;
  display: grid;
  grid-template-columns: 74px 30px minmax(0, 1fr);
  gap: 14px;
  padding-bottom: 14px;
}

.hx-it::before {
  content: "";
  position: absolute;
  left: calc(74px + 14px + 14px);
  top: 32px;
  bottom: 0;
  width: 2px;
  background: #e6eef0;
}

.hx-it:has(+ .hx-day)::before,
.hx-it:last-child::before {
  bottom: 14px;
}

.hx-when {
  padding-top: 12px;
  text-align: right;
  line-height: 1.2;
}

.hx-when b {
  display: block;
  font-size: 13px;
  color: var(--ink);
  white-space: nowrap;
}

.hx-when small {
  font-size: 11.5px;
  color: var(--muted);
}

.hx-dot {
  position: relative;
  z-index: 1;
  width: 30px;
  height: 30px;
  margin-top: 9px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  font-size: 13px;
  font-weight: 800;
  border: 3px solid #fff;
  box-shadow: 0 0 0 1px #e6eef0;
}

.hx-dot.hx-ok {
  background: #dff6ea;
  color: #12805c;
}

.hx-dot.hx-info {
  background: #e3eeff;
  color: #1d5fbf;
}

.hx-dot.hx-warn {
  background: #fff0d6;
  color: #b45309;
}

.hx-dot.hx-bad {
  background: #fde3e3;
  color: #b42318;
}

.hx-card {
  min-width: 0;
  background: #fff;
  border: 1px solid #e6edf0;
  border-radius: 14px;
  padding: 12px 14px;
  box-shadow: 0 1px 2px rgba(13, 42, 45, .04);
  transition: box-shadow .15s, border-color .15s;
}

.hx-card:hover {
  border-color: #cfe6e4;
  box-shadow: 0 8px 22px -14px rgba(13, 42, 45, .35);
}

.hx-head {
  display: flex;
  align-items: center;
  gap: 12px;
}

.hx-thumb {
  flex: none;
  width: 42px;
  height: 42px;
  border-radius: 11px;
  overflow: hidden;
  display: grid;
  place-items: center;
  font-size: 20px;
  background: var(--primary-soft);
}

.hx-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hx-ttl {
  min-width: 0;
  flex: 1;
}

.hx-ttl>a,
.hx-ttl>b {
  display: block;
  font-size: 14.5px;
  font-weight: 700;
  color: var(--ink);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.hx-ttl>a:hover {
  color: #0d7f84;
  text-decoration: underline;
}

.hx-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 10px;
  margin-top: 3px;
  font-size: 12.5px;
  color: var(--muted);
}

.hx-badge {
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;
  padding: 2px 8px;
  border-radius: 999px;
}

.hx-badge.hx-ok {
  background: #e7f8ef;
  color: #12805c;
}

.hx-badge.hx-info {
  background: #e9f3ff;
  color: #1d5fbf;
}

.hx-badge.hx-warn {
  background: #fff4e0;
  color: #b45309;
}

.hx-badge.hx-bad {
  background: #fdecec;
  color: #b42318;
}

.hx-who {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-weight: 600;
  color: var(--text-2);
}

.hx-who i {
  width: 18px;
  height: 18px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  font-style: normal;
  font-size: 10px;
  font-weight: 800;
  color: #fff;
  background: linear-gradient(135deg, #2ec4c9, #9be073);
}

.hx-at::before {
  content: "·";
  margin-right: 10px;
}

.hx-count {
  flex: none;
  font-size: 12px;
  font-weight: 700;
  color: var(--text-2);
  background: var(--gray-soft);
  border-radius: 999px;
  padding: 4px 10px;
}

.hx-note {
  margin: 10px 0 0 54px;
  font-size: 13px;
  color: var(--text-2);
}

.hx-diff {
  margin-top: 12px;
  border: 1px solid #eef2f4;
  border-radius: 10px;
  overflow: hidden;
}

.hx-row {
  display: grid;
  grid-template-columns: minmax(130px, 1.1fr) minmax(0, 1.6fr) 22px minmax(0, 1.6fr);
  gap: 10px;
  align-items: center;
  padding: 9px 12px;
  font-size: 13px;
  border-top: 1px solid #f0f3f5;
}

.hx-row:first-child {
  border-top: 0;
}

.hx-row.hx-hd {
  padding-top: 7px;
  padding-bottom: 7px;
  background: #f8fafb;
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--muted);
}

.hx-f {
  font-weight: 700;
  color: var(--ink);
}

.hx-old,
.hx-new {
  min-width: 0;
  overflow-wrap: anywhere;
  line-height: 1.45;
  padding: 3px 8px;
  border-radius: 7px;
  justify-self: start;
}

.hx-old {
  background: #fdf0f0;
  color: #a3261d;
  text-decoration: line-through;
  text-decoration-color: rgba(163, 38, 29, .45);
}

.hx-new {
  background: #eaf8f0;
  color: #10734f;
  font-weight: 600;
}

.hx-old em,
.hx-new em {
  font-style: normal;
  color: var(--muted);
  text-decoration: none;
  font-weight: 400;
}

.hx-old:has(em),
.hx-new:has(em) {
  background: transparent;
}

.hx-old.mono,
.hx-new.mono {
  font-family: var(--mono, monospace);
  font-size: 12px;
}

.hx-arr {
  color: var(--muted);
  text-align: center;
}

.hx-more {
  text-align: center;
  padding-top: 10px;
}

.hx-more[hidden] {
  display: none;
}

@media (max-width: 760px) {
  .hx {
    padding: 14px 12px 18px;
  }

  .hx-last {
    margin-left: 0;
    white-space: normal;
  }

  .hx-it {
    grid-template-columns: 26px minmax(0, 1fr);
    gap: 10px;
  }

  .hx-it::before {
    left: 12px;
    top: 30px;
  }

  .hx-when {
    grid-column: 2;
    grid-row: 1;
    text-align: left;
    padding: 0;
    display: flex;
    gap: 8px;
    align-items: baseline;
  }

  .hx-when b {
    display: inline;
  }

  .hx-dot {
    grid-column: 1;
    grid-row: 1 / span 2;
    width: 26px;
    height: 26px;
    margin-top: 0;
    font-size: 11px;
  }

  .hx-card {
    grid-column: 2;
  }

  .hx-at {
    display: none;
  }

  .hx-note {
    margin-left: 0;
  }

  .hx-row.hx-hd {
    display: none;
  }

  .hx-row {
    grid-template-columns: minmax(0, 1fr) 18px minmax(0, 1fr);
    gap: 4px 8px;
  }

  .hx-f {
    grid-column: 1 / -1;
  }
}

/* ---------- Users → Deal click limits ---------- */
.cl-tag {
  display: inline-block;
  margin-left: 6px;
  font-size: 11px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 999px;
  background: #fff4e0;
  color: #b45309;
  white-space: nowrap;
}

.cl-tag.bad {
  background: #fdecec;
  color: #b42318;
}

.cl-user {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 18px;
  margin-bottom: 16px;
}

.cl-user .avatar {
  width: 46px;
  height: 46px;
  font-size: 18px;
}

.cl-who {
  flex: 1;
  min-width: 0;
}

.cl-who b {
  display: block;
  font-size: 16px;
  color: var(--ink);
}

.cl-who span {
  font-size: 13px;
  color: var(--muted);
  overflow-wrap: anywhere;
}

.cl-state {
  font-size: 13px;
  font-weight: 700;
  padding: 6px 12px;
  border-radius: 999px;
  white-space: nowrap;
}

.cl-state.ok {
  background: #e7f8ef;
  color: #12805c;
}

.cl-state.warn {
  background: #fff4e0;
  color: #b45309;
}

.cl-state.bad {
  background: #fdecec;
  color: #b42318;
}

.cl-rules {
  padding: 6px 18px;
  margin-bottom: 16px;
}

.cl-block,
.cl-default {
  display: flex;
  gap: 14px;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  padding: 14px 0;
}

.cl-block {
  justify-content: flex-start;
  align-items: flex-start;
  border-bottom: 1px solid var(--border);
  cursor: pointer;
}

.cl-block input {
  margin-top: 4px;
  width: 18px;
  height: 18px;
  accent-color: #b42318;
}

.cl-block small,
.cl-default small {
  display: block;
  margin-top: 2px;
  font-size: 12.5px;
  color: var(--muted);
  font-weight: 400;
}

.cl-default>div:first-child {
  flex: 1;
  min-width: 220px;
}

.cl-presets {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.cl-presets input {
  width: 110px;
  height: 38px;
  padding: 0 12px;
  border: 1px solid var(--border);
  border-radius: 10px;
  font: inherit;
  font-weight: 700;
}

.cl-chip {
  height: 38px;
  min-width: 40px;
  padding: 0 12px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: #fff;
  font: inherit;
  font-weight: 700;
  color: var(--text-2);
  cursor: pointer;
}

.cl-chip:hover {
  border-color: #2ec4c9;
}

.cl-chip.on {
  background: var(--ink);
  border-color: var(--ink);
  color: #fff;
}

.cl-table .cl-in {
  width: 120px;
  height: 36px;
  padding: 0 10px;
  border: 1px solid var(--border);
  border-radius: 9px;
  font: inherit;
  font-weight: 700;
}

.cl-table .cl-in::placeholder {
  font-weight: 500;
  color: var(--muted);
}

.cl-used {
  font-size: 16px;
}

.cl-left {
  display: inline-block;
  min-width: 34px;
  text-align: center;
  font-weight: 800;
  padding: 3px 10px;
  border-radius: 999px;
  background: #e9fafa;
  color: #0d7f84;
}

.cl-left.inf {
  background: var(--gray-soft);
  color: var(--muted);
}

.cl-left.none {
  background: #fdecec;
  color: #b42318;
}

.cl-bar {
  position: sticky;
  bottom: 0;
  z-index: 20;
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 16px;
  padding: 12px 0;
  background: linear-gradient(rgba(243, 248, 247, 0), #f3f8f7 30%);
}

/* campaign page: "2 clicks left" above Get Deal */
.tk-left {
  display: block;
  margin-bottom: 6px;
  font-size: 11.5px;
  font-weight: 700;
  color: #b45309;
  text-align: center;
}

/* ---------- Deal limits page v2: devices, quick set, clicks + orders ---------- */
.cl-top {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 16px;
  margin-bottom: 16px;
}

.cl-top .cl-user {
  margin: 0;
}

.cl-devs {
  padding: 14px 18px;
  font-size: 13px;
}

.cl-devs>b {
  display: block;
  margin-bottom: 6px;
  font-size: 13.5px;
  color: var(--ink);
}

.cl-devs ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 4px;
}

.cl-devs li {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 10px;
  align-items: baseline;
}

.cl-devs li span {
  font-weight: 600;
  color: var(--text-2);
}

.cl-devs li code {
  font-size: 11.5px;
  color: var(--muted);
}

.cl-devs li small {
  color: var(--muted);
}

.cl-shared {
  margin-top: 8px;
  padding: 8px 10px;
  border-radius: 9px;
  background: #fff7e6;
  color: #8a4b08;
  font-size: 12.5px;
  line-height: 1.5;
}

.cl-shared a {
  font-weight: 700;
  color: #8a4b08;
  text-decoration: underline;
}

.cl-quick {
  padding: 16px 18px;
  margin-bottom: 16px;
  border: 1px dashed #b7dedb;
  background: #f6fcfb;
}

.cl-q-h b {
  display: block;
  font-size: 14.5px;
  color: var(--ink);
}

.cl-q-h small {
  font-size: 12.5px;
  color: var(--muted);
}

.cl-q-row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 12px;
  margin-top: 12px;
}

.cl-q-row label {
  display: grid;
  gap: 5px;
  font-size: 11.5px;
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--muted);
}

.cl-q-row select,
.cl-q-row input {
  height: 40px;
  padding: 0 12px;
  border: 1px solid var(--border);
  border-radius: 10px;
  font: inherit;
  font-size: 14px;
  font-weight: 600;
  text-transform: none;
  letter-spacing: 0;
  color: var(--text);
  background: #fff;
}

.cl-q-camp {
  flex: 1 1 280px;
}

.cl-q-camp select {
  width: 100%;
}

.cl-q-row input {
  width: 150px;
}

.cl-q-row .btn {
  height: 40px;
}

.cl-defs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 28px;
}

.cl-def {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 14px 0;
}

.cl-def small {
  display: block;
  margin-top: 2px;
  font-size: 12.5px;
  color: var(--muted);
}

.cl-table th.cl-grp small {
  display: block;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .02em;
  text-transform: none;
  color: var(--muted);
}

.cl-cell {
  display: flex;
  align-items: center;
  gap: 10px;
}

.cl-cell .cl-used {
  min-width: 22px;
  text-align: right;
}

.cl-table .cl-in {
  width: 96px;
}

.cl-table tr.cl-flash td {
  background: #fff8db !important;
  transition: background .3s;
}

@media (max-width: 900px) {

  .cl-top,
  .cl-defs {
    grid-template-columns: 1fr;
  }

  .cl-q-row input {
    width: 100%;
  }

  .cl-q-row label {
    flex: 1 1 140px;
  }
}

/* deal link closed after an order */
.cl-lock input {
  accent-color: #1d4ed8;
}

.cl-q-row label.cl-q-lock {
  display: flex;
  align-items: center;
  gap: 8px;
  height: 40px;
  padding: 0 12px;
  border: 1px dashed var(--border);
  border-radius: 10px;
  text-transform: none;
  letter-spacing: 0;
  font-size: 13.5px;
  font-weight: 700;
  color: var(--text);
  cursor: pointer;
}

.cl-q-row label.cl-q-lock input {
  width: 18px;
  height: 18px;
  padding: 0;
  accent-color: #1d4ed8;
}

.cl-lk {
  display: flex;
  align-items: center;
  gap: 10px;
}

.cl-sw {
  position: relative;
  display: inline-block;
  width: 40px;
  height: 22px;
  flex: none;
  cursor: pointer;
}

.cl-sw input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.cl-sw span {
  position: absolute;
  inset: 0;
  border-radius: 22px;
  background: #d0d5dd;
  transition: background .2s;
}

.cl-sw span::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 2px rgba(0, 0, 0, .2);
  transition: transform .2s;
}

.cl-sw input:checked+span {
  background: #1d4ed8;
}

.cl-sw input:checked+span::after {
  transform: translateX(18px);
}

.cl-sw input:focus-visible+span {
  outline: 2px solid #1d4ed8;
  outline-offset: 2px;
}

.cl-lk-st {
  font-size: 12px;
  font-weight: 700;
  color: var(--muted);
  white-space: nowrap;
}

.cl-lk-st.camp {
  color: #1d4ed8;
}

.cl-lk-st.closed {
  color: #b42318;
}

.cl-block {
  flex-wrap: nowrap;
}

.cl-block>span {
  flex: 1;
  min-width: 0;
}

.cl-block input {
  flex: none;
}

/* Users → campaigns each user ordered from */
.t-ordc {
  min-width: 190px;
}

.oc-list {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 6px;
  max-width: 280px;
}

.oc-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  max-width: 100%;
  padding: 3px 9px 3px 8px;
  border-radius: 999px;
  font-size: 11.5px;
  font-weight: 700;
  line-height: 1.35;
  text-decoration: none;
  border: 1px solid transparent;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.oc-chip::before {
  content: "";
  flex: none;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
}

.oc-chip i {
  font-style: normal;
  opacity: .75;
}

.oc-chip:hover {
  filter: brightness(.95);
  text-decoration: underline;
}

.oc-pending {
  background: #fff7e6;
  color: #b54708;
  border-color: #fedf89;
}

.oc-approved {
  background: #ecfdf3;
  color: #067647;
  border-color: #abefc6;
}

.oc-rejected {
  background: #fef3f2;
  color: #b42318;
  border-color: #fecdca;
}

.oc-list .oc-more {
  display: none;
}

.oc-list.all .oc-more {
  display: inline-flex;
}

.oc-btn {
  border: 0;
  background: none;
  padding: 3px 4px;
  font: inherit;
  font-size: 11.5px;
  font-weight: 700;
  color: var(--muted);
  cursor: pointer;
}

.oc-btn:hover {
  color: var(--text);
  text-decoration: underline;
}

/* Users → deactivated account */
.u-off-tag {
  display: inline-block;
  margin-left: 6px;
  padding: 1px 8px;
  border-radius: 999px;
  background: #fef3f2;
  color: #b42318;
  border: 1px solid #fecdca;
  font-size: 11px;
  font-weight: 800;
  vertical-align: 1px;
  white-space: nowrap;
}

.rtable tr.u-off td {
  background: #fcfcfd;
}

.rtable tr.u-off .avatar {
  filter: grayscale(1);
  opacity: .6;
}

.rtable tr.u-off .t-camp b {
  color: var(--muted);
}

.u-off-tag {
  display: table;
  margin: 3px 0 2px;
}

/* ===== Categories ===== */
/* offer card chip */
.o-cat {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 10px;
  border-radius: 999px;
  background: #effaf7;
  border: 1px solid #cdeee5;
  color: #0b6b5f;
  font-size: 11.5px;
  font-weight: 700;
  line-height: 1.4;
  white-space: nowrap;
}

.o-cat:hover {
  background: #def5ee;
}

/* All Offers: category chips */
.ofs-cats {
  display: flex;
  gap: 8px;
  margin-top: 14px;
  overflow-x: auto;
  padding: 2px 2px 6px;
  scrollbar-width: thin;
  -webkit-overflow-scrolling: touch;
}

.ofs-cats button {
  flex: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 1px solid var(--border);
  background: #fff;
  font: inherit;
  font-size: 13.5px;
  font-weight: 700;
  color: var(--text-2);
  padding: 8px 14px;
  border-radius: 999px;
  cursor: pointer;
  white-space: nowrap;
  transition: .15s;
}

.ofs-cats button i {
  font-style: normal;
  font-size: 11.5px;
  background: var(--surface-2);
  color: var(--muted);
  padding: 1px 7px;
  border-radius: 999px;
}

.ofs-cats button:hover {
  border-color: #9fdccc;
  color: var(--navy);
}

.ofs-cats button.on {
  background: var(--navy);
  border-color: var(--navy);
  color: #fff;
  box-shadow: 0 4px 12px rgba(15, 23, 42, .18);
}

.ofs-cats button.on i {
  background: rgba(255, 255, 255, .18);
  color: #fff;
}

/* Home: shop by category */
.h-cats-wrap {
  padding: 40px 16px 0;
}

.h-cats-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
}

.h-cats-head h2 {
  margin: 0;
  font-size: 22px;
  color: var(--navy);
}

.h-cats-head a {
  font-size: 14px;
  font-weight: 700;
  white-space: nowrap;
}

.h-cats {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 12px;
}

.h-cat {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 4px;
  padding: 18px 10px 16px;
  border: 1px solid #e3f2ee;
  border-radius: 14px;
  background: #fff;
  color: var(--navy);
  transition: .2s;
}

.h-cat:hover {
  transform: translateY(-3px);
  border-color: #9fdccc;
  box-shadow: 0 10px 24px rgba(14, 147, 132, .12);
}

.h-cat-ic {
  width: 54px;
  height: 54px;
  border-radius: 16px;
  display: grid;
  place-items: center;
  font-size: 28px;
  background: linear-gradient(135deg, #e6f8f4, #f1fbe6);
  margin-bottom: 4px;
}

.h-cat b {
  font-size: 14px;
  line-height: 1.25;
}

.h-cat small {
  font-size: 12px;
  color: var(--muted);
  font-weight: 600;
}

@media (max-width: 600px) {
  .h-cats-wrap {
    padding-top: 28px;
  }

  .h-cats {
    display: flex;
    overflow-x: auto;
    gap: 10px;
    padding-bottom: 6px;
    scrollbar-width: none;
  }

  .h-cats::-webkit-scrollbar {
    display: none;
  }

  .h-cat {
    flex: 0 0 116px;
    padding: 14px 8px 12px;
  }

  .h-cat-ic {
    width: 46px;
    height: 46px;
    font-size: 24px;
  }

  .h-cat b {
    font-size: 13px;
  }
}

/* campaign page + admin */
.chip-cat {
  color: #0b6b5f;
  background: #effaf7;
  border-color: #cdeee5;
  font-weight: 700;
}

.chip-cat:hover {
  background: #def5ee;
}

.a-cat {
  display: table;
  margin: 3px 0 2px;
  padding: 1px 8px;
  border-radius: 999px;
  background: #effaf7;
  color: #0b6b5f;
  font-size: 11px;
  font-weight: 700;
}

.cat-auto {
  margin-left: 6px;
  padding: 1px 8px;
  border-radius: 999px;
  background: #fff7e0;
  color: #9a6700;
  font-size: 11px;
  font-weight: 700;
}

.cat-field small {
  display: block;
  margin-top: 6px;
  color: var(--muted);
  font-size: 12.5px;
}

/* Header → Categories menu */
.s-cats {
  position: static;
  flex: none;
}

.s-cats>summary {
  list-style: none;
  cursor: pointer;
  color: var(--text);
  font-weight: 500;
  font-size: 15px;
  padding: 8px 12px;
  border-radius: 6px;
  white-space: nowrap;
  display: flex;
  align-items: center;
  gap: 4px;
  user-select: none;
}

.s-cats>summary::-webkit-details-marker {
  display: none;
}

.s-cats>summary:hover,
.s-cats[open]>summary,
.s-cats.on>summary {
  color: var(--navy);
  background: #eceefe;
}

.s-cats.on>summary {
  font-weight: 700;
}

.s-caret {
  font-size: 11px;
  transition: transform .2s;
}

.s-cats[open] .s-caret {
  transform: rotate(180deg);
}

.s-cats-drop {
  position: fixed;
  z-index: 120;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 16px;
  box-shadow: 0 18px 48px rgba(15, 23, 42, .18);
  padding: 14px;
  animation: sCatIn .16s ease;
  max-height: calc(100vh - 140px);
  overflow: auto;
}

@keyframes sCatIn {
  from {
    opacity: 0;
    transform: translateY(-6px);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

.s-cats-h {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 2px 6px 10px;
  border-bottom: 1px solid var(--border);
  margin-bottom: 8px;
}

.s-cats-h b {
  font-size: 14px;
  color: var(--navy);
}

.s-cats-h a {
  font-size: 13px;
  font-weight: 700;
}

.s-cats-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 4px;
}

.s-cats-grid a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 10px;
  border-radius: 10px;
  color: var(--navy);
}

.s-cats-grid a:hover {
  background: #f1faf7;
}

.s-cats-grid a.cur {
  background: #e3f7f2;
}

.s-cats-ic {
  flex: none;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  display: grid;
  place-items: center;
  font-size: 19px;
  background: linear-gradient(135deg, #e6f8f4, #f1fbe6);
}

.s-cats-t {
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.s-cats-t b {
  font-size: 13.5px;
  font-weight: 700;
  line-height: 1.25;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.s-cats-t small {
  font-size: 11.5px;
  color: var(--muted);
}

.s-cats-grid a.empty .s-cats-ic {
  filter: grayscale(.7);
  opacity: .6;
}

.s-cats-grid a.empty b {
  color: var(--muted);
  font-weight: 600;
}

@media (min-width: 1000px) {
  body.store .s-cats>summary {
    font-size: 16px;
    padding: 8px 14px;
  }
}

@media (max-width: 700px) {
  .s-cats>summary {
    font-size: 14px;
    padding: 7px 9px;
  }

  .s-cats-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Admin → Categories */
.ct-form {
  padding: 18px 20px;
  margin-bottom: 18px;
}

.ct-form-h {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 14px;
}

.ct-form-h b {
  font-size: 15px;
}

.ct-grid {
  display: grid;
  grid-template-columns: 90px minmax(0, 1fr) auto;
  gap: 14px;
  align-items: end;
}

.ct-form label {
  display: grid;
  gap: 6px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--muted);
}

.ct-form label small {
  text-transform: none;
  letter-spacing: 0;
  font-weight: 500;
  font-size: 12px;
}

.ct-form input,
.ct-form textarea {
  font: inherit;
  font-size: 14px;
  font-weight: 600;
  text-transform: none;
  letter-spacing: 0;
  color: var(--text);
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: #fff;
  width: 100%;
}

.ct-emoji input {
  text-align: center;
  font-size: 22px;
  padding: 6px;
  height: 44px;
}

.ct-prev {
  display: grid;
  gap: 6px;
  justify-items: start;
  padding-bottom: 8px;
}

.ct-prev span {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--muted);
}

.ct-icons {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 10px 0 14px;
}

.ct-icons button {
  width: 36px;
  height: 36px;
  border: 1px solid var(--border);
  background: #fff;
  border-radius: 9px;
  font-size: 18px;
  cursor: pointer;
}

.ct-icons button:hover {
  border-color: var(--primary);
  background: var(--primary-soft);
}

.ct-words textarea {
  resize: vertical;
  min-height: 60px;
}

.ct-acts {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  margin-top: 14px;
}

.ct-acts small {
  font-size: 12.5px;
}

.ct-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 12px;
  padding: 16px;
}

.ct-item {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: #fff;
}

.ct-item.is-custom {
  border-color: #b8e6d9;
  background: #fbfefd;
}

.ct-item.is-edit {
  box-shadow: 0 0 0 3px var(--primary-soft);
  border-color: var(--primary);
}

.ct-ic {
  flex: none;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  font-size: 22px;
  background: linear-gradient(135deg, #e6f8f4, #f1fbe6);
}

.ct-main {
  flex: 1;
  min-width: 0;
}

.ct-top {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.ct-top b {
  font-size: 14.5px;
}

.ct-type {
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--muted);
  background: var(--surface-2);
  padding: 2px 7px;
  border-radius: 999px;
}

.ct-type.c {
  color: #0b6b5f;
  background: #e3f7f2;
}

.ct-n {
  font-size: 12.5px;
  color: var(--muted);
  margin: 3px 0 6px;
}

.ct-n .on {
  color: #067647;
  font-weight: 700;
}

.ct-kw {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

.ct-kw span {
  font-size: 11px;
  font-weight: 600;
  color: var(--text-2);
  background: var(--surface-2);
  padding: 2px 7px;
  border-radius: 6px;
}

.ct-kw i {
  font-size: 11.5px;
  color: var(--muted);
  font-style: normal;
}

.ct-acts2 {
  display: flex;
  gap: 4px;
  align-items: center;
}

.ct-acts2 form {
  display: contents;
}

@media (max-width: 640px) {
  .ct-grid {
    grid-template-columns: 80px minmax(0, 1fr);
  }

  .ct-prev {
    grid-column: 1 / -1;
  }

  .ct-list {
    grid-template-columns: 1fr;
    padding: 12px;
  }
}

.s-cats-drop,
.s-cats-grid a,
.s-cats-t {
  text-align: left;
}

.s-cats-t {
  align-items: flex-start;
}

/* Home → Top Popular Categories */
.pc-sec {
  padding: 64px 16px 56px;
}

.pc-sec .sec-title {
  margin-bottom: 34px;
}

.pc-sec .sec-title p {
  max-width: 420px;
  line-height: 1.6;
}

.pc-badge {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--orange, #f97316);
  display: inline-grid;
  place-items: center;
  margin-bottom: 12px;
  box-shadow: 0 6px 16px rgba(249, 115, 22, .3);
}

.pc-badge svg {
  width: 22px;
  height: 22px;
}

.pc-grid {
  display: grid;
  grid-template-columns: repeat(7, 126px);
  justify-content: center;
  gap: 30px 19px;
}

.pc-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  color: var(--navy);
  text-align: center;
}

.pc-circle {
  position: relative;
  width: 126px;
  height: 126px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  transition: transform .25s ease, box-shadow .25s ease;
}

.pc-circle.peach {
  background: #fdeee2;
}

.pc-circle.mint {
  background: #e2f6f1;
}

.pc-circle.has-img {
  background: none;
}

.pc-circle img {
  width: 126px;
  height: 126px;
  border-radius: 50%;
  object-fit: cover;
  display: block;
}

.pc-emoji {
  font-size: 54px;
  line-height: 1;
}

.pc-n {
  position: absolute;
  top: 4px;
  right: 4px;
  min-width: 24px;
  height: 24px;
  padding: 0 6px;
  border-radius: 999px;
  background: var(--navy);
  color: #fff;
  font-style: normal;
  font-size: 12px;
  font-weight: 800;
  display: grid;
  place-items: center;
  border: 2px solid #fff;
}

.pc-item b {
  font-family: Poppins, var(--font, sans-serif);
  font-size: 15px;
  font-weight: 600;
  color: #3b4258;
  line-height: 1.25;
}

.pc-item:hover .pc-circle {
  transform: translateY(-4px);
  box-shadow: 0 12px 26px rgba(15, 23, 42, .12);
}

.pc-item:hover b {
  color: var(--navy);
}

.pc-more {
  text-align: center;
  margin-top: 38px;
}

@media (max-width: 1080px) {
  .pc-grid {
    grid-template-columns: repeat(5, 120px);
  }

  .pc-circle,
  .pc-circle img {
    width: 120px;
    height: 120px;
  }
}

@media (max-width: 760px) {
  .pc-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 22px 10px;
  }

  .pc-circle,
  .pc-circle img {
    width: 84px;
    height: 84px;
  }

  .pc-emoji {
    font-size: 36px;
  }

  .pc-item {
    gap: 9px;
  }

  .pc-item b {
    font-size: 12.5px;
  }

  .pc-sec {
    padding: 44px 14px 40px;
  }

  .pc-n {
    min-width: 20px;
    height: 20px;
    font-size: 10.5px;
    top: 0;
    right: 0;
  }
}

@media (max-width: 380px) {
  .pc-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* category pictures in the header menu + admin */
.s-cats-ic.has-img,
.ct-ic.has-img {
  background: none;
  padding: 0;
  overflow: hidden;
  border-radius: 50%;
}

.s-cats-ic img,
.ct-ic img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
  display: block;
}

.ct-pic-h {
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--text-2);
  margin: 6px 0 8px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.ct-pic-h span {
  text-transform: none;
  letter-spacing: 0;
  font-size: 11px;
  font-weight: 700;
  color: var(--muted);
  background: #f1f3f6;
  border-radius: 999px;
  padding: 2px 8px;
}

.ct-pic {
  display: flex;
  align-items: stretch;
  gap: 16px;
  flex-wrap: wrap;
  margin: 0 0 16px;
}

.ct-pic-side {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  flex: none;
}

.ct-pic-side small {
  font-size: 11px;
  color: var(--muted);
  font-weight: 600;
}

.ct-form label.ct-drop {
  flex: 1;
  min-width: 240px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  text-align: center;
  padding: 16px 18px;
  border: 2px dashed #cfe3e4;
  border-radius: 14px;
  background: #f8fbfb;
  cursor: pointer;
  transition: .15s;
  text-transform: none;
  letter-spacing: 0;
  font-weight: 500;
  font-size: 14px;
  color: var(--text-2);
  margin: 0;
}

.ct-form label.ct-drop:hover,
.ct-form label.ct-drop.drag {
  border-color: #2ec4c9;
  background: #eefafa;
}

.ct-form label.ct-drop.has-file {
  border-style: solid;
  border-color: #9fdcdf;
  background: #f0fbfb;
}

.ct-drop input[type=file] {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.ct-drop-ic {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #e3f6f6;
  color: #1a9ea3;
  display: grid;
  place-items: center;
  margin-bottom: 2px;
}

.ct-drop-ic svg {
  width: 20px;
  height: 20px;
}

.ct-drop-t b {
  color: #1a9ea3;
  font-weight: 700;
}

.ct-drop-t u {
  color: var(--muted);
  font-size: 13px;
}

.ct-drop small {
  font-size: 12px;
  color: var(--muted);
  font-weight: 500;
}

.ct-pic-prev {
  width: 84px;
  height: 84px;
  flex: none;
  border-radius: 50%;
  background: #fdeee2;
  display: grid;
  place-items: center;
  font-size: 34px;
  overflow: hidden;
  box-shadow: inset 0 0 0 3px #fff, 0 2px 10px rgba(15, 47, 51, .08);
}

.ct-pic-prev img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ct-form label.ct-rm {
  display: flex;
  align-items: center;
  align-self: center;
  gap: 6px;
  cursor: pointer;
  padding: 8px 12px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: #fff;
  text-transform: none;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 13px;
  color: var(--text-2);
  flex: none;
  min-width: 0;
}

.ct-form label.ct-rm input {
  width: auto;
}

/* All Offers → every category (wraps to 2 rows on desktop, "Show all" for the rest) */
.ofs-cats-wrap {
  margin-top: 14px;
}

.ofs-cats {
  margin-top: 0;
  flex-wrap: wrap;
  overflow: hidden;
  max-height: 98px;
  padding: 3px 2px;
}

.ofs-cats.all {
  max-height: none;
}

.ofs-cats button {
  padding: 6px 13px 6px 6px;
}

.ofs-cats .oc-ic {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: inline-grid;
  place-items: center;
  font-size: 15px;
  background: #f3f5f9;
  overflow: hidden;
  flex: none;
}

.ofs-cats .oc-ic img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ofs-cats button.on .oc-ic {
  background: rgba(255, 255, 255, .16);
}

.ofs-cats button.empty {
  color: var(--muted);
  font-weight: 600;
}

.ofs-cats button.empty .oc-ic {
  filter: grayscale(.6);
  opacity: .7;
}

.ofs-cats button.empty i {
  background: transparent;
}

.ofs-cats button.empty.on {
  color: #fff;
}

.ofs-cats-more {
  margin-top: 6px;
  border: 0;
  background: none;
  font: inherit;
  font-size: 13.5px;
  font-weight: 700;
  color: var(--navy);
  cursor: pointer;
  padding: 4px 6px;
}

.ofs-cats-more:hover {
  text-decoration: underline;
}

@media (max-width: 760px) {
  .ofs-cats {
    flex-wrap: nowrap;
    overflow-x: auto;
    max-height: none;
    padding-bottom: 6px;
  }
}

/* All Offers → search, filters and categories in ONE box */
.ofs-panel {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 16px;
  box-shadow: 0 4px 16px rgba(30, 27, 75, .05);
  padding: 8px;
}

.ofs-panel .ofs-bar {
  background: none;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  padding: 0;
}

.ofs-panel .ofs-cats-wrap {
  margin: 8px 0 0;
  padding: 12px 4px 4px;
  border-top: 1px solid var(--border);
}

.ofs-panel .ofs-cats {
  padding: 2px 0;
}

.ofs-panel .ofs-cats button {
  background: #fff;
}

.ofs-panel .ofs-cats button.on {
  background: var(--navy);
}

.ofs-panel .ofs-cats-more {
  margin: 4px 0 0;
  padding: 4px 2px;
}

@media (max-width: 760px) {
  .ofs-panel {
    padding: 8px;
    border-radius: 14px;
  }

  .ofs-panel .ofs-cats-wrap {
    padding: 10px 0 2px;
  }
}

/* Home → offer cards use the full container width, same edges as the other sections */
body.store .o-grid {
  max-width: none;
  margin: 0;
}

/* Admin → Users table: email on 1–2 lines (not letter by letter), status split in one row, long IPv6 wraps */
.users-t .t-email {
  min-width: 200px;
  max-width: 290px;
  word-break: normal;
  overflow-wrap: anywhere;
  font-size: 13.5px;
}

.users-t .t-split>div {
  display: flex;
  gap: 4px;
  flex-wrap: nowrap;
}

.users-t .t-split .st {
  padding: 3px 8px;
  font-size: 11.5px;
}

.users-t .t-udev {
  max-width: 210px;
}

.users-t .t-udev .t-ip {
  overflow-wrap: anywhere;
}

.users-t th {
  white-space: nowrap;
}

@media (min-width: 1101px) {
  .users-t {
    min-width: 1280px;
  }
}

/* Admin tables: the Action column stays fixed on the right while the table scrolls sideways */
@media (min-width: 1101px) {

  .rtable th:last-child,
  .rtable td:last-child {
    position: sticky;
    right: 0;
    z-index: 2;
    background: #fff;
    box-shadow: -10px 0 14px -12px rgba(15, 47, 51, .28);
  }

  .rtable thead th:last-child {
    background: var(--surface-2);
    z-index: 3;
  }

  .rtable tbody tr:hover td:last-child {
    background: #fafbff;
  }

  .rtable tr.u-off td:last-child {
    background: #fcfcfd;
  }

  .rtable td:last-child:has(details[open]) {
    z-index: 6;
  }
}

.ct-form label.ct-rm svg {
  width: 15px;
  height: 15px;
  color: #d64545;
}

.ct-form label.ct-rm:has(input:checked) {
  border-color: #f3b4b4;
  background: #fff3f3;
  color: #c03030;
}

/* All Offers → pagination under the offer cards (10 per page) */
.o-grid .o-card.pg-off {
  display: none !important;
}

.ofs-pager {
  margin-top: 22px;
  border: 1px solid var(--border);
  border-radius: 16px;
  box-shadow: 0 2px 10px rgba(15, 23, 42, .04);
}

/* ===== Home → "How it works" (new design) ===== */
.btn-orange {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 44px;
  padding: 0 26px;
  border-radius: 999px;
  border: 0;
  background: #ee7322;
  color: #fff !important;
  font-family: Poppins, var(--font, sans-serif);
  font-weight: 600;
  font-size: 14.5px;
  letter-spacing: .01em;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  box-shadow: 0 6px 16px rgba(238, 115, 34, .28);
  transition: background .15s, transform .15s, box-shadow .15s;
}

.btn-orange:hover {
  background: #d9621a;
  transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(238, 115, 34, .34);
}

.hw {
  background: #eff9f5;
  padding: 76px 0 70px;
  scroll-margin-top: 120px;
}

body.home .hw {
  background: #eff9f5;
}

.hw-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 30px;
  flex-wrap: wrap;
  margin-bottom: 36px;
}

.hw-head {
  max-width: 560px;
}

.hw-head h2 {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 0 0 14px;
  font-family: Poppins, var(--font, sans-serif);
  font-size: 36px;
  font-weight: 600;
  color: #1f2a44;
  letter-spacing: -.01em;
}

.hw-badge {
  width: 48px;
  height: 48px;
  flex: none;
  border-radius: 50%;
  background: #3fbf8f;
  color: #fff;
  display: grid;
  place-items: center;
}

.hw-badge svg {
  width: 24px;
  height: 24px;
}

.hw-head p {
  margin: 0;
  color: #4b5568;
  font-size: 14.5px;
  line-height: 1.7;
}

.hw-stats {
  display: flex;
  gap: 26px;
}

.hw-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}

.hw-ring {
  --p: 75;
  width: 82px;
  height: 82px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: radial-gradient(closest-side, #eff9f5 calc(100% - 5px), transparent calc(100% - 4px)), conic-gradient(#ee7322 calc(var(--p) * 1%), #fbe3d2 0);
}

.hw-ring b {
  font-family: Poppins, var(--font, sans-serif);
  font-size: 20px;
  font-weight: 600;
  color: #1f2a44;
}

.hw-stat small {
  font-size: 13.5px;
  font-weight: 600;
  color: #3b4258;
}

.hw-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
  align-items: start;
}

.hw-card {
  background: #fff;
  border: 1px solid #e3e9ee;
  border-radius: 10px;
  padding: 22px 20px 26px;
  text-align: center;
  transition: transform .2s, box-shadow .2s;
}

.hw-card:nth-child(even) {
  margin-top: 46px;
}

.hw-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 30px rgba(15, 47, 51, .08);
}

.hw-ic {
  width: 44px;
  height: 44px;
  margin: 0 auto 14px;
  border-radius: 50%;
  background: #e8f7f1;
  color: #3fbf8f;
  display: grid;
  place-items: center;
}

.hw-ic svg {
  width: 22px;
  height: 22px;
}

.hw-card h3 {
  margin: 0 0 8px;
  font-family: Poppins, var(--font, sans-serif);
  font-size: 16.5px;
  font-weight: 600;
  color: #1f2a44;
}

.hw-card p {
  margin: 0;
  font-size: 13.5px;
  line-height: 1.65;
  color: #556070;
}

.hw-cta {
  max-width: 720px;
  margin: 34px auto 0;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 18px 14px 22px;
  background: #fff;
  border: 1px solid #e3e9ee;
  border-radius: 10px;
}

.hw-cta-ic {
  color: #ee7322;
  display: grid;
}

.hw-cta-ic svg {
  width: 24px;
  height: 24px;
}

.hw-cta p {
  flex: 1;
  margin: 0;
  font-size: 15px;
  color: #2b3344;
}

@media (max-width: 1000px) {
  .hw-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .hw-top {
    flex-direction: column;
  }

  .hw-stats {
    width: 100%;
    justify-content: flex-start;
  }
}

@media (max-width: 600px) {
  .hw {
    padding: 50px 0;
  }

  .hw-head h2 {
    font-size: 26px;
    gap: 12px;
  }

  .hw-badge {
    width: 40px;
    height: 40px;
  }

  .hw-stats {
    justify-content: space-between;
    gap: 10px;
  }

  .hw-ring {
    width: 70px;
    height: 70px;
  }

  .hw-ring b {
    font-size: 17px;
  }

  .hw-stat small {
    font-size: 12px;
    text-align: center;
  }

  .hw-grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .hw-card:nth-child(even) {
    margin-top: 0;
  }

  .hw-cta {
    flex-direction: column;
    text-align: center;
    padding: 18px;
  }
}

/* ===== Home → FAQ + Support ===== */
.faq-sec {
  padding: 76px 0;
  background: #fff;
  scroll-margin-top: 120px;
}

.faq-wrap {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 36px;
  align-items: start;
}

.faq-kicker {
  display: inline-block;
  padding: 5px 14px;
  border-radius: 999px;
  background: #fff1e7;
  color: #ee7322;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: .06em;
}

.faq-head h2 {
  margin: 12px 0 8px;
  font-family: Poppins, var(--font, sans-serif);
  font-size: 32px;
  font-weight: 600;
  color: #1f2a44;
}

.faq-head p {
  margin: 0 0 24px;
  color: #556070;
  font-size: 14.5px;
}

.faq-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.faq-item {
  border: 1px solid #e3e9ee;
  border-radius: 12px;
  background: #fff;
  transition: border-color .15s, box-shadow .15s;
}

.faq-item[open] {
  border-color: #bfe8d9;
  box-shadow: 0 8px 22px rgba(15, 47, 51, .06);
}

.faq-item summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 17px 20px;
  font-weight: 700;
  font-size: 15px;
  color: #1f2a44;
}

.faq-item summary::-webkit-details-marker {
  display: none;
}

.faq-pm {
  position: relative;
  width: 28px;
  height: 28px;
  flex: none;
  border-radius: 50%;
  background: #eff9f5;
}

.faq-pm::before,
.faq-pm::after {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  width: 12px;
  height: 2px;
  background: #3fbf8f;
  border-radius: 2px;
  transform: translate(-50%, -50%);
  transition: transform .2s;
}

.faq-pm::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.faq-item[open] .faq-pm {
  background: #ee7322;
}

.faq-item[open] .faq-pm::before,
.faq-item[open] .faq-pm::after {
  background: #fff;
}

.faq-item[open] .faq-pm::after {
  transform: translate(-50%, -50%) rotate(0deg);
}

.faq-a {
  padding: 0 20px 18px;
  color: #556070;
  font-size: 14px;
  line-height: 1.7;
}

.faq-a p {
  margin: 0;
}

.faq-a a {
  color: #1a9ea3;
  font-weight: 600;
}

.sup-card {
  position: sticky;
  top: 130px;
  background: linear-gradient(160deg, #eff9f5, #fff7f0);
  border: 1px solid #e3e9ee;
  border-radius: 16px;
  padding: 28px 26px;
}

.sup-ic {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: #3fbf8f;
  color: #fff;
  display: grid;
  place-items: center;
  margin-bottom: 14px;
}

.sup-ic svg {
  width: 26px;
  height: 26px;
}

.sup-card h3 {
  margin: 0 0 6px;
  font-family: Poppins, var(--font, sans-serif);
  font-size: 21px;
  font-weight: 600;
  color: #1f2a44;
}

.sup-card>p {
  margin: 0 0 16px;
  color: #556070;
  font-size: 14px;
  line-height: 1.6;
}

.sup-list {
  list-style: none;
  margin: 0 0 20px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.sup-list li {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 10px 14px;
  background: #fff;
  border-radius: 10px;
  border: 1px solid #edf1f4;
  font-size: 14px;
}

.sup-list b {
  font-size: 12px;
  color: #8a94a6;
  font-weight: 700;
}

.sup-list a,
.sup-list span {
  color: #1f2a44;
  font-weight: 600;
  overflow-wrap: anywhere;
}

.sup-btn {
  width: 100%;
}

.sup-link {
  display: block;
  text-align: center;
  margin-top: 12px;
  font-size: 13.5px;
  font-weight: 600;
  color: #1a9ea3;
}

@media (max-width: 1000px) {
  .faq-wrap {
    grid-template-columns: 1fr;
  }

  .sup-card {
    position: static;
  }
}

@media (max-width: 600px) {
  .faq-sec {
    padding: 50px 0;
  }

  .faq-head h2 {
    font-size: 25px;
  }

  .faq-item summary {
    padding: 15px 16px;
    font-size: 14.5px;
  }

  .faq-a {
    padding: 0 16px 16px;
  }
}

/* Outline pill buttons (See All Categories / See All Deals …): navy fill slides in, slight lift, arrow nudges right */
.see-all {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  cursor: pointer;
  transition: color .3s ease, border-color .3s ease, transform .25s ease, box-shadow .3s ease;
}

.see-all::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background: var(--navy);
  border-radius: inherit;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .35s cubic-bezier(.65, 0, .35, 1);
}

.see-all:hover,
.see-all:focus-visible {
  background: #fff;
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 10px 22px rgba(15, 23, 42, .16);
}

.see-all:hover::before,
.see-all:focus-visible::before {
  transform: scaleX(1);
}

.see-all:active {
  transform: translateY(0);
  box-shadow: 0 4px 10px rgba(15, 23, 42, .14);
}

.see-all .sa-arr,
.see-all>span[aria-hidden] {
  display: inline-block;
  transition: transform .3s ease;
}

.see-all:hover .sa-arr,
.see-all:hover>span[aria-hidden] {
  transform: translateX(5px);
}

@media (prefers-reduced-motion: reduce) {

  .see-all,
  .see-all::before,
  .see-all .sa-arr,
  .see-all>span[aria-hidden] {
    transition: none;
  }
}

/* Header "Log In / Sign Up" — same navy as the "Get Deal" button */
.s-user .btn-dark {
  background: var(--navy);
  border-color: var(--navy);
  color: #fff;
}

.s-user .btn-dark:hover {
  background: var(--navy-2);
  border-color: var(--navy-2);
  color: #fff;
}

/* Header "Help ▾" (FAQ + Support in one menu) — one column list */
.s-help .s-cats-grid {
  grid-template-columns: 1fr;
}

/* "How it works" heading + text centred */
.hw-top {
  justify-content: center;
}

.hw-head {
  margin: 0 auto;
  text-align: center;
  max-width: 640px;
}

.hw-head h2 {
  justify-content: center;
}

/* Admin → Users: logout time + login history */
.t-camp small.u-lo {
  color: #b45309;
}

.u-hist {
  margin-top: 4px;
  font-size: 12.5px;
}

.u-hist>summary {
  cursor: pointer;
  list-style: none;
  color: #1a9ea3;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.u-hist>summary::-webkit-details-marker {
  display: none;
}

.u-hist>summary i {
  font-style: normal;
  font-size: 11px;
  color: var(--muted);
  background: #f1f3f6;
  border-radius: 999px;
  padding: 1px 7px;
}

.u-hist ol {
  list-style: none;
  margin: 8px 0 0;
  padding: 8px 10px;
  max-height: 240px;
  overflow: auto;
  background: #f8fafb;
  border: 1px solid var(--border);
  border-radius: 10px;
  min-width: 300px;
}

.u-hist li {
  display: flex;
  flex-direction: column;
  gap: 1px;
  padding: 6px 0 6px 10px;
  border-left: 2px solid #cfe3e4;
  margin-left: 2px;
}

.u-hist li+li {
  margin-top: 2px;
}

.u-hist li b {
  font-size: 12.5px;
  color: var(--text);
}

.u-hist li span {
  font-size: 11.5px;
  color: var(--muted);
}

.u-hist li code {
  font-size: 11px;
}

.u-hist li em {
  font-style: normal;
  font-size: 11.5px;
  color: #b45309;
}

.u-hist li.ev-logout {
  border-left-color: #f5c08a;
}

.u-hist li.ev-signup {
  border-left-color: #3fbf8f;
}

.t-camp small.u-lo {
  display: block;
}

/* Admin → Users: "Referred by" tag */
.t-camp a.u-ref {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin: 3px 0 1px;
  padding: 2px 9px;
  border-radius: 999px;
  background: #fff4e8;
  color: #b45309;
  font-size: 12px;
  font-weight: 600;
  width: fit-content;
}

.t-camp a.u-ref b {
  color: #92400e;
}

.t-camp a.u-ref:hover {
  background: #ffe9d1;
}

/* Sign-in card: a bit more compact so the extra "Referred by" field + Login button fit on the white panel */
.signin-logo {
  height: 2.7em;
}

.signin-sub {
  margin: .25em 0 .75em;
}

.sf-field {
  gap: .22em;
  margin-bottom: .45em;
}

.sf-field label {
  font-size: .85em;
}

.sf-field input {
  padding: .5em .9em;
}

.sf-row {
  margin: .05em 0 .6em;
}

.sf-btn {
  padding: .72em;
}

.sf-foot {
  margin-top: .55em;
}

@media (max-width: 760px) {
  .signin-logo {
    height: 2.6em;
  }

  .signin-sub {
    margin: .2em 0 .6em;
  }

  .sf-field {
    margin-bottom: .42em;
  }

  .sf-field input {
    padding: .5em .9em;
  }

  .sf-row {
    margin: 0 0 .5em;
  }
}

/* Admin → Users: keep the "Referred by" tag on one line */
.t-camp a.u-ref {
  display: inline-block;
  white-space: nowrap;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.6;
}

.t-camp a.u-ref b {
  display: inline;
  font-size: inherit;
  font-weight: 700;
}

.t-camp a.u-ref {
  display: block;
  width: fit-content;
}

/* Header row: search centred between logo and login, same height as the button, pill shape */
@media (min-width: 761px) {
  body.store .s-search {
    flex: 1;
    max-width: 760px;
    margin: 0 auto;
  }

  body.store .s-user {
    margin-left: 0;
  }
}

body.store .s-search input {
  height: 48px;
  padding: 0 18px 0 48px;
  border-radius: 999px;
  background: #f4f6f9;
  border: 1px solid #e3e7ee;
  font-size: 15px;
  transition: border-color .15s, box-shadow .15s, background .15s;
}

body.store .s-search input::placeholder {
  color: #8a93a3;
}

body.store .s-search input:hover {
  border-color: #cfd6e0;
}

body.store .s-search input:focus {
  background: #fff;
  border-color: #2ec4c9;
  box-shadow: 0 0 0 4px rgba(46, 196, 201, .15);
}

body.store .s-search svg {
  left: 18px;
  width: 19px;
  height: 19px;
}

body.store .s-user .btn-dark {
  height: 48px;
  padding: 0 26px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  font-size: 15px;
}

@media (max-width: 760px) {
  body.store .s-search input {
    height: 44px;
    font-size: 14px;
  }

  body.store .s-user .btn-dark {
    height: 42px;
    padding: 0 18px;
    font-size: 14px;
  }
}

/* Nav row: pill tabs (same style as the search + buttons above), neat chevron, pill "Upload Order Proof" */
body.store .s-nav-row {
  height: 58px;
}

body.store .s-links {
  gap: 6px;
  align-items: center;
}

body.store .s-links>a,
body.store .s-cats>summary {
  height: 40px;
  padding: 0 16px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  font-weight: 500;
  color: #2b3344;
  transition: background .15s, color .15s;
}

body.store .s-links>a:hover,
body.store .s-cats>summary:hover,
body.store .s-cats[open]>summary {
  background: #eef0f6;
  color: var(--navy);
}

body.store .s-links>a.on,
body.store .s-cats.on>summary {
  background: var(--navy);
  color: #fff;
  font-weight: 600;
}

body.store .s-caret {
  display: inline-block;
  width: 7px;
  height: 7px;
  margin-left: 6px;
  font-size: 0;
  border-right: 1.8px solid currentColor;
  border-bottom: 1.8px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
  transition: transform .2s;
}

body.store .s-cats[open] .s-caret {
  transform: translateY(1px) rotate(-135deg);
}

body.store .s-nav .btn-grad {
  height: 42px;
  padding: 0 22px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 600;
  box-shadow: 0 6px 16px rgba(34, 193, 195, .28);
  transition: transform .15s, box-shadow .15s, filter .15s;
}

body.store .s-nav .btn-grad:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(34, 193, 195, .34);
}

@media (max-width: 1100px) {

  body.store .s-links>a,
  body.store .s-cats>summary {
    height: 36px;
    padding: 0 11px;
    font-size: 14px;
  }
}

@media (max-width: 760px) {
  body.store .s-nav .btn-grad {
    display: none;
  }
}

/* active nav tab: no fill — just bold navy text */
body.store .s-links>a.on,
body.store .s-cats.on>summary {
  background: transparent;
  color: var(--navy);
  font-weight: 700;
}

body.store .s-links>a.on:hover,
body.store .s-cats.on>summary:hover {
  background: #eef0f6;
}

/* My Orders: 'Upload new order proof' list — 12 per page */
.up-list .up-item.pg-off {
  display: none !important;
}

.up-pager {
  margin-top: 16px;
  box-shadow: none;
}
/* Admin sidebar: name + role both left-aligned */
.side-foot a.who { text-align: left; width: auto; height: auto; place-items: initial; }
.side-foot a.who b, .side-foot a.who span { display: block; text-align: left; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ===== Phone menu (☰ → slide-in drawer) ===== */
.s-burger { display: none; }
.m-menu[hidden] { display: none; }
@media (max-width: 760px) {
  .s-burger { display: grid; place-items: center; width: 42px; height: 42px; flex: none; border: 1px solid var(--border); border-radius: 12px; background: #fff; color: var(--navy, #1e1b4b); cursor: pointer; padding: 0; }
  .s-burger svg { width: 22px; height: 22px; }
  .s-head-row .s-logo { margin-right: auto; }
  .s-nav { display: none; }
}
.m-menu { position: fixed; inset: 0; z-index: 1000; }
.m-menu-bg { position: absolute; inset: 0; background: rgba(8, 20, 24, .55); opacity: 0; transition: opacity .25s; }
.m-menu-panel { position: absolute; top: 0; left: 0; bottom: 0; width: min(340px, 86vw); display: flex; flex-direction: column; overflow-y: auto; overscroll-behavior: contain;
  background: linear-gradient(160deg, #5ec8d8 0%, #9fdc7c 60%, #b8e05e 100%); color: #fff; transform: translateX(-100%); transition: transform .26s ease; box-shadow: 8px 0 30px rgba(0,0,0,.25); font-family: Poppins, 'Plus Jakarta Sans', sans-serif; }
.m-menu.open .m-menu-bg { opacity: 1; }
.m-menu.open .m-menu-panel { transform: none; }
body.m-menu-on { overflow: hidden; }
.m-menu-top { display: flex; align-items: center; gap: 10px; padding: 26px 18px 20px 22px; border-bottom: 1px solid rgba(255,255,255,.3); }
.m-menu-who { flex: 1; min-width: 0; display: flex; align-items: center; gap: 12px; }
.m-menu-av { width: 56px; height: 56px; flex: none; border-radius: 14px; display: grid; place-items: center; background: rgba(255,255,255,.9); color: #0f2f33; font-weight: 700; font-size: 22px; }
.m-menu-logo img { width: 40px; height: 40px; object-fit: contain; }
.m-menu-t { min-width: 0; display: grid; gap: 2px; }
.m-menu-t small { font-size: 12px; line-height: 1.3; opacity: .95; font-family: 'Plus Jakarta Sans', sans-serif; }
.m-menu-t b, .m-menu-t a { font-size: 17px; font-weight: 600; color: #fff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.m-menu-x { width: 40px; height: 40px; flex: none; border: 0; border-radius: 50%; background: rgba(255,255,255,.18); color: #fff; display: grid; place-items: center; cursor: pointer; padding: 0; }
.m-menu-x svg { width: 20px; height: 20px; }
.m-menu-links { display: flex; flex-direction: column; padding: 14px 14px 22px; }
.m-menu-links > a, .m-menu-links summary { display: flex; align-items: center; gap: 8px; padding: 11px 12px; border-radius: 12px; font-size: 19px; font-weight: 600; color: #fff; text-decoration: none; cursor: pointer; list-style: none; text-shadow: 0 1px 2px rgba(0,0,0,.12); }
.m-menu-links summary::-webkit-details-marker { display: none; }
.m-menu-links summary::after { content: ''; width: 8px; height: 8px; border-right: 2.5px solid currentColor; border-bottom: 2.5px solid currentColor; transform: rotate(45deg) translateY(-3px); transition: transform .2s; margin-left: 4px; }
.m-menu-links details[open] > summary::after { transform: rotate(225deg) translateY(-1px); }
.m-menu-links > a.on, .m-menu-links summary:hover, .m-menu-links > a:hover { background: rgba(255,255,255,.18); }
.m-menu-sub { display: grid; gap: 2px; margin: 2px 0 8px 12px; padding-left: 12px; border-left: 2px solid rgba(255,255,255,.45); }
.m-menu-sub a { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 10px; border-radius: 10px; font-size: 15px; font-weight: 500; color: #fff; text-decoration: none; font-family: 'Plus Jakarta Sans', sans-serif; }
.m-menu-sub a.on, .m-menu-sub a:hover { background: rgba(255,255,255,.2); font-weight: 700; }
.m-menu-sub em { font-style: normal; font-size: 11px; font-weight: 700; background: rgba(255,255,255,.9); color: #0f2f33; border-radius: 999px; padding: 1px 8px; }
.m-menu-links .m-menu-cta { margin-top: 12px; justify-content: center; background: #fff; color: #0f2f33; font-size: 16px; text-shadow: none; box-shadow: 0 6px 16px rgba(0,0,0,.12); }
.m-menu-links .m-menu-cta:hover { background: #fff; }
.m-menu-foot { margin-top: auto; background: #000; padding: 22px 22px 26px 34px; display: grid; gap: 18px; font-family: 'Plus Jakarta Sans', sans-serif; }
.m-menu-legal { display: grid; gap: 6px; }
.m-menu-legal a { color: #fff; font-size: 15px; text-decoration: none; }
.m-menu-legal a:hover { text-decoration: underline; }
.m-menu-flogo { width: 120px; height: auto; }
.m-menu-foot small { color: #cbd5e1; font-size: 12px; }
@media (prefers-reduced-motion: reduce) { .m-menu-panel, .m-menu-bg { transition: none; } }