:root {
  --bg: #f6f7f2;
  --card: #ffffff;
  --text: #1f2933;
  --muted: #687381;
  --border: #dbe1e8;
  --accent: #2f855a;
  --accent-dark: #276749;
  --danger: #b83232;
  --shadow: 0 10px 30px rgba(31,41,51,0.08);
}
* { box-sizing: border-box; }
body { margin: 0; font-family: Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Arial, sans-serif; background: var(--bg); color: var(--text); }
header { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 2rem; background: linear-gradient(135deg, #f0fff4, #ffffff); border-bottom: 1px solid var(--border); }
h1 { margin: 0; font-size: clamp(2rem, 5vw, 4rem); }
h2 { margin: 0 0 1rem; }
.eyebrow { color: var(--accent); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; margin: 0 0 .25rem; }
.subtitle { color: var(--muted); margin: .4rem 0 0; }
main { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; padding: 1rem; max-width: 1400px; margin: 0 auto; }
.card { background: var(--card); border: 1px solid var(--border); border-radius: 18px; padding: 1rem; box-shadow: var(--shadow); }
.wide { grid-column: 1 / -1; }
.grid-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.inline-form, .crawler-row { display: grid; grid-template-columns: 2fr 1fr 1fr auto; gap: .75rem; margin-top: .75rem; }
label { color: var(--muted); font-size: .9rem; display: grid; gap: .3rem; }
input, select { width: 100%; padding: .7rem .8rem; border: 1px solid var(--border); border-radius: 12px; background: #fff; color: var(--text); }
button { border: 0; border-radius: 12px; padding: .75rem 1rem; background: var(--accent); color: #fff; font-weight: 700; cursor: pointer; }
button:hover { background: var(--accent-dark); }
button.secondary { background: #4a5568; }
button.danger { background: var(--danger); }
button[type="submit"] { align-self: end; }
.result { white-space: pre-wrap; background: #111827; color: #d1fae5; padding: .75rem; border-radius: 12px; overflow: auto; max-height: 220px; }
.table-header { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; }
.filters { display: flex; gap: .5rem; flex-wrap: wrap; }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; min-width: 980px; }
th, td { padding: .75rem; border-bottom: 1px solid var(--border); text-align: left; vertical-align: top; }
th { color: var(--muted); font-size: .85rem; }
.status { font-weight: 700; padding: .25rem .5rem; border-radius: 999px; background: #edf2f7; display: inline-block; }
.status-open { background: #fff7ed; color: #9a3412; }
.status-in_progress { background: #eff6ff; color: #1d4ed8; }
.status-waiting_customer { background: #fef9c3; color: #854d0e; }
.status-resolved, .status-closed { background: #dcfce7; color: #166534; }
.priority-urgent { background: #fee2e2; color: #991b1b; }
.priority-high { background: #ffedd5; color: #9a3412; }
.priority-normal { background: #e0f2fe; color: #075985; }
.priority-low { background: #f1f5f9; color: #475569; }
.actions { display: flex; gap: .35rem; flex-wrap: wrap; }
#toast { position: fixed; right: 1rem; bottom: 1rem; background: #111827; color: white; padding: .8rem 1rem; border-radius: 12px; opacity: 0; transform: translateY(10px); transition: .2s ease; max-width: 420px; }
#toast.show { opacity: 1; transform: translateY(0); }
@media (max-width: 900px) { main { grid-template-columns: 1fr; } .grid-form, .inline-form, .crawler-row { grid-template-columns: 1fr; } header { flex-direction: column; align-items: flex-start; } }
.link-button { display: inline-block; text-decoration: none; border-radius: 12px; padding: .75rem 1rem; background: var(--accent); color: white; font-weight: 700; }
.stats-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; margin-top: 1rem; }
.stat-card { background: #f8fafc; border: 1px solid var(--border); border-radius: 14px; padding: .85rem; }
.stat-card strong { display: block; font-size: 1.7rem; }
.stat-card span { color: var(--muted); font-size: .85rem; }
.utility-row { display: flex; gap: .75rem; flex-wrap: wrap; align-items: center; margin-top: .75rem; }
.help-text { color: var(--muted); font-size: .92rem; margin: .35rem 0 .75rem; }
.offers-main { grid-template-columns: 1fr; }
.offers-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-top: 1rem; }
.offer-card { background: #fff; border: 1px solid var(--border); border-radius: 16px; padding: 1rem; box-shadow: var(--shadow); }
.offer-card h3 { margin: .7rem 0 .2rem; }
.offer-top { display: flex; justify-content: space-between; align-items: center; gap: .5rem; color: var(--accent); font-weight: 700; }
.category, .note, .empty { color: var(--muted); }
.price { font-size: 1.2rem; }
.old-price { text-decoration: line-through; color: var(--muted); margin-right: .5rem; }
@media (max-width: 1000px) { .stats-grid, .offers-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 650px) { .stats-grid, .offers-grid { grid-template-columns: 1fr; } }
.hidden { display: none !important; }
.secondary-link { background: #4a5568; }
.offer-card .actions { margin-top: .75rem; }

.seller-selector { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(150px, 220px) auto auto auto; gap: .75rem; align-items: center; }
.seller-info { margin-top: .85rem; }
.seller-card-mini { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; padding: .8rem; border: 1px solid var(--border); border-radius: 14px; background: #f8fafc; }
.seller-card-mini strong { color: var(--accent-dark); }
.template-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; margin: .75rem 0; }
@media (max-width: 900px) { .seller-selector, .template-grid { grid-template-columns: 1fr; } }

/* V6 buyer UX */
.public-hero { background: linear-gradient(135deg, #ecfdf5, #fff7ed); }
.search-card { position: sticky; top: 0; z-index: 5; }
.filter-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); align-items: end; }
.reservation-lookup { display: grid; grid-template-columns: minmax(160px, 1fr) auto; gap: .5rem; align-items: center; }
.active-filters { display: flex; gap: .4rem; flex-wrap: wrap; margin-top: .75rem; }
.filter-chip { background: #edf2f7; color: var(--muted); border-radius: 999px; padding: .3rem .65rem; font-size: .85rem; }
.offer-card h3 a { color: inherit; text-decoration: none; }
.offer-card h3 a:hover { color: var(--accent-dark); text-decoration: underline; }
.status-public_discount { background: #ebf8ff; color: #2b6cb0; }
.status-seller_verified { background: #f0fff4; color: #276749; }
.status-near_expiry { background: #fffaf0; color: #b7791f; }
.lookup-card { padding: 1rem; background: #f8fafc; border: 1px solid var(--border); border-radius: 14px; }
.wide-field { grid-column: 1 / -1; }
.detail-main { max-width: 1100px; }
.detail-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 1rem; align-items: start; }
.detail-price { font-size: 1.6rem; }
.detail-actions { display: flex; gap: .5rem; flex-wrap: wrap; margin-top: 1rem; }
.detail-facts { background: #f8fafc; border: 1px solid var(--border); border-radius: 16px; padding: 1rem; }
.detail-facts p { margin: .45rem 0; }
@media (max-width: 1200px) { .filter-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 760px) { .filter-grid, .reservation-lookup, .detail-grid { grid-template-columns: 1fr; } .search-card { position: static; } }

/* V8 image upload */
.table-thumb { width: 58px; height: 58px; object-fit: cover; border-radius: 12px; border: 1px solid var(--border); background: #f8fafc; display: block; }
.offer-image { width: 100%; height: 170px; object-fit: cover; border-radius: 14px; border: 1px solid var(--border); background: #f8fafc; margin-bottom: .75rem; }
.placeholder-image { display: grid; place-items: center; color: var(--muted); font-weight: 700; }
.detail-image { width: 100%; max-height: 420px; object-fit: cover; border-radius: 18px; border: 1px solid var(--border); background: #f8fafc; margin-bottom: 1rem; }
.muted { color: var(--muted); }
input[type="file"] { padding: .55rem; background: #f8fafc; }


/* V9 seller camera quick entry */
.camera-panel { background: #f8fafc; border: 1px dashed var(--border); border-radius: 16px; padding: .8rem; }
.camera-toolbar { display: flex; gap: .5rem; flex-wrap: wrap; margin-bottom: .75rem; }
.camera-video { width: 100%; max-height: 360px; object-fit: cover; border-radius: 14px; border: 1px solid var(--border); background: #111827; }
.camera-preview-wrap { display: grid; gap: .6rem; margin-top: .75rem; }
.camera-preview { width: 100%; max-height: 320px; object-fit: cover; border-radius: 14px; border: 1px solid var(--border); background: #f8fafc; }
.quick-camera-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; margin: .75rem 0; }
@media (max-width: 900px) { .quick-camera-grid { grid-template-columns: 1fr; } }

/* V10 AI quick seller entry */
.quick-agent-panel { background: #f0fff4; border: 1px solid #c6f6d5; border-radius: 16px; padding: .9rem; margin-bottom: 1rem; }
.quick-agent-panel h3 { margin: 0 0 .35rem; color: var(--accent-dark); }
.quick-command-row { display: grid; grid-template-columns: 1fr minmax(180px, 260px); gap: .75rem; align-items: stretch; }
.quick-command-row textarea { width: 100%; resize: vertical; min-height: 96px; padding: .75rem .85rem; border: 1px solid var(--border); border-radius: 12px; font: inherit; }
.quick-command-actions { display: grid; gap: .5rem; }
.quick-chips { display: flex; gap: .5rem; flex-wrap: wrap; margin: .75rem 0; }
.compact-result { max-height: 120px; font-size: .86rem; }
@media (max-width: 760px) { .quick-command-row { grid-template-columns: 1fr; } }


/* V11 PWA / mobile app helpers */
.pwa-install-btn {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 1000;
  border-radius: 999px;
  box-shadow: 0 14px 35px rgba(15, 23, 42, 0.18);
}

.offline-badge {
  position: fixed;
  left: 50%;
  bottom: 18px;
  transform: translateX(-50%);
  z-index: 1001;
  background: #111827;
  color: #f9fafb;
  padding: 10px 14px;
  border-radius: 999px;
  font-size: 13px;
  box-shadow: 0 14px 35px rgba(15, 23, 42, 0.22);
}

.hidden { display: none !important; }

@media (max-width: 720px) {
  .pwa-install-btn {
    left: 14px;
    right: 14px;
    bottom: 14px;
    width: calc(100% - 28px);
  }
  .offline-badge {
    width: calc(100% - 28px);
    text-align: center;
  }
  body { padding-bottom: 72px; }
}

/* V12 GPS / nearby search / map */
.map-card { overflow: hidden; }
.offers-map {
  width: 100%;
  height: 440px;
  border: 1px solid var(--border);
  border-radius: 18px;
  overflow: hidden;
  background: #f8fafc;
  box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.03);
}
.map-placeholder {
  height: 100%;
  display: grid;
  place-items: center;
  color: var(--muted);
  text-align: center;
  padding: 1rem;
}
.leaflet-popup-content button {
  padding: .45rem .7rem;
  border-radius: 10px;
  font-size: .85rem;
}
@media (max-width: 760px) {
  .offers-map { height: 360px; border-radius: 14px; }
}

.small-field {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  min-width: 140px;
}

.warning-note {
  border-left: 4px solid #f59e0b;
  background: #fffbeb;
  padding: 0.75rem 1rem;
  border-radius: 0.75rem;
  color: #78350f;
}
.file-inline {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1px solid #bbf7d0;
  border-radius: 12px;
  padding: 8px 10px;
  background: #f0fdf4;
  font-weight: 700;
  color: #166534;
}
.file-inline input { max-width: 210px; }

/* V20 cleaned admin redesign */
.admin-v20 {
  background: radial-gradient(circle at top left, #ecfdf5 0, #f8fafc 36%, #f1f5f9 100%);
}
.admin-hero {
  max-width: 1320px;
  margin: 0 auto 1rem;
  border: 1px solid rgba(22, 163, 74, 0.18);
  background: rgba(255,255,255,0.82);
  backdrop-filter: blur(12px);
  border-radius: 24px;
  padding: 1.25rem 1.35rem;
  box-shadow: 0 18px 40px rgba(15,23,42,.08);
}
.admin-hero h1 { letter-spacing: -0.04em; }
.top-actions { display: flex; gap: .65rem; flex-wrap: wrap; align-items: center; }
.admin-grid { max-width: 1320px; gap: 1rem; }
.section-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.step-badge {
  display: inline-grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 999px;
  background: #16a34a;
  color: #fff;
  font-weight: 800;
  margin-right: .4rem;
}
.primary-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .8rem;
  margin: 1rem 0;
}
.primary-actions button { min-height: 54px; font-size: 1rem; }
.big-action {
  background: linear-gradient(135deg, #16a34a, #0f766e);
  box-shadow: 0 14px 30px rgba(22, 163, 74, .25);
}
.scan-options {
  display: grid;
  grid-template-columns: minmax(150px, 240px) minmax(260px, 1fr) auto;
  gap: .75rem;
  align-items: end;
  margin-bottom: .85rem;
}
.status-panel {
  border-radius: 16px;
  padding: .9rem 1rem;
  border: 1px solid var(--border);
  background: #f8fafc;
  display: grid;
  gap: .25rem;
}
.status-panel strong { font-size: 1rem; }
.status-panel span { color: var(--muted); font-size: .92rem; }
.status-panel.running { border-color: #93c5fd; background: #eff6ff; color: #1e3a8a; }
.status-panel.ok { border-color: #86efac; background: #f0fdf4; color: #14532d; }
.status-panel.warn { border-color: #fcd34d; background: #fffbeb; color: #78350f; }
.status-panel.error { border-color: #fca5a5; background: #fef2f2; color: #7f1d1d; }
.activity-log { margin-top: .75rem; display: grid; gap: .35rem; }
.log-row {
  display: flex;
  gap: .65rem;
  align-items: center;
  padding: .45rem .65rem;
  border-radius: 12px;
  background: rgba(15,23,42,.04);
  color: #334155;
  font-size: .88rem;
}
.log-row span { color: var(--muted); font-variant-numeric: tabular-nums; }
.compact-dashboard .result { margin-top: .8rem; }
.clean-form input, .clean-form select, .clean-form textarea {
  background: #fff;
  border-color: #dbe3ef;
}
details summary {
  cursor: pointer;
  font-weight: 800;
  font-size: 1.05rem;
  display: flex;
  align-items: center;
  gap: .4rem;
  color: #0f172a;
  list-style: none;
}
details summary::-webkit-details-marker { display: none; }
details summary::after {
  content: "otvori/zatvori";
  margin-left: auto;
  color: var(--muted);
  font-size: .78rem;
  font-weight: 600;
}
.split-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 1rem; }
.panel-soft { border: 1px solid var(--border); border-radius: 16px; padding: 1rem; background: #f8fafc; display: grid; gap: .75rem; align-content: start; }
.subtle-links .link-button { padding: .55rem .8rem; font-size: .88rem; }
button { transition: transform .12s ease, opacity .12s ease, background-color .12s ease, box-shadow .12s ease; position: relative; }
button.pressed { transform: translateY(1px) scale(.99); }
button.loading { opacity: .78; cursor: wait; padding-right: 2.35rem; }
button.loading::after {
  content: "";
  position: absolute;
  right: .85rem;
  top: 50%;
  width: 15px;
  height: 15px;
  margin-top: -7.5px;
  border: 2px solid rgba(255,255,255,.65);
  border-top-color: transparent;
  border-radius: 999px;
  animation: spin .8s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }
.result { font-size: .86rem; line-height: 1.45; }
.compact-result { max-height: 150px; }
.command-center { border-color: rgba(22, 163, 74, 0.22); }
@media (max-width: 980px) {
  .primary-actions, .scan-options, .split-grid { grid-template-columns: 1fr; }
  .admin-hero { border-radius: 18px; }
}

/* V21 professional buyer AI UX */
.buyer-v21 {
  --buyer-bg: #f6f8f5;
  --buyer-ink: #0f172a;
  --buyer-muted: #64748b;
  --buyer-card: rgba(255,255,255,0.9);
  --buyer-line: rgba(15, 23, 42, 0.10);
  --buyer-green: #0f766e;
  --buyer-green-2: #16a34a;
  --buyer-orange: #f97316;
  --buyer-shadow: 0 22px 70px rgba(15, 23, 42, 0.10);
  margin: 0;
  color: var(--buyer-ink);
  background:
    radial-gradient(circle at 8% 0%, rgba(22, 163, 74, .18), transparent 32%),
    radial-gradient(circle at 96% 12%, rgba(249, 115, 22, .16), transparent 30%),
    linear-gradient(180deg, #f0fdf4 0%, var(--buyer-bg) 32%, #ffffff 100%);
}
.buyer-shell { width: min(1280px, calc(100% - 32px)); margin: 0 auto; }
.buyer-hero-v21 { display: block; padding: 16px 0 10px; background: transparent; border-bottom: 0; }
.buyer-nav { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 16px; padding: 10px 0; }
.brand-lockup { display: inline-flex; align-items: center; gap: 12px; color: inherit; text-decoration: none; }
.brand-mark { width: 44px; height: 44px; border-radius: 16px; display: grid; place-items: center; color: #fff; font-weight: 900; letter-spacing: -.05em; background: linear-gradient(135deg, var(--buyer-green), var(--buyer-green-2)); box-shadow: 0 14px 30px rgba(15, 118, 110, .22); }
.brand-lockup strong { display: block; font-size: 1.05rem; line-height: 1; }
.brand-lockup small { display: block; color: var(--buyer-muted); margin-top: 4px; }
.buyer-nav-links { display: flex; gap: 10px; align-items: center; }
.buyer-nav-links a { color: #0f172a; text-decoration: none; background: rgba(255,255,255,.72); border: 1px solid var(--buyer-line); border-radius: 999px; padding: 10px 14px; font-weight: 800; }
.buyer-nav-links a:hover { border-color: rgba(15, 118, 110, .38); color: var(--buyer-green); }
.hero-grid-v21 { display: grid; grid-template-columns: minmax(320px, .86fr) minmax(440px, 1.14fr); gap: 18px; align-items: stretch; }
.hero-copy-v21, .ai-search-panel-v21, .filter-card-v21, .assistant-card-v21, .results-toolbar-v21, .map-wrap-v21, .reservation-lookup-v21 { border: 1px solid var(--buyer-line); background: var(--buyer-card); border-radius: 28px; box-shadow: var(--buyer-shadow); backdrop-filter: blur(14px); }
.hero-copy-v21 { padding: clamp(22px, 3vw, 34px); display: flex; flex-direction: column; justify-content: center; }
.hero-copy-v21 h1 { font-size: clamp(2.15rem, 3.6vw, 3.95rem); letter-spacing: -.065em; line-height: .98; max-width: 760px; margin: 8px 0 14px; }
.buyer-v21 .eyebrow, .mini-label, .section-kicker { display: inline-flex; align-items: center; gap: 8px; text-transform: uppercase; letter-spacing: .12em; font-weight: 900; font-size: .74rem; color: var(--buyer-green); }
.hero-copy-v21 .subtitle { color: #475569; font-size: clamp(.98rem, 1.18vw, 1.1rem); line-height: 1.62; max-width: 680px; }
.hero-trust-row { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 18px; }
.hero-trust-row span { border: 1px solid rgba(15, 118, 110, .16); background: #ecfdf5; color: #065f46; border-radius: 999px; padding: 8px 11px; font-weight: 800; font-size: .88rem; }
.ai-search-panel-v21 { padding: 22px; display: flex; flex-direction: column; gap: 14px; }
.panel-title-row, .section-title-row-v21 { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.panel-title-row h2, .filter-card-v21 h2, .assistant-card-v21 h2, .results-toolbar-v21 h2, .reservation-lookup-v21 h2 { margin: 5px 0 0; letter-spacing: -.035em; }
.ai-live-badge { background: #dcfce7; color: #166534; border-radius: 999px; padding: 7px 10px; font-size: .78rem; font-weight: 900; white-space: nowrap; }
.ai-search-box-v21 { display: grid; grid-template-columns: 1fr auto; gap: 10px; align-items: stretch; }
.ai-search-box-v21 textarea { min-height: 92px; resize: vertical; border-radius: 20px; padding: 15px; border: 1px solid var(--buyer-line); box-shadow: inset 0 1px 0 rgba(255,255,255,.55); font: inherit; line-height: 1.45; background: #fff; }
.button-primary-lg { min-width: 132px; border-radius: 20px; background: linear-gradient(135deg, var(--buyer-green), var(--buyer-green-2)); color: #fff; font-weight: 950; border: none; box-shadow: 0 16px 28px rgba(22, 163, 74, .22); }
.prompt-chips-v21, .ai-quick-replies-v21 { display: flex; flex-wrap: wrap; gap: 8px; }
.prompt-chips-v21 button, .ai-quick-replies-v21 button { background: #fff; color: #0f172a; border: 1px solid var(--buyer-line); border-radius: 999px; padding: 9px 12px; font-weight: 800; box-shadow: none; }
.prompt-chips-v21 button:hover, .ai-quick-replies-v21 button:hover { border-color: rgba(15,118,110,.4); color: var(--buyer-green); transform: translateY(-1px); }
.ai-result-v21 { border-radius: 18px; background: #f8fafc; color: #334155; border: 1px solid var(--buyer-line); padding: 13px 14px; min-height: 50px; line-height: 1.5; }
.ai-result-v21 ul { margin: 8px 0 0 18px; padding: 0; }
.buyer-layout-v21 { display: grid; grid-template-columns: 330px minmax(0, 1fr); gap: 18px; align-items: start; padding: 8px 0 48px; }
.buyer-sidebar-v21 { display: grid; gap: 16px; position: sticky; top: 12px; }
.filter-card-v21, .assistant-card-v21, .results-toolbar-v21, .map-wrap-v21, .reservation-lookup-v21 { padding: 18px; }
.smart-filter-stack { display: grid; gap: 12px; margin-top: 14px; }
.smart-filter-stack label { display: grid; gap: 6px; color: #334155; font-size: .88rem; font-weight: 850; }
.buyer-v21 input, .buyer-v21 select, .buyer-v21 textarea { border: 1px solid var(--buyer-line); border-radius: 14px; padding: 12px 13px; font: inherit; background: #fff; outline: none; }
.buyer-v21 input:focus, .buyer-v21 select:focus, .buyer-v21 textarea:focus { border-color: rgba(15, 118, 110, .55); box-shadow: 0 0 0 4px rgba(20, 184, 166, .10); }
.two-col-v21 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.location-button-v21 { width: 100%; background: #0f172a; color: #fff; border-radius: 16px; min-height: 46px; }
.manual-location-v21 { border: 1px dashed var(--buyer-line); border-radius: 16px; padding: 11px; background: #f8fafc; }
.manual-location-v21 summary { cursor: pointer; font-weight: 900; color: #475569; }
.full-width { width: 100%; margin-top: 10px; }
.filter-actions-v21 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.filter-actions-v21 button:first-child, .chat-form-v21 button, .reservation-drawer-v21 button[type="submit"], .lookup-row-v21 button { background: var(--buyer-green); color: #fff; }
.active-filters { margin-top: 14px; }
.assistant-card-v21 { overflow: hidden; }
.chat-messages-v21 { display: grid; gap: 10px; max-height: 360px; overflow: auto; padding: 10px; border-radius: 18px; background: #f8fafc; border: 1px solid var(--buyer-line); margin: 14px 0 10px; }
.chat-bubble { max-width: 92%; border-radius: 18px; padding: 11px 13px; line-height: 1.45; font-size: .94rem; }
.chat-bubble.ai { justify-self: start; background: #ecfdf5; color: #064e3b; border-bottom-left-radius: 6px; }
.chat-bubble.user { justify-self: end; background: #0f172a; color: #fff; border-bottom-right-radius: 6px; }
.chat-form-v21 { display: grid; grid-template-columns: 1fr auto; gap: 8px; margin-top: 10px; }
.chat-form-v21 input { min-width: 0; }
.buyer-content-v21 { display: grid; gap: 16px; }
.results-toolbar-v21 { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.toolbar-meta-v21 { display: flex; align-items: center; justify-content: flex-end; gap: 10px; flex-wrap: wrap; }
.result-count-v21 { border-radius: 999px; background: #0f172a; color: #fff; padding: 9px 13px; font-weight: 900; }
.map-wrap-v21 { padding: 10px; overflow: hidden; }
.offers-map-v21 { width: 100%; height: 330px; border-radius: 22px; overflow: hidden; background: #f8fafc; border: 1px solid var(--buyer-line); }
.ai-recommended-v21 { border: 1px solid rgba(15, 118, 110, .18); background: #ecfdf5; border-radius: 28px; padding: 18px; box-shadow: var(--buyer-shadow); }
.ai-product-row-v21 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 14px; }
.offers-grid-v21 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.offer-card-v21 { overflow: hidden; border: 1px solid var(--buyer-line); border-radius: 26px; background: rgba(255,255,255,.92); box-shadow: 0 18px 45px rgba(15,23,42,.08); transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.offer-card-v21:hover { transform: translateY(-3px); border-color: rgba(15, 118, 110, .28); box-shadow: 0 24px 55px rgba(15,23,42,.12); }
.image-link-v21 { position: relative; display: block; color: inherit; text-decoration: none; }
.offer-image-v21 { width: 100%; height: 205px; object-fit: cover; background: #f8fafc; display: grid; place-items: center; color: #94a3b8; font-weight: 900; }
.discount-pill-v21 { position: absolute; top: 12px; right: 12px; border-radius: 999px; padding: 8px 10px; font-weight: 950; color: #fff; background: linear-gradient(135deg, var(--buyer-orange), #ef4444); box-shadow: 0 10px 22px rgba(239,68,68,.24); }
.offer-body-v21 { padding: 15px; }
.offer-top-v21 { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 9px; }
.availability-v21 { color: #64748b; font-size: .82rem; font-weight: 800; }
.offer-card-v21 h3 { margin: 0 0 6px; letter-spacing: -.025em; line-height: 1.15; }
.offer-card-v21 h3 a { color: inherit; text-decoration: none; }
.offer-card-v21 h3 a:hover { color: var(--buyer-green); }
.price-v21 { font-size: 1.25rem; margin: 10px 0; }
.price-v21 strong { color: var(--buyer-green); font-size: 1.35rem; }
.store-line-v21 { margin: 8px 0 4px; color: #334155; }
.offer-meta-v21 { display: grid; gap: 4px; margin: 12px 0; color: #64748b; font-size: .88rem; }
.offer-actions-v21 { display: flex; gap: 8px; flex-wrap: wrap; }
.offer-actions-v21 button, .offer-actions-v21 .link-button { flex: 1 1 auto; text-align: center; border-radius: 14px; padding: 10px 12px; }
.compact-offer-v21 .offer-image-v21 { height: 150px; }
.compact-offer-v21 .offer-actions-v21 { display: none; }
.reservation-drawer-v21 { position: fixed; inset: 0; background: rgba(15, 23, 42, .52); backdrop-filter: blur(8px); z-index: 1200; display: grid; place-items: center; padding: 18px; }
.drawer-card-v21 { position: relative; width: min(760px, 100%); max-height: 92vh; overflow: auto; border-radius: 28px; background: #fff; padding: 22px; box-shadow: 0 28px 90px rgba(15,23,42,.35); }
.drawer-close { position: absolute; top: 16px; right: 16px; width: 42px; height: 42px; border-radius: 999px; background: #f1f5f9; color: #0f172a; font-size: 1.4rem; padding: 0; }
.reservation-lookup-v21 { display: grid; gap: 12px; }
.lookup-row-v21 { display: grid; grid-template-columns: 1fr auto; gap: 10px; }
.lookup-card-v21 { border: 1px solid var(--buyer-line); border-radius: 18px; background: #f8fafc; padding: 15px; }
.empty-state-v21 { grid-column: 1 / -1; border: 1px dashed rgba(15, 118, 110, .35); background: #f8fafc; border-radius: 24px; padding: 28px; text-align: center; }
.empty-state-v21 h3 { margin-top: 0; }
.skeleton-card-v21 { padding: 14px; }
.skeleton { background: linear-gradient(90deg, #f1f5f9, #e2e8f0, #f1f5f9); background-size: 200% 100%; animation: shimmer 1.2s infinite linear; border-radius: 14px; }
.skeleton-img { height: 190px; }
.skeleton-line { height: 18px; margin-top: 14px; }
.skeleton-line.small { width: 62%; }
@keyframes shimmer { to { background-position: -200% 0; } }
.spinner-dot { width: 13px; height: 13px; display: inline-block; border-radius: 999px; border: 2px solid rgba(255,255,255,.48); border-top-color: #fff; animation: spin .75s linear infinite; margin-right: 8px; vertical-align: -2px; }
.secondary .spinner-dot, .prompt-chips-v21 .spinner-dot, .ai-quick-replies-v21 .spinner-dot { border-color: rgba(15,23,42,.25); border-top-color: var(--buyer-green); }
@keyframes spin { to { transform: rotate(360deg); } }
button.is-loading { cursor: wait; opacity: .86; }
.buyer-v21 button { transition: transform .15s ease, box-shadow .15s ease, opacity .15s ease; }
.buyer-v21 button:not(:disabled):hover { transform: translateY(-1px); }
@media (max-width: 1180px) {
  .hero-grid-v21, .buyer-layout-v21 { grid-template-columns: 1fr; }
  .buyer-sidebar-v21 { position: static; grid-template-columns: 1fr 1fr; }
  .offers-grid-v21 { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 820px) {
  .buyer-shell { width: min(100% - 20px, 1380px); }
  .buyer-nav { align-items: flex-start; }
  .hero-copy-v21 h1 { font-size: 2.5rem; }
  .ai-search-box-v21, .buyer-sidebar-v21, .ai-product-row-v21, .offers-grid-v21, .lookup-row-v21 { grid-template-columns: 1fr; }
  .ai-search-box-v21 button { min-height: 54px; }
  .results-toolbar-v21 { flex-direction: column; align-items: flex-start; }
  .offers-map-v21 { height: 340px; }
  .two-col-v21 { grid-template-columns: 1fr; }
}
@media (max-width: 540px) {
  .buyer-nav-links a { padding: 8px 10px; font-size: .88rem; }
  .hero-copy-v21, .ai-search-panel-v21, .filter-card-v21, .assistant-card-v21, .results-toolbar-v21, .reservation-lookup-v21 { border-radius: 22px; padding: 15px; }
  .offer-image-v21 { height: 180px; }
  .offer-actions-v21 { display: grid; grid-template-columns: 1fr; }
}


/* V22 buyer polish: compact professional hero and explicit overrides for global admin CSS */
header.buyer-hero-v21 {
  display: block;
  align-items: initial;
  justify-content: initial;
  gap: 0;
  padding-top: 16px;
  padding-bottom: 10px;
}
main.buyer-layout-v21 {
  max-width: min(1280px, calc(100% - 32px));
  padding-left: 0;
  padding-right: 0;
}
.buyer-v21 .hero-copy-v21,
.buyer-v21 .ai-search-panel-v21 {
  min-height: 0;
}
.buyer-v21 .ai-search-panel-v21 h2 { font-size: clamp(1.4rem, 2.1vw, 2rem); }
.buyer-v21 .prompt-chips-v21 button { padding: 8px 11px; }
.buyer-v21 .ai-result-v21 { min-height: 46px; }
.buyer-v21 .filter-card-v21,
.buyer-v21 .assistant-card-v21,
.buyer-v21 .results-toolbar-v21,
.buyer-v21 .reservation-lookup-v21 { padding: 16px; }
.buyer-v21 .results-toolbar-v21 h2,
.buyer-v21 .filter-card-v21 h2,
.buyer-v21 .assistant-card-v21 h2 { font-size: 1.35rem; }
@media (min-width: 1181px) {
  .buyer-v21 .hero-grid-v21 { grid-template-columns: .88fr 1.12fr; }
}
@media (max-width: 1180px) {
  header.buyer-hero-v21 { padding-top: 12px; }
  .buyer-v21 .hero-grid-v21 { grid-template-columns: 1fr; }
}
@media (max-width: 820px) {
  main.buyer-layout-v21 { max-width: min(100% - 20px, 1280px); }
  .buyer-v21 .hero-copy-v21 h1 { font-size: 2.25rem; }
  .buyer-v21 .brand-lockup span:last-child { display: none; }
}

/* V26 — digitalna karta rezervacije i seller check-in */
.ticket-page-v26 {
  background: radial-gradient(circle at top left, #dcfce7, transparent 28rem), linear-gradient(135deg, #f8fafc 0%, #ecfeff 100%);
  color: #0f172a;
  min-height: 100vh;
}
.ticket-header-v26 {
  width: min(1120px, calc(100% - 32px));
  margin: 24px auto 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 18px;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 24px;
  background: rgba(255,255,255,0.86);
  backdrop-filter: blur(16px);
  box-shadow: 0 14px 45px rgba(15,23,42,0.08);
}
.ticket-shell-v26 {
  width: min(1120px, calc(100% - 32px));
  margin: 28px auto 64px;
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: 22px;
}
.ticket-search-card-v26,
.reservation-ticket-v26 {
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 28px;
  background: rgba(255,255,255,0.92);
  box-shadow: 0 18px 60px rgba(15,23,42,0.08);
  padding: 28px;
}
.ticket-search-card-v26 h1 {
  font-size: clamp(2rem, 5vw, 4rem);
  letter-spacing: -0.06em;
  line-height: 0.95;
  margin: 8px 0 16px;
}
.ticket-code-row-v26 {
  display: flex;
  gap: 10px;
  align-items: stretch;
  margin: 18px 0 12px;
}
.ticket-code-row-v26 input {
  flex: 1;
  min-width: 0;
}
.ticket-top-v26 {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-start;
  border-bottom: 1px dashed rgba(15,23,42,0.18);
  padding-bottom: 20px;
  margin-bottom: 20px;
}
.ticket-code-big-v26 {
  font-size: clamp(2.2rem, 7vw, 5.4rem);
  line-height: 0.9;
  letter-spacing: 0.05em;
  font-weight: 950;
  color: #0f172a;
}
.ticket-status-v26 {
  border-radius: 999px;
  padding: 10px 16px;
  font-weight: 900;
  background: #eef2ff;
  color: #3730a3;
  white-space: nowrap;
}
.ticket-status-confirmed { background: #dcfce7; color: #166534; }
.ticket-status-pending { background: #fef3c7; color: #92400e; }
.ticket-status-picked_up { background: #dbeafe; color: #1d4ed8; }
.ticket-status-cancelled, .ticket-status-expired { background: #fee2e2; color: #991b1b; }
.ticket-visual-code-v26 {
  display: flex;
  align-items: end;
  justify-content: center;
  gap: 4px;
  height: 96px;
  padding: 18px;
  margin: 16px 0 22px;
  border-radius: 22px;
  background: repeating-linear-gradient(45deg, #f8fafc, #f8fafc 12px, #f1f5f9 12px, #f1f5f9 24px);
  border: 1px solid rgba(15,23,42,0.08);
}
.ticket-visual-code-v26 span {
  display: block;
  height: 64px;
  border-radius: 4px;
  background: #0f172a;
}
.ticket-grid-v26 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 12px;
}
.ticket-grid-v26 div {
  padding: 14px;
  border-radius: 18px;
  background: #f8fafc;
  border: 1px solid rgba(15,23,42,0.06);
}
.ticket-grid-v26 span {
  display: block;
  color: #64748b;
  font-size: 0.82rem;
  margin-bottom: 4px;
}
.ticket-grid-v26 strong { color: #0f172a; }
.ticket-note-v26 {
  margin-top: 18px;
  padding: 16px;
  border-radius: 20px;
  background: #ecfdf5;
  color: #064e3b;
  border: 1px solid #bbf7d0;
}
.ticket-note-v26 p { margin: 6px 0 0; }
.ticket-actions-v26 {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
}
.cancel-box-v26 {
  margin-top: 18px;
  padding: 16px;
  border-radius: 20px;
  background: #fff7ed;
  border: 1px solid #fed7aa;
}
.reservation-success-v26 {
  white-space: normal;
  text-align: left;
  border-radius: 18px;
  background: #ecfdf5;
  border: 1px solid #bbf7d0;
  padding: 16px;
}
.reservation-success-v26 h3 { margin: 6px 0; font-size: 1.7rem; letter-spacing: 0.03em; }
.seller-code-check-v26 {
  display: flex;
  gap: 10px;
  align-items: stretch;
  margin-top: 14px;
}
.seller-code-check-v26 input { flex: 1; min-width: 220px; }
.seller-check-result-v26 {
  margin-top: 14px;
  padding: 16px;
  border-radius: 20px;
  background: #f8fafc;
  border: 1px solid rgba(15,23,42,0.08);
}
.seller-ticket-card-v26 h3 {
  margin: 4px 0 10px;
  font-size: 2.4rem;
  letter-spacing: 0.04em;
}
.seller-ticket-grid-v26 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 8px 14px;
  margin: 12px 0;
}
.seller-ticket-grid-v26 p { margin: 0; }
@media (max-width: 860px) {
  .ticket-shell-v26 { grid-template-columns: 1fr; }
  .ticket-code-row-v26, .seller-code-check-v26 { flex-direction: column; }
  .ticket-grid-v26, .seller-ticket-grid-v26 { grid-template-columns: 1fr; }
  .ticket-header-v26 { align-items: flex-start; flex-direction: column; }
}
@media print {
  .ticket-header-v26, .ticket-search-card-v26, .ticket-actions-v26, .cancel-box-v26, #toast { display: none !important; }
  .ticket-shell-v26 { display: block; margin: 0; width: 100%; }
  .reservation-ticket-v26 { box-shadow: none; border: 2px solid #111827; }
  body { background: white !important; }
}


/* V27 expanded buyer search: cities, categories, districts */
.search-expander-v27 {
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid rgba(15,118,110,.12);
  background: linear-gradient(180deg, rgba(240,253,250,.78), rgba(255,255,255,.88));
  border-radius: 20px;
}
.search-expander-v27 span {
  display: block;
  margin-bottom: 8px;
  font-size: .78rem;
  font-weight: 900;
  color: #0f766e;
  text-transform: uppercase;
  letter-spacing: .09em;
}
.taxonomy-chip-row { display: flex; flex-wrap: wrap; gap: 7px; }
.taxonomy-chip-row button {
  border: 1px solid rgba(15,23,42,.08);
  background: #fff;
  color: #334155;
  box-shadow: none;
  padding: 7px 10px;
  border-radius: 999px;
  font-size: .84rem;
  font-weight: 800;
}
.taxonomy-chip-row button:hover { border-color: rgba(15,118,110,.38); color: #0f766e; background: #f0fdfa; }
.toggle-line-v27 {
  display: flex !important;
  align-items: center;
  gap: 10px;
  border: 1px solid var(--buyer-line);
  border-radius: 14px;
  padding: 11px 13px;
  color: #334155 !important;
  background: #fff;
  font-weight: 800;
}
.toggle-line-v27 input { width: auto; min-width: 18px; height: 18px; accent-color: #0f766e; }
@media (min-width: 880px) { .search-expander-v27 { grid-template-columns: 1fr 1.2fr; } }

/* V28 payments, commission and loyalty */
.payment-preview-v28,
.payment-box-v28 {
  background: linear-gradient(135deg, rgba(15,118,110,.09), rgba(22,163,74,.06));
  border: 1px solid rgba(15,118,110,.18);
  border-radius: 18px;
  padding: 14px;
  color: #0f172a;
}
.payment-box-v28 { display: grid; gap: 8px; }
.payment-row-v28 {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: center;
  padding: 6px 0;
  border-bottom: 1px solid rgba(15,118,110,.10);
}
.payment-row-v28:last-child { border-bottom: 0; }
.payment-row-v28.total {
  font-size: 1.05rem;
  border-top: 1px solid rgba(15,118,110,.25);
  margin-top: 4px;
  padding-top: 10px;
}
.payment-note-v28 {
  margin: 4px 0 0;
  font-size: .88rem;
  color: #475569;
}
.payment-badge-v28 {
  display: inline-flex;
  width: fit-content;
  margin: 2px 0 8px;
  padding: 5px 9px;
  border-radius: 999px;
  background: #ecfeff;
  color: #0e7490;
  border: 1px solid #a5f3fc;
  font-size: .78rem;
  font-weight: 800;
}
.danger-text { color: #b91c1c; font-weight: 700; }
.ticket-grid-v26 div strong#ticketPayable,
.ticket-grid-v26 div strong#ticketPaymentStatus { color: #0f766e; }
@media (max-width: 720px) {
  .payment-row-v28 { align-items: flex-start; flex-direction: column; gap: 3px; }
}

/* V29 payment provider + real QR */
.checkout-page-v29 {
  background: radial-gradient(circle at top left, rgba(15, 118, 110, .12), transparent 34rem), #f8fafc;
}
.checkout-shell-v29 {
  width: min(1120px, calc(100% - 32px));
  margin: 24px auto 72px;
  display: grid;
  gap: 18px;
}
.checkout-hero-v29,
.checkout-card-v29 {
  background: rgba(255, 255, 255, .92);
  border: 1px solid rgba(15, 23, 42, .08);
  border-radius: 28px;
  box-shadow: 0 24px 70px rgba(15, 23, 42, .10);
  padding: 24px;
}
.checkout-hero-v29 h1 {
  margin: 6px 0 8px;
  font-size: clamp(2rem, 5vw, 3.4rem);
  letter-spacing: -0.05em;
}
.checkout-top-v29 {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: flex-start;
  border-bottom: 1px solid rgba(15, 23, 42, .08);
  padding-bottom: 18px;
  margin-bottom: 18px;
}
.checkout-top-v29 h2 {
  margin: 4px 0;
  font-size: 2rem;
  letter-spacing: .08em;
}
.checkout-amount-v29 {
  min-width: 220px;
  text-align: right;
  background: linear-gradient(135deg, #0f766e, #14b8a6);
  color: white;
  padding: 18px;
  border-radius: 22px;
  box-shadow: 0 16px 34px rgba(20, 184, 166, .22);
}
.checkout-amount-v29 span { display: block; opacity: .86; font-size: .86rem; }
.checkout-amount-v29 strong { display: block; margin-top: 4px; font-size: 1.55rem; }
.checkout-status-grid-v29 {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 18px;
}
.checkout-status-grid-v29 div {
  background: #f8fafc;
  border: 1px solid rgba(15, 23, 42, .07);
  border-radius: 18px;
  padding: 12px;
}
.checkout-status-grid-v29 span { display: block; color: #64748b; font-size: .78rem; }
.checkout-status-grid-v29 strong { display: block; margin-top: 4px; color: #0f172a; }
.checkout-notice-v29 {
  background: #fff7ed;
  color: #9a3412;
  border: 1px solid #fed7aa;
  border-radius: 18px;
  padding: 14px;
  margin-bottom: 18px;
}
.qr-grid-v29 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.qr-card-v29 {
  background: #ffffff;
  border: 1px solid rgba(15, 23, 42, .08);
  border-radius: 24px;
  padding: 18px;
}
.qr-card-v29 h3 { margin: 4px 0 12px; font-size: 1.25rem; }
.qr-box-v29 {
  display: grid;
  place-items: center;
  min-height: 250px;
  background: linear-gradient(180deg, #f8fafc, #eef2ff);
  border: 1px dashed rgba(15, 23, 42, .18);
  border-radius: 22px;
  padding: 16px;
}
.real-qr-v29 {
  width: min(260px, 100%);
  height: auto;
  background: white;
  border: 12px solid white;
  border-radius: 18px;
  box-shadow: 0 14px 30px rgba(15, 23, 42, .12);
}
.qr-missing-v29 {
  color: #991b1b;
  background: #fee2e2;
  border-radius: 16px;
  padding: 16px;
  text-align: center;
  font-weight: 800;
}
#ipsPayloadText {
  white-space: pre-wrap;
  word-break: break-word;
  background: #0f172a;
  color: #d1fae5;
  border-radius: 14px;
  padding: 14px;
}
@media (max-width: 820px) {
  .checkout-top-v29 { flex-direction: column; }
  .checkout-amount-v29 { width: 100%; text-align: left; }
  .checkout-status-grid-v29 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .qr-grid-v29 { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
  .checkout-status-grid-v29 { grid-template-columns: 1fr; }
}

/* V30 finance dashboard */
.finance-page-v30 { background: radial-gradient(circle at top right, #dcfce7 0, #f8fafc 34%, #eef2f7 100%); }
.finance-hero-v30 { align-items: flex-start; background: linear-gradient(135deg, #064e3b, #0f766e 48%, #14b8a6); color: #ecfdf5; }
.finance-hero-v30 .eyebrow, .finance-hero-v30 .subtitle { color: #d1fae5; }
.finance-hero-v30 h1 { font-size: clamp(2rem, 4vw, 3.4rem); line-height: 1.02; max-width: 900px; }
.finance-main-v30 { display: grid; grid-template-columns: 1fr; max-width: 1440px; gap: 1rem; }
.finance-command-v30 { display: grid; grid-template-columns: minmax(260px, .8fr) 1.4fr; gap: 1rem; align-items: center; border-color: #99f6e4; background: linear-gradient(135deg, #ffffff, #f0fdfa); }
.finance-command-copy-v30 h2 { margin: .15rem 0 .3rem; }
.finance-confirm-row-v30 { display: grid; grid-template-columns: 1fr 1fr 1fr auto; gap: .65rem; align-items: center; }
.finance-stats-v30 .stat-card strong { font-size: 1.45rem; color: #065f46; }
.finance-filters-v30 select { min-width: 190px; }
.pay-paid, .payout-paid { background: #dcfce7; color: #166534; }
.pay-payment_pending, .payout-pending { background: #fef3c7; color: #92400e; }
.pay-refunded, .payout-blocked { background: #fee2e2; color: #991b1b; }
.pay-unpaid, .payout-not_ready { background: #e5e7eb; color: #374151; }
@media (max-width: 960px) { .finance-command-v30, .finance-confirm-row-v30 { grid-template-columns: 1fr; } }

/* V31 — Customer account and loyalty page */
.customer-v31 { background: #f6f7f4; color: #12211d; }
.customer-hero-v31 { padding-top: 20px; }
.customer-hero-grid-v31 {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
  gap: 24px;
  align-items: stretch;
  padding: 28px 0 18px;
}
.customer-hero-grid-v31 h1 { font-size: clamp(2rem, 4vw, 4rem); line-height: .98; margin: 8px 0 14px; max-width: 820px; }
.customer-lookup-card-v31 {
  background: rgba(255,255,255,.88);
  border: 1px solid rgba(15,118,110,.16);
  box-shadow: 0 18px 60px rgba(15, 23, 42, .09);
  border-radius: 28px;
  padding: 22px;
  display: grid;
  gap: 14px;
  align-self: center;
}
.customer-lookup-card-v31 input { font-size: 1.05rem; }
.customer-main-v31 { padding-bottom: 48px; }
.customer-toolbar-v31 { display: flex; justify-content: space-between; gap: 18px; align-items: flex-start; margin: 22px 0; }
.customer-stats-v31 {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 18px;
}
.customer-loyalty-v31 { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(320px, .7fr); gap: 16px; margin: 18px 0 24px; }
.loyalty-card-v31, .insight-card-v31, .customer-reservation-card-v31 {
  background: #fff;
  border: 1px solid rgba(15, 118, 110, .13);
  border-radius: 26px;
  box-shadow: 0 14px 45px rgba(15, 23, 42, .07);
}
.loyalty-card-v31 { padding: 24px; display: grid; grid-template-columns: 1fr 220px; gap: 22px; align-items: center; }
.loyalty-meter-wrap-v31 { display: grid; gap: 8px; }
.loyalty-meter-v31 { height: 16px; border-radius: 999px; background: #e6eee9; overflow: hidden; }
.loyalty-meter-v31 span { display: block; height: 100%; min-width: 4px; background: linear-gradient(90deg, #0f766e, #84cc16); border-radius: inherit; transition: width .35s ease; }
.loyalty-scale-v31 { display: flex; justify-content: space-between; font-size: .78rem; color: #66746e; }
.customer-insights-v31 { display: grid; gap: 16px; }
.insight-card-v31 { padding: 18px; }
.insight-card-v31 div { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.insight-card-v31 span { display: inline-flex; padding: 7px 10px; border-radius: 999px; background: #eff8f4; color: #0f766e; font-weight: 700; font-size: .82rem; }
.customer-reservations-v31 { margin-top: 18px; }
.customer-reservation-list-v31 { display: grid; gap: 14px; }
.customer-reservation-card-v31 { padding: 18px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(240px, .35fr); gap: 18px; }
.customer-reservation-card-v31 h3 { margin: 6px 0 8px; font-size: 1.18rem; }
.customer-reservation-side-v31 { display: flex; flex-direction: column; gap: 8px; align-items: flex-start; }
.customer-reservation-side-v31 strong { font-size: 1.25rem; }
.customer-reservation-side-v31 small { color: #0f766e; font-weight: 800; }
@media (max-width: 980px) {
  .customer-hero-grid-v31, .customer-loyalty-v31, .loyalty-card-v31, .customer-reservation-card-v31 { grid-template-columns: 1fr; }
  .customer-stats-v31 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .customer-toolbar-v31 { flex-direction: column; }
}

/* V32 — Customer OTP login */
.customer-v32 .otp-card-v32 { position: relative; overflow: hidden; }
.otp-step-v32 { display: none; gap: 14px; }
.otp-step-v32.active { display: grid; animation: fadeInUp .22s ease both; }
.otp-info-v32 {
  border: 1px solid rgba(15, 118, 110, .18);
  background: linear-gradient(135deg, #ecfdf5, #f8fafc);
  color: #0f3f38;
  border-radius: 18px;
  padding: 14px;
  font-weight: 700;
  line-height: 1.45;
}
.dev-code-v32 {
  display: inline-flex;
  letter-spacing: .18em;
  font-size: 1.35rem;
  background: #0f766e;
  color: white;
  border-radius: 12px;
  padding: 6px 10px;
  margin: 4px 0;
}
.otp-actions-v32 { display: grid; grid-template-columns: 1fr auto; align-items: center; }
@keyframes fadeInUp { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 620px) { .otp-actions-v32 { grid-template-columns: 1fr; } }


/* V33 admin security */
.danger-link { background: #fee2e2 !important; color: #991b1b !important; border-color: #fecaca !important; }
.admin-login-body-v33 { min-height: 100vh; margin: 0; background: radial-gradient(circle at top left, #dcfce7, transparent 34%), linear-gradient(135deg, #052e2b, #0f766e 54%, #16a34a); color: #0f172a; font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.admin-login-shell-v33 { min-height: 100vh; display: grid; place-items: center; padding: 24px; box-sizing: border-box; }
.admin-login-card-v33 { width: min(560px, 100%); background: rgba(255,255,255,.94); border: 1px solid rgba(255,255,255,.58); border-radius: 30px; padding: clamp(24px, 5vw, 42px); box-shadow: 0 30px 90px rgba(2,6,23,.24); backdrop-filter: blur(12px); }
.admin-login-card-v33 h1 { font-size: clamp(34px, 8vw, 58px); line-height: .95; margin: 8px 0 14px; letter-spacing: -.05em; color: #052e2b; }
.admin-login-form-v33 { display: grid; gap: 14px; margin-top: 24px; }
.admin-login-form-v33 label { display: grid; gap: 8px; font-weight: 900; color: #334155; }
.admin-login-form-v33 input { border: 1px solid #cbd5e1; border-radius: 16px; padding: 15px 16px; font-size: 18px; background: #fff; }
.admin-login-form-v33 button { border: 0; border-radius: 16px; padding: 15px 18px; font-weight: 950; font-size: 16px; cursor: pointer; color: white; background: linear-gradient(135deg, #0f766e, #16a34a); box-shadow: 0 14px 32px rgba(15,118,110,.22); }
.admin-login-form-v33 button:disabled { opacity: .65; cursor: wait; }
.admin-login-message-v33 { margin-top: 16px; background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 16px; padding: 12px 14px; color: #475569; line-height: 1.45; }
.admin-login-links-v33 { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 18px; }
.admin-login-links-v33 a { text-decoration: none; color: #0f766e; background: #ecfdf5; border: 1px solid #bbf7d0; border-radius: 999px; padding: 9px 13px; font-weight: 900; }

/* V35 production readiness bundle */
.compact-hero-v35 { padding: 1.35rem 2rem; align-items: flex-start; }
.compact-hero-v35 h1 { font-size: clamp(1.8rem, 3.2vw, 3rem); }
.ops-main-v35 { grid-template-columns: 1fr; max-width: 1320px; }
.module-grid-v35 { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: .85rem; }
.module-grid-v35 a { display: grid; gap: .25rem; text-decoration: none; color: var(--text); padding: 1rem; border: 1px solid var(--border); border-radius: 16px; background: #f8fafc; transition: .18s ease; }
.module-grid-v35 a:hover { transform: translateY(-2px); box-shadow: var(--shadow); border-color: #9ae6b4; }
.module-grid-v35 a strong { color: var(--accent-dark); }
.module-grid-v35 a span { color: var(--muted); font-size: .9rem; }
.small-modules-v35 a { place-content: center; min-height: 64px; font-weight: 800; }
.readiness-box-v35 { display: grid; gap: .65rem; margin-top: 1rem; }
.check-row-v35 { display: grid; grid-template-columns: 40px 1fr; gap: .75rem; align-items: start; padding: .85rem; border: 1px solid var(--border); border-radius: 14px; background: #fff; }
.check-row-v35 span { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 999px; font-weight: 900; }
.check-row-v35.ok span { background: #dcfce7; color: #166534; }
.check-row-v35.bad span { background: #fef3c7; color: #92400e; }
.check-row-v35 p { margin: .15rem 0 0; color: var(--muted); }
.json-editor-v35 { width: 100%; min-height: 540px; border: 1px solid var(--border); border-radius: 14px; padding: 1rem; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .92rem; background: #0f172a; color: #d1fae5; }
.legal-text-v35 { max-width: 900px; line-height: 1.7; }
.legal-text-v35 h2 { margin-top: 1.35rem; }
.status-panel.loading { background: #fff7ed; border: 1px solid #fed7aa; color: #9a3412; }
.stat-card small { display: block; color: var(--muted); margin-top: .25rem; }
textarea { width: 100%; padding: .75rem .85rem; border: 1px solid var(--border); border-radius: 12px; font: inherit; background: #fff; color: var(--text); }
@media (max-width: 760px) { .compact-hero-v35 { padding: 1rem; } }

/* V36 Pilot Ready Platform */
.pilot-v36, .seller-pro-v36, .customer-plus-v36 {
  background: radial-gradient(circle at top left, #f0fdf4 0, #f8fafc 42%, #eef2ff 100%);
}
.pilot-hero-v36 { border-color: rgba(34,197,94,.25); }
.pilot-main-v36 { max-width: 1360px; }
.pilot-box-v36 { margin-top: 1rem; }
.tall-log-v36 { min-height: 280px; max-height: 520px; white-space: pre-wrap; }
.seller-hero-v36 { border-radius: 24px; max-width: 1320px; margin: 0 auto 1rem; }
.seller-pro-main-v36 { max-width: 1320px; }
.stat-card small { display:block; color: var(--muted); margin-top:.25rem; font-size:.78rem; }
.lookup-card + .lookup-card { margin-top:.65rem; }
.pilot-v36 .module-grid-v35 a,
.customer-plus-v36 .lookup-card,
.seller-pro-v36 .offer-card {
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.pilot-v36 .module-grid-v35 a:hover,
.seller-pro-v36 .offer-card:hover { transform: translateY(-2px); box-shadow: 0 18px 40px rgba(15,23,42,.10); border-color: rgba(22,163,74,.25); }
@media (max-width: 760px) {
  .pilot-v36 .top-actions, .seller-pro-v36 .top-actions { width: 100%; }
  .pilot-v36 .top-actions a, .seller-pro-v36 .top-actions a { flex: 1; text-align: center; }
}

/* V37 Growth & Scale Suite */
.scale-hero {
  background: linear-gradient(135deg, #ecfdf5 0%, #ffffff 46%, #fff7ed 100%);
  align-items: flex-start;
}
.top-nav { display:flex; gap:.5rem; flex-wrap:wrap; justify-content:flex-end; }
.scale-main { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.scale-actions { margin-top: 1rem; }
.scale-ai-grid { display:grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap:.75rem; }
.mini-card { background:#f8fafc; border:1px solid var(--border); border-radius:16px; padding:.85rem; }
.mini-card p { margin:.45rem 0; }
.priority-high { border-left:5px solid #dc2626; }
.priority-medium { border-left:5px solid #f59e0b; }
.priority-low { border-left:5px solid #16a34a; }
.compact-table table { min-width: 720px; }
.simple-inline { grid-template-columns: 1fr auto; }
.muted-box { background:#f8fafc; color:var(--text); }
@media(max-width: 1100px){ .scale-ai-grid{grid-template-columns:1fr;} .scale-main{grid-template-columns:1fr;} }

/* V39 — Expansion OS */
.expansion-v39 { background: radial-gradient(circle at top right, #e0f2fe 0, #f8fafc 34%, #f0fdf4 100%); }
.expansion-hero-v39 { background: linear-gradient(135deg, #052e2b 0%, #0f766e 56%, #16a34a 100%); color: #ecfdf5; }
.expansion-hero-v39 .eyebrow, .expansion-hero-v39 .subtitle { color: #d1fae5; }
.expansion-hero-v39 h1 { font-size: clamp(2rem, 4vw, 3.6rem); line-height: 1.02; max-width: 1020px; }
.expansion-main-v39 { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 1480px; }
.expansion-command-v39 { border-color: rgba(22, 163, 74, .25); background: linear-gradient(135deg, #ffffff 0%, #f0fdfa 100%); }
.memo-box-v39 { margin-top: 1rem; white-space: pre-wrap; min-height: 120px; background: #0f172a; color: #d1fae5; border-radius: 18px; padding: 1rem; line-height: 1.55; overflow:auto; }
.route-box-v39 { margin: .8rem 0; display:grid; gap:.75rem; }
.expansion-v39 .card h2 { letter-spacing: -.02em; }
.expansion-v39 .wide-field { grid-column: 1 / -1; }
.expansion-v39 .status { display:inline-flex; align-items:center; border-radius:999px; background:#ecfdf5; color:#047857; border:1px solid #bbf7d0; padding:.25rem .55rem; font-weight:800; font-size:.78rem; }
.expansion-v39 .scale-ai-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 1100px) { .expansion-main-v39, .expansion-v39 .scale-ai-grid { grid-template-columns: 1fr; } }

/* V44 — professional consumer application */
:root {
  --consumer44-bg: #f6faf8;
  --consumer44-surface: #ffffff;
  --consumer44-surface-2: #eefbf6;
  --consumer44-text: #0f172a;
  --consumer44-muted: #64748b;
  --consumer44-border: #dbe8e2;
  --consumer44-primary: #0f766e;
  --consumer44-primary-2: #14b8a6;
  --consumer44-accent: #f59e0b;
  --consumer44-danger: #dc2626;
  --consumer44-shadow: 0 24px 70px rgba(15, 23, 42, .10);
  --consumer44-radius: 26px;
}
.consumer44-body { margin: 0; background: radial-gradient(circle at 12% 0%, #d9fff5 0, transparent 34%), radial-gradient(circle at 90% 10%, #fff4d6 0, transparent 28%), var(--consumer44-bg); color: var(--consumer44-text); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.consumer44-app { min-height: 100vh; padding-bottom: 84px; }
.consumer44-topbar { position: sticky; top: 0; z-index: 80; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 14px clamp(16px, 4vw, 48px); background: rgba(255,255,255,.84); backdrop-filter: blur(18px); border-bottom: 1px solid rgba(219,232,226,.75); }
.consumer44-brand { display:flex; align-items:center; gap:10px; color: var(--consumer44-text); text-decoration:none; }
.consumer44-logo { width: 42px; height: 42px; border-radius: 14px; display:grid; place-items:center; background: linear-gradient(135deg, var(--consumer44-primary), var(--consumer44-primary-2)); color:#fff; font-weight:900; box-shadow: 0 14px 28px rgba(15,118,110,.22); }
.consumer44-brand strong { display:block; line-height:1; }
.consumer44-brand small { display:block; color: var(--consumer44-muted); font-weight:700; letter-spacing:.08em; text-transform:uppercase; font-size:10px; }
.consumer44-toplinks { display:flex; align-items:center; gap: 14px; flex-wrap:wrap; }
.consumer44-toplinks a { color: var(--consumer44-muted); text-decoration:none; font-weight:800; font-size:14px; }
.consumer44-toplinks a:hover { color: var(--consumer44-primary); }
.consumer44-install { border:0; border-radius:999px; padding:10px 15px; background:#0f172a; color:#fff; font-weight:900; }
.hidden { display:none !important; }
.consumer44-hero { max-width: 1240px; margin: 0 auto; padding: clamp(26px, 5vw, 56px) clamp(16px, 4vw, 32px) 22px; display:grid; grid-template-columns: minmax(0, .95fr) minmax(360px, .72fr); gap: 26px; align-items:stretch; }
.consumer44-hero-copy { padding: clamp(22px, 4vw, 38px); border:1px solid rgba(219,232,226,.72); border-radius: calc(var(--consumer44-radius) + 8px); background: linear-gradient(135deg, rgba(255,255,255,.86), rgba(238,251,246,.82)); box-shadow: var(--consumer44-shadow); }
.consumer44-eyebrow, .consumer44-mini { display:inline-flex; align-items:center; gap:8px; color: var(--consumer44-primary); text-transform:uppercase; letter-spacing:.12em; font-weight:950; font-size:11px; }
.consumer44-hero h1 { margin: 14px 0; font-size: clamp(36px, 6vw, 74px); letter-spacing: -.07em; line-height: .94; max-width: 900px; }
.consumer44-hero p { color: #475569; font-size: 17px; line-height:1.75; max-width: 720px; }
.consumer44-trust { display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }
.consumer44-trust span { background:#fff; border:1px solid var(--consumer44-border); border-radius:999px; padding:10px 13px; font-weight:850; color:#0f513f; box-shadow:0 8px 18px rgba(15,23,42,.05); }
.consumer44-command-card, .consumer44-card { background: rgba(255,255,255,.92); border:1px solid var(--consumer44-border); border-radius: var(--consumer44-radius); box-shadow: var(--consumer44-shadow); padding: 22px; }
.consumer44-command-card { display:flex; flex-direction:column; gap: 14px; }
.consumer44-command-head, .consumer44-card-title, .consumer44-section-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.consumer44-command-head h2, .consumer44-card h2, .consumer44-toolbar h2 { margin:4px 0 0; letter-spacing:-.04em; }
.consumer44-ai-badge { background:#ecfeff; border:1px solid #99f6e4; color:#0f766e; font-weight:950; border-radius:999px; padding:8px 11px; font-size:12px; }
.consumer44-command-row { display:grid; grid-template-columns: 1fr auto; gap: 10px; align-items:stretch; }
.consumer44-command-row textarea, .consumer44-card input, .consumer44-card select, .consumer44-chat-form input, .consumer44-form-line input, .consumer44-reservation-form input { width:100%; border:1px solid #cfe1d9; background:#fff; border-radius:16px; padding:13px 14px; font:inherit; box-sizing:border-box; outline:none; }
.consumer44-command-row textarea:focus, .consumer44-card input:focus, .consumer44-card select:focus, .consumer44-chat-form input:focus, .consumer44-reservation-form input:focus { border-color: var(--consumer44-primary-2); box-shadow:0 0 0 4px rgba(20,184,166,.12); }
.consumer44-command-row button, .consumer44-actions-row button, .consumer44-toolbar-actions button, .consumer44-gps, .consumer44-form-line button, .consumer44-reservation-form button, .consumer44-offer-actions button, .consumer44-offer-actions a, .consumer44-actions-row a { border:0; border-radius:16px; padding:12px 16px; background: var(--consumer44-primary); color:#fff; font-weight:950; text-decoration:none; display:inline-flex; align-items:center; justify-content:center; gap:8px; cursor:pointer; box-shadow:0 12px 26px rgba(15,118,110,.18); }
.consumer44-command-row button { min-width: 136px; }
.consumer44-secondary, .consumer44-toolbar-actions button:not(.active), .consumer44-offer-actions a, .consumer44-actions-row a:nth-child(n+2), .consumer44-actions-row button:nth-child(n+2) { background:#fff; color:var(--consumer44-text); border:1px solid var(--consumer44-border); box-shadow:none; }
.consumer44-toolbar-actions button.active { background:#0f172a; color:#fff; }
.consumer44-quick-prompts, .consumer44-promo-row, .consumer44-filter-pills, .consumer44-chat-quick { display:flex; flex-wrap:wrap; gap:8px; }
.consumer44-quick-prompts button, .consumer44-promo-row button, .consumer44-filter-pills span, .consumer44-chat-quick button { border:1px solid var(--consumer44-border); background:#fff; color:#0f513f; border-radius:999px; padding:9px 12px; font-weight:850; cursor:pointer; }
.consumer44-ai-result { background:#f8fffc; border:1px dashed #99f6e4; border-radius:18px; padding:13px; color:#334155; min-height:42px; }
.consumer44-shell { max-width: 1240px; margin:0 auto; padding: 0 clamp(16px, 4vw, 32px) 46px; display:grid; grid-template-columns: 340px minmax(0,1fr); gap: 22px; align-items:start; }
.consumer44-sidebar { position: sticky; top: 82px; display:flex; flex-direction:column; gap:18px; max-height: calc(100vh - 96px); overflow:auto; padding-right: 4px; }
.consumer44-card label { display:block; font-size:13px; color:#334155; font-weight:900; margin: 12px 0; }
.consumer44-two { display:grid; grid-template-columns: 1fr 1fr; gap:10px; }
.consumer44-check { display:flex !important; align-items:center; gap:10px; }
.consumer44-check input { width:auto !important; }
.consumer44-actions-row { display:flex; flex-wrap:wrap; gap:10px; margin-top:12px; }
.consumer44-gps { width:100%; margin-top:12px; background:#0f172a; }
.consumer44-manual summary { cursor:pointer; color:var(--consumer44-muted); font-weight:800; margin:12px 0; }
.consumer44-icon-btn, .consumer44-close { width:40px; height:40px; border-radius:14px; border:1px solid var(--consumer44-border); background:#fff; color:var(--consumer44-text); font-weight:950; font-size:22px; cursor:pointer; display:none; }
.consumer44-chat { height: 240px; overflow:auto; display:flex; flex-direction:column; gap:10px; background:#f8fffc; border:1px solid var(--consumer44-border); border-radius:18px; padding:12px; }
.consumer44-bubble { max-width: 86%; padding:11px 13px; border-radius:18px; font-size:14px; line-height:1.45; }
.consumer44-bubble.ai { background:#fff; border:1px solid var(--consumer44-border); align-self:flex-start; }
.consumer44-bubble.user { background:#0f766e; color:#fff; align-self:flex-end; }
.consumer44-chat-form { display:grid; grid-template-columns:1fr auto; gap:8px; margin-top:10px; }
.consumer44-dashboard { display:grid; grid-template-columns: repeat(4, 1fr); gap:12px; margin-bottom: 16px; }
.consumer44-stat { background:#fff; border:1px solid var(--consumer44-border); border-radius:22px; padding:16px; box-shadow:0 14px 30px rgba(15,23,42,.06); }
.consumer44-stat span { color:var(--consumer44-muted); font-weight:800; font-size:12px; text-transform:uppercase; letter-spacing:.08em; }
.consumer44-stat strong { display:block; font-size:26px; margin-top:4px; }
.consumer44-toolbar { background:rgba(255,255,255,.9); border:1px solid var(--consumer44-border); border-radius:var(--consumer44-radius); padding:18px; display:flex; justify-content:space-between; gap:16px; align-items:center; box-shadow:0 14px 30px rgba(15,23,42,.06); margin-bottom:14px; }
.consumer44-toolbar p { margin:6px 0 0; color:var(--consumer44-muted); }
.consumer44-toolbar-actions { display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.consumer44-promo-row { margin: 0 0 14px; }
.consumer44-recommendations { background:#0f172a; color:#fff; border-radius:var(--consumer44-radius); padding:20px; margin-bottom:16px; box-shadow:var(--consumer44-shadow); }
.consumer44-recommendations .consumer44-mini { color:#99f6e4; }
.consumer44-rec-grid { display:grid; grid-template-columns: repeat(3, 1fr); gap:14px; margin-top:12px; }
.consumer44-view { display:none; }
.consumer44-view.active { display:block; }
.consumer44-offers-grid { display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:16px; }
.consumer44-offer-card { background:#fff; border:1px solid var(--consumer44-border); border-radius:var(--consumer44-radius); overflow:hidden; box-shadow:0 18px 44px rgba(15,23,42,.08); display:flex; flex-direction:column; }
.consumer44-offer-card.compact { border-color:rgba(255,255,255,.24); background:#fff; color:var(--consumer44-text); }
.consumer44-card-img-wrap { position:relative; aspect-ratio: 16 / 10; background:#e2e8f0; overflow:hidden; }
.consumer44-card-img-wrap img { width:100%; height:100%; object-fit:cover; display:block; transition: transform .35s ease; }
.consumer44-offer-card:hover img { transform: scale(1.04); }
.consumer44-no-img { height:100%; display:grid; place-items:center; color:#64748b; font-weight:900; background:linear-gradient(135deg,#f8fafc,#e2e8f0); }
.consumer44-discount { position:absolute; left:12px; top:12px; background:#f97316; color:#fff; border-radius:999px; padding:8px 11px; font-weight:950; }
.consumer44-fav { position:absolute; right:12px; top:12px; width:40px; height:40px; border:0; border-radius:50%; background:rgba(255,255,255,.94); color:#be123c; font-size:22px; font-weight:950; cursor:pointer; }
.consumer44-offer-body { padding:16px; display:flex; flex-direction:column; gap:8px; flex:1; }
.consumer44-offer-head, .consumer44-meta { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px; color:var(--consumer44-muted); font-size:12px; font-weight:850; }
.consumer44-status { background:#ecfeff; color:#0f766e; border:1px solid #99f6e4; border-radius:999px; padding:5px 9px; }
.consumer44-offer-body h3 { margin:0; font-size:20px; line-height:1.16; letter-spacing:-.03em; }
.consumer44-offer-body h3 a { color:inherit; text-decoration:none; }
.consumer44-cat { margin:0; color:#0f766e; font-weight:900; text-transform:capitalize; }
.consumer44-price { display:flex; align-items:baseline; gap:9px; margin:0; font-size:23px; }
.consumer44-old-price { color:#94a3b8; text-decoration: line-through; font-size:15px; }
.consumer44-store, .consumer44-address { margin:0; color:#475569; }
.consumer44-offer-actions { display:flex; gap:8px; flex-wrap:wrap; margin-top:auto; }
.consumer44-offer-actions button, .consumer44-offer-actions a { padding:10px 12px; border-radius:14px; font-size:14px; }
.consumer44-map { min-height:520px; border-radius:var(--consumer44-radius); border:1px solid var(--consumer44-border); overflow:hidden; box-shadow:var(--consumer44-shadow); background:#e2e8f0; }
.consumer44-map-placeholder { height:520px; display:grid; place-items:center; color:#64748b; font-weight:900; text-align:center; padding:20px; }
.consumer44-map-list { display:grid; grid-template-columns: repeat(2, 1fr); gap:10px; margin-top:14px; }
.consumer44-map-list div { background:#fff; border:1px solid var(--consumer44-border); border-radius:18px; padding:12px; display:grid; gap:5px; }
.consumer44-map-list span { color:var(--consumer44-muted); font-size:13px; }
.consumer44-empty { grid-column:1/-1; background:#fff; border:1px solid var(--consumer44-border); border-radius:var(--consumer44-radius); padding:30px; text-align:center; box-shadow:var(--consumer44-shadow); }
.consumer44-account-grid { display:grid; grid-template-columns: 1.2fr .8fr; gap:16px; }
.consumer44-account-grid .consumer44-card:nth-child(3) { grid-column:1/-1; }
.consumer44-form-line { display:flex; gap:8px; margin:12px 0; }
.consumer44-note { color:#0f766e; font-weight:850; margin:8px 0; }
.consumer44-profile-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin:14px 0; }
.consumer44-profile-stats div, .consumer44-ticket-mini, .consumer44-success { background:#f8fffc; border:1px solid var(--consumer44-border); border-radius:18px; padding:12px; }
.consumer44-profile-stats span { display:block; color:var(--consumer44-muted); font-size:12px; font-weight:850; }
.consumer44-profile-stats strong { font-size:22px; }
.consumer44-res-list { display:grid; gap:8px; }
.consumer44-res-row { border:1px solid var(--consumer44-border); border-radius:16px; padding:12px; display:grid; gap:4px; }
.consumer44-res-row span { color:var(--consumer44-muted); }
.consumer44-saved-list { display:grid; gap:8px; margin-top:10px; }
.consumer44-saved-list button { text-align:left; border:1px solid var(--consumer44-border); background:#fff; border-radius:14px; padding:10px; cursor:pointer; font-weight:850; }
.consumer44-modal { position:fixed; inset:0; background:rgba(15,23,42,.58); z-index:120; display:grid; place-items:center; padding:20px; backdrop-filter:blur(8px); }
.consumer44-modal-card { width:min(760px, 100%); max-height:92vh; overflow:auto; background:#fff; border-radius:30px; padding:24px; box-shadow:0 34px 90px rgba(0,0,0,.28); position:relative; }
.consumer44-close { display:grid; place-items:center; position:absolute; right:16px; top:16px; }
.consumer44-reservation-form { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:12px; }
.consumer44-wide { grid-column:1/-1; }
.consumer44-quote { background:#f8fffc; border:1px dashed #99f6e4; border-radius:18px; padding:14px; display:grid; gap:7px; }
.consumer44-quote div { display:flex; justify-content:space-between; gap:12px; }
.consumer44-quote .total { font-size:18px; border-top:1px solid var(--consumer44-border); padding-top:8px; }
.consumer44-danger { color:var(--consumer44-danger); font-weight:900; }
.consumer44-bottom-nav { position:fixed; left:12px; right:12px; bottom:12px; z-index:90; display:none; grid-template-columns: repeat(5,1fr); gap:6px; background:rgba(15,23,42,.92); color:#fff; padding:8px; border-radius:22px; box-shadow:0 20px 60px rgba(0,0,0,.25); backdrop-filter:blur(12px); }
.consumer44-bottom-nav button, .consumer44-bottom-nav a { border:0; background:transparent; color:#d1fae5; text-decoration:none; border-radius:16px; padding:10px 6px; font-size:12px; font-weight:900; text-align:center; }
.consumer44-bottom-nav .active { background:#0f766e; color:#fff; }
.consumer44-toast { position:fixed; right:18px; bottom:96px; z-index:140; background:#0f172a; color:#fff; border-radius:16px; padding:12px 16px; box-shadow:0 18px 44px rgba(0,0,0,.26); transform:translateY(14px); opacity:0; pointer-events:none; transition:.2s ease; max-width: min(420px, calc(100vw - 32px)); }
.consumer44-toast.show { transform:translateY(0); opacity:1; }
.consumer44-spinner { width:14px; height:14px; border-radius:50%; border:2px solid rgba(255,255,255,.6); border-top-color:#fff; display:inline-block; animation: consumer44spin .8s linear infinite; }
@keyframes consumer44spin { to { transform: rotate(360deg); } }
.skeleton.consumer44-offer-card { padding:16px; gap:14px; }
.skeleton div, .skeleton span { display:block; border-radius:16px; background:linear-gradient(90deg,#edf2f7,#f8fafc,#edf2f7); background-size:200% 100%; animation:consumer44sk 1.4s infinite; }
.skeleton div { height:180px; }
.skeleton span { height:18px; }
@keyframes consumer44sk { to { background-position:-200% 0; } }
@media (max-width: 1060px) {
  .consumer44-hero { grid-template-columns:1fr; }
  .consumer44-shell { grid-template-columns:1fr; }
  .consumer44-sidebar { position:fixed; inset:0 0 0 auto; width:min(390px, 92vw); background:var(--consumer44-bg); z-index:110; padding:18px; transform:translateX(110%); transition:.25s ease; box-shadow:-20px 0 70px rgba(15,23,42,.22); max-height:none; overflow:auto; }
  .consumer44-sidebar.open { transform:translateX(0); }
  .consumer44-icon-btn { display:grid; place-items:center; }
  .consumer44-dashboard { grid-template-columns:repeat(2,1fr); }
  .consumer44-bottom-nav { display:grid; }
}
@media (max-width: 760px) {
  .consumer44-toplinks { display:none; }
  .consumer44-topbar { padding:12px 14px; }
  .consumer44-hero { padding:18px 12px 12px; }
  .consumer44-hero-copy, .consumer44-command-card, .consumer44-card { border-radius:22px; padding:18px; }
  .consumer44-hero h1 { font-size:38px; }
  .consumer44-command-row { grid-template-columns:1fr; }
  .consumer44-shell { padding:0 12px 40px; }
  .consumer44-dashboard { grid-template-columns:repeat(2,1fr); }
  .consumer44-toolbar { flex-direction:column; align-items:flex-start; }
  .consumer44-toolbar-actions { justify-content:flex-start; }
  .consumer44-offers-grid, .consumer44-rec-grid, .consumer44-map-list, .consumer44-account-grid { grid-template-columns:1fr; }
  .consumer44-account-grid .consumer44-card:nth-child(3) { grid-column:auto; }
  .consumer44-map, .consumer44-map-placeholder { min-height:430px; }
  .consumer44-reservation-form, .consumer44-two { grid-template-columns:1fr; }
  .consumer44-profile-stats { grid-template-columns:repeat(2,1fr); }
  .consumer44-form-line { flex-direction:column; }
}

/* V51 PayPal + pay-on-pickup checkout polish */
.paypal-box-v51,
.pickup-box-v51 {
  margin-top: 18px;
  border: 1px solid rgba(15, 118, 110, .16);
  border-radius: 22px;
  background: linear-gradient(135deg, #ffffff, #f8fafc);
  box-shadow: 0 18px 42px rgba(15, 23, 42, .08);
  padding: 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}
.paypal-box-v51 h3,
.pickup-box-v51 h3 { margin: 4px 0 6px; color: #0f172a; }
.paypal-box-v51 p,
.pickup-box-v51 p { margin: 0; color: #475569; line-height: 1.45; }
.paypal-button-v51 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 180px;
  border-radius: 999px;
  padding: 13px 18px;
  background: linear-gradient(135deg, #003087, #0070ba);
  color: white !important;
  text-decoration: none;
  font-weight: 900;
  box-shadow: 0 16px 34px rgba(0, 48, 135, .24);
}
.paypal-button-v51:hover { transform: translateY(-1px); filter: brightness(1.03); }
@media (max-width: 760px) {
  .paypal-box-v51,
  .pickup-box-v51 { flex-direction: column; align-items: stretch; }
  .paypal-button-v51 { width: 100%; }
}

/* V52 — seller QR scanner + faster live flow hints */
.seller-qr-scan-v52 {
  margin-top: 14px;
  padding: 14px;
  border: 1px solid rgba(22, 163, 74, 0.18);
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(240, 253, 244, 0.96), rgba(255, 255, 255, 0.92));
}
.seller-qr-scan-v52 .camera-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}
.qr-file-label-v52 { cursor: pointer; }
#qrScannerVideo {
  width: min(100%, 520px);
  max-height: 360px;
  object-fit: cover;
  margin-top: 12px;
  border-radius: 18px;
  border: 1px solid rgba(15, 23, 42, .12);
  background: #020617;
}
#qrScannerStatus { margin-top: 12px; }
.payment-note-v52 {
  border-left: 4px solid #16a34a;
  background: #f0fdf4;
  padding: 10px 12px;
  border-radius: 12px;
  color: #14532d;
}
