:root {
  --ink: #0b1220;
  --ink-2: #1a2438;
  --muted: #5b6780;
  --line: #e6eaf2;
  --paper: #f6f4ef;
  --white: #ffffff;
  --brand: #1e4b8c;
  --brand-2: #0b1f3a;
  --ok: #0f7a4a;
  --warn: #b45309;
  --bad: #b42318;
  --shadow: 0 18px 50px rgba(15, 23, 42, .08);
  --r: 16px;
  --sidebar: 258px;
  --font: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;
  --sans: "Segoe UI", system-ui, -apple-system, sans-serif;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
html, body { margin: 0; padding: 0; }
body {
  font-family: var(--sans);
  color: var(--ink);
  background: var(--paper);
  line-height: 1.5;
}
a { color: inherit; }
h1,h2,h3,h4 { font-family: var(--font); letter-spacing: -0.02em; margin: 0 0 .4em; }
p { margin: 0 0 1em; }
.container { width: min(1120px, calc(100% - 40px)); margin: 0 auto; }

/* Marketing */
.m-nav {
  display: flex; align-items: center; justify-content: space-between;
  padding: 18px 0; gap: 16px;
}
.logo { font-family: var(--font); font-size: 28px; text-decoration: none; font-weight: 700; display:flex; align-items:center; }
.site-logo { height: 72px; width: auto; display: block; }
.hero-logo { height: 160px; width: auto; max-width: 100%; display: block; margin: 0 0 18px; }
.logo span { color: var(--brand); }
.m-nav nav.m-links { display: flex; gap: 22px; align-items: center; font-size: 14px; }
.m-nav a { text-decoration: none; color: var(--ink-2); }
.m-nav a.btn,.m-nav a.btn.brand{color:#fff !important;}
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  border: 0; cursor: pointer; text-decoration: none;
  background: var(--ink); color: #fff; border-radius: 999px;
  padding: 10px 16px; font-weight: 600; font-size: 14px;
}
.btn:hover { filter: brightness(1.08); }
.btn { color:#fff; }
.btn.brand { background: var(--brand); color:#fff !important; }
.btn.ghost { background: transparent; color: var(--ink); border: 1px solid var(--line); }
.btn.ok { background: var(--ok); }
.btn.warn { background: var(--warn); }
.btn.bad { background: var(--bad); }
.btn.sm { padding: 6px 10px; font-size: 12px; }
.hero {
  padding: 64px 0 40px;
  display: grid; grid-template-columns: 1.15fr .85fr; gap: 40px; align-items: center;
}
.hero h1 { font-size: clamp(36px, 5vw, 64px); line-height: 1.05; }
.lede { font-size: 18px; color: var(--muted); max-width: 48ch; }
.hero-card {
  background: #fff; border-radius: 24px; box-shadow: var(--shadow); padding: 22px;
  border: 1px solid var(--line);
}
.grid-3, .grid-2, .grid-4 { display: grid; gap: 16px; }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
.grid-2 { grid-template-columns: repeat(2, 1fr); }
.grid-4 { grid-template-columns: repeat(4, 1fr); }
.card {
  background: #fff; border: 1px solid var(--line); border-radius: var(--r); padding: 18px;
}
.card h3 { font-size: 22px; }
.muted { color: var(--muted); }
.tiny { font-size: 12px; color: var(--muted); }
.pill {
  display: inline-block; font-size: 12px; padding: 3px 8px; border-radius: 999px;
  background: #efe7dc; color: #6b4b2a;
}
.pill.ok { background: #e4f5ea; color: #166534; }
.pill.warn { background: #fff4db; color: #92400e; }
.pill.bad { background: #fde8e8; color: #991b1b; }
.pill.info { background: #e7eefc; color: #1e3a8a; }
.section { padding: 28px 0 56px; }

/* Auth / forms */
.form { display: grid; gap: 12px; }
label { font-size: 13px; font-weight: 600; display: grid; gap: 6px; }
input, select, textarea {
  font: inherit; padding: 10px 12px; border-radius: 10px;
  border: 1px solid #d5dbe6; background: #fff; width: 100%;
}
textarea { min-height: 90px; resize: vertical; }
.alert {
  padding: 10px 12px; border-radius: 10px; margin-bottom: 14px; font-size: 14px;
}
.alert.error { background: #fde8e8; color: #7f1d1d; }
.alert.success { background: #e4f5ea; color: #14532d; }

/* Admin shell */
.shell { display: grid; grid-template-columns: var(--sidebar) 1fr; min-height: 100dvh; min-height: 100vh; }
.side {
  background: var(--ink); color: #e8edf7; padding: 22px 16px;
  position: sticky; top: 0; height: 100vh; overflow: auto;
  z-index: 50;
}
.side a { color: #c9d3e4; text-decoration: none; display: block; padding: 8px 10px; border-radius: 10px; font-size: 14px; }
.side a:hover, .side a.active { background: rgba(255,255,255,.08); color: #fff; }
.side .brand { color: #fff; font-family: var(--font); font-size: 26px; padding: 4px 10px 18px; }
.brand-logo { display:block; width:100%; max-width:180px; height:auto; border-radius:10px; }
.side .brand-logo { filter: brightness(0) invert(1); background: transparent; }
.side .group { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: #7d8aa3; padding: 16px 10px 6px; }
.main { padding: 22px 26px 60px; min-width: 0; overflow-x: hidden; position: relative; z-index: 1; }
.topbar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 18px; gap: 12px; }
.topbar-copy { flex: 1; min-width: 0; }
.topbar-copy h1 { margin: 0; }
.topbar-tools { display: flex; align-items: center; gap: 8px; margin-left: auto; flex: 0 0 auto; }
table { width: 100%; border-collapse: collapse; font-size: 14px; background: #fff; border-radius: 12px; overflow: hidden; }
th, td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--line); vertical-align: top; }
th { font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); background: #fbfaf7; }
.stat { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 16px; }
.stat b { display: block; font-size: 28px; font-family: var(--font); }
.row-actions { display: flex; gap: 6px; flex-wrap: wrap; }

/* Booking wizard */
.steps { display: flex; gap: 8px; margin-bottom: 16px; flex-wrap: wrap; }
.step {
  flex: 1; min-width: 120px; padding: 10px; border-radius: 12px; background: #fff; border: 1px solid var(--line); font-size: 13px;
}
.step.on { border-color: var(--brand); box-shadow: 0 0 0 3px rgba(196,92,38,.15); }
.choice {
  border: 1px solid var(--line); background: #fff; border-radius: 14px; padding: 12px; cursor: pointer;
}
.choice:hover, .choice.sel { border-color: var(--brand); }
.slots { display: flex; flex-wrap: wrap; gap: 8px; }
.slot {
  border: 1px solid var(--line); background: #fff; border-radius: 10px; padding: 8px 10px; cursor: pointer; font-size: 13px;
}
.slot.sel { background: var(--ink); color: #fff; }
.slot.taken {
  background: #f3f4f6; color: #9ca3af; text-decoration: line-through; cursor: not-allowed; border-style: dashed;
}

.svc-jump { display:flex; flex-wrap:wrap; gap:8px; padding:8px 0 0; }
.svc-jump a { background:#fff; border:1px solid var(--line); border-radius:999px; padding:6px 12px; text-decoration:none; font-size:13px; }
.svc-tile { overflow:hidden; padding-top:0; }
.svc-tile-top { height:10px; background: var(--brand); margin: -0px -18px 14px; }

.tpl-grid { display:grid; grid-template-columns: repeat(auto-fill, minmax(240px,1fr)); gap:16px; }
.tpl-card { background:#fff; border:1px solid var(--line); border-radius:18px; overflow:hidden; }
.tpl-body { padding:14px; display:grid; gap:8px; }
.tpl-thumb { height:120px; background: var(--s,#eef); position:relative; padding:12px; }
.tpl-bar { height:10px; background: var(--p); border-radius:6px; width:42%; margin-bottom:10px; }
.tpl-hero { display:flex; gap:8px; margin-bottom:10px; }
.tpl-hero span { height:36px; border-radius:8px; background:#fff; opacity:.9; flex:1; }
.tpl-hero span:last-child { flex:.6; background: var(--a); opacity:.35; }
.tpl-cards { display:flex; gap:6px; }
.tpl-cards i { flex:1; height:28px; background:#fff; border-radius:6px; display:block; opacity:.85; }
.tpl-card { transition: transform .15s ease, box-shadow .15s ease; }
.tpl-card:hover { transform: translateY(-3px); box-shadow: 0 16px 40px rgba(15,23,42,.12); }
.tpl-thumb { background-image: linear-gradient(135deg, var(--s,#eef), #fff); }

.pie-row { display:flex; gap:18px; align-items:center; }
.pie { width:120px; height:120px; border-radius:50%; flex:0 0 120px; box-shadow: inset 0 0 0 12px #fff; }
.swatch { display:inline-block; width:10px; height:10px; border-radius:3px; margin-right:6px; }
.alert.warn { background:#fff4db; color:#7c4a03; }

.pie-board { display:grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap:10px; margin-bottom:16px; }
.pie-tile { background:#fff; border:1px solid var(--line); border-radius:14px; padding:10px 8px 8px; min-width:0; }
.pie-tile h4 { margin:0 0 6px; font-size:12px; font-weight:700; color:#334155; text-align:center; line-height:1.25; }
.ipie { display:flex; flex-direction:column; align-items:center; gap:6px; }
.ipie-viz { position:relative; width:96px; height:96px; }
.ipie-viz svg { width:96px; height:96px; overflow:visible; }
.ipie-slice { cursor:pointer; transition: filter .15s ease; touch-action:manipulation; }
.ipie-slice.on { filter: brightness(1.12) drop-shadow(0 0 1px rgba(15,23,42,.45)); }
.ipie-pct { font-size:3.2px; font-weight:700; fill:#fff; pointer-events:none; }
.ipie-pop { position:absolute; z-index:8; transform:translate(-50%,-118%); background:#0f172a; color:#fff; padding:8px 10px; border-radius:10px; font-size:12px; line-height:1.25; min-width:108px; max-width:180px; text-align:center; box-shadow:0 10px 24px rgba(15,23,42,.28); pointer-events:none; }
.ipie-pop::after { content:""; position:absolute; left:50%; bottom:-5px; transform:translateX(-50%) rotate(45deg); width:10px; height:10px; background:#0f172a; }
.ipie-pop strong { display:block; font-size:12px; }
.ipie-pop span { display:block; opacity:.85; font-size:11px; margin-top:2px; }
.ipie-legend { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; justify-content:center; gap:3px 8px; }
.ipie-legend li { display:flex; gap:4px; align-items:center; font-size:10px; color:#475569; cursor:pointer; max-width:100%; }
.ipie-legend li span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:88px; }
.ipie-legend li.on span { font-weight:700; color:#0f172a; }
.ipie-legend i { width:8px; height:8px; border-radius:50%; flex:0 0 8px; }

@media (max-width: 1100px) {
  .pie-board { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .pie-board { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.inv-table { width:100%; border-collapse:collapse; }
.inv-table th, .inv-table td { padding:6px 8px; font-size:13px; border-bottom:1px solid var(--line); vertical-align:middle; }
.inv-table th { text-align:left; color:#64748b; font-weight:600; font-size:11px; text-transform:uppercase; letter-spacing:.04em; }
.inv-table img { width:32px; height:32px; object-fit:cover; border-radius:6px; display:block; }
.inv-table .btn.sm { padding:3px 8px; font-size:12px; }
.inv-actions { display:flex; gap:4px; flex-wrap:wrap; }

.stat {
  background:#fff; border:1px solid var(--line); border-radius:16px; padding:14px 16px;
}
.stat b { display:block; font-size:28px; }

@media (max-width: 900px) {
  .hero, .grid-3, .grid-4, .pos, .shell { grid-template-columns: 1fr; }
  .side { position: relative; height: auto; }
  .grid-2 { grid-template-columns: 1fr; }
}

/* POS */
.pos { display: grid; grid-template-columns: 1.3fr .7fr; gap: 16px; }
.sku-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 8px; }
.sku {
  border: 1px solid var(--line); background: #fff; border-radius: 12px; padding: 10px; cursor: pointer; text-align: left;
}
.cart-line { display: flex; justify-content: space-between; gap: 8px; font-size: 14px; padding: 6px 0; border-bottom: 1px dashed var(--line); }

.footer { padding: 28px 0; color: var(--muted); font-size: 13px; }

@media (max-width: 900px) {
  .hero, .grid-3, .grid-4, .pos, .shell { grid-template-columns: 1fr; }
  .side { position: relative; height: auto; }
  .grid-2 { grid-template-columns: 1fr; }
}

.tpl-grid-lg { grid-template-columns: repeat(auto-fill, minmax(280px,1fr)); }
.tpl-live { padding:0; overflow:hidden; }
.tpl-stage { position:relative; height:180px; background:
  radial-gradient(circle at 20% 20%, #fff8, transparent 40%),
  linear-gradient(160deg, var(--s), #fff 55%, var(--p));
  overflow:hidden;
}
.tpl-scene .orb {
  position:absolute; width:90px; height:90px; border-radius:50%;
  background: var(--p); top:24px; left:24px;
  box-shadow: 40px 30px 0 -20px var(--a);
}
.tpl-scene .orb.two { width:54px; height:54px; left:auto; right:28px; top:70px; opacity:.85; box-shadow:none; background:var(--a); }
.tpl-scene .block {
  position:absolute; bottom:18px; left:22px; width:46%; height:48px; border-radius:14px; background:#fff; opacity:.92;
}
.tpl-scene .block.late { left:auto; right:18px; width:28%; height:64px; opacity:.7; }
.tpl-scene .shine {
  position:absolute; top:-20%; left:-10%; width:40%; height:160%;
  background: linear-gradient(90deg, transparent, #fff8, transparent);
  transform: rotate(18deg); animation: sheen 4s infinite;
}
@keyframes sheen { 0%{transform:translateX(-40%) rotate(18deg)} 100%{transform:translateX(280%) rotate(18deg)} }
.tpl-caption { position:absolute; left:14px; right:14px; bottom:10px; color:#fff; text-shadow:0 1px 8px #0006; }
.tpl-caption em { display:block; font-style:normal; font-size:12px; opacity:.9; }

.cal-wrap { background:#fff; border-radius:20px; padding:16px; border:1px solid var(--line); }
.cal-nav { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
.cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:6px; }
.cal-wd { font-size:11px; color:var(--muted); text-align:center; }
.cal-cell {
  min-height:64px; border:1px solid var(--line); background:#fafafa; border-radius:12px;
  text-align:left; padding:8px; cursor:pointer; font:inherit;
}
.cal-cell.empty { background:transparent; border:0; }
.cal-cell.has { background:#fff7ed; border-color:#fed7aa; }
.cal-cell.today { outline:2px solid var(--brand); }
.cal-cell.open { background:var(--ink); color:#fff; }
.cal-cell .num { font-weight:700; display:block; }
.cal-cell .dots {
  display:inline-block; margin-top:6px; background:var(--brand); color:#fff;
  font-size:11px; padding:1px 6px; border-radius:999px;
}
.cal-detail { margin-top:14px; }
.cal-appt { padding:10px 0; border-bottom:1px dashed var(--line); }

.pwa-dash-card { display:flex; gap:12px; align-items:center; justify-content:space-between; flex-wrap:wrap; margin-bottom:14px; }

/* Touch + responsive */
.nav-toggle {
  display:none; border:1px solid var(--line); background:#fff; border-radius:999px;
  padding:8px 14px; font-weight:600; min-height:44px;
}
@media (max-width: 1024px) {
  .nav-toggle { display:inline-flex; align-items:center; }
  .m-nav { flex-wrap:wrap; }
  .m-nav nav.m-links, .m-links { display:none !important; width:100%; flex-direction:column; gap:10px; padding:8px 0 12px; }
  .m-nav nav.m-links.open, .m-links.open { display:flex !important; }
  .admin-page .shell { display:block; min-width:0; width:100%; max-width:100%; min-height:0; }
  .admin-toggle { margin:0; position:static; flex:0 0 auto; }
  .admin-page .side { display:none; height:auto; }
  .admin-page .side.open {
    display:block;
    position:fixed;
    z-index:80;
    top:0; left:0; bottom:0;
    width:min(86vw, 280px);
    height:100dvh;
    overflow:auto;
    box-shadow: 12px 0 40px rgba(0,0,0,.28);
  }
  .admin-page .main {
    padding:12px 12px calc(80px + env(safe-area-inset-bottom, 0px));
    width:100%;
    max-width:100%;
    min-width:0;
    overflow-x:auto;
    box-sizing:border-box;
  }
  .admin-page .topbar { flex-wrap:nowrap; align-items:center; position:sticky; top:0; z-index:30; padding:8px 0; }
  .admin-page .topbar h1 { font-size:18px; }
  .admin-page .grid-4 { grid-template-columns: 1fr 1fr; }
  .admin-page .grid-2, .admin-page .grid-3 { grid-template-columns: 1fr; }
  .admin-page .pie-board { grid-template-columns: 1fr 1fr; }
  .admin-page .pie-tile { max-width:none; min-width:0; }
  .admin-page .stat b { font-size:22px; }
  .admin-page table { font-size:14px; }
  .admin-page .card, .admin-page .stat, .admin-page form.card { max-width:100%; }
  .admin-page img { max-width:100%; height:auto; }
  .cal-wrap { overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .cal-grid { min-width:420px; }
  .cal-cell { min-height:52px; min-width:0; }
  .container { width:calc(100% - 24px); }
  input, select, textarea, .btn { min-height:44px; font-size:16px; }
  .form.grid-2, .grid-2 { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .admin-page .grid-4,
  .admin-page .pie-board { grid-template-columns: 1fr 1fr; }
  .admin-page .main { padding-left:10px; padding-right:10px; }
  .tpl-grid, .tpl-grid-lg { grid-template-columns: 1fr; }
  .admin-page h1 { font-size:1.15rem; }
  .table-scroll { display:block; overflow-x:auto; -webkit-overflow-scrolling:touch; max-width:100%; }
}
@media (min-width: 1025px) and (max-width: 1200px) {
  .grid-3 { grid-template-columns: repeat(2, 1fr); }
  .side { width: 220px; }
}
@supports (padding: max(0px)) {
  body { padding-left: env(safe-area-inset-left); padding-right: env(safe-area-inset-right); }
}

.row-actions .btn.sm, .row-actions button.btn.sm, .row-actions a.btn.sm {
  min-height: 36px; height: 36px; padding: 0 12px; font-size: 12px; line-height: 36px;
}
.row-actions select { min-height: 36px; height: 36px; font-size: 12px; }

.pulse-wa{animation:waPulse 1.5s ease-out infinite;background:#25D366 !important;color:#fff !important;border:0}
@keyframes waPulse{0%{box-shadow:0 0 0 0 rgba(37,211,102,.7)}70%{box-shadow:0 0 0 14px rgba(37,211,102,0)}100%{box-shadow:0 0 0 0 rgba(37,211,102,0)}}

.scheme-card{padding:10px;cursor:pointer}
.scheme-open{display:block;width:100%;border:0;background:transparent;padding:0;text-align:left;cursor:pointer}
.scheme-thumb{height:210px;overflow:hidden;border-radius:12px;border:1px solid var(--line);background:#fff;pointer-events:none}
.scheme-thumb .scheme-live{transform:scale(.22);transform-origin:top left;width:454%;}
.scheme-pop{border:0;padding:0;border-radius:18px;width:min(980px,calc(100% - 16px));max-height:90vh;overflow:auto;box-shadow:0 24px 80px rgba(0,0,0,.28)}
.scheme-pop::backdrop{background:rgba(15,23,42,.45)}
.scheme-pop-inner{padding:14px}
.scheme-pop h3{margin:0 0 8px}
.scheme-live{background:var(--s,#f6f4ef);color:var(--a,#0b1220);font-family:system-ui,Segoe UI,sans-serif;border-radius:12px;overflow:hidden;text-align:left}
.scheme-live h1{font-size:42px;margin:8px 0;letter-spacing:-.03em;line-height:1.05}
.scheme-live h2{font-size:22px;margin:18px 0 8px}
.scheme-live h3{margin:0 0 6px}
.sl-banner{min-height:220px;background:linear-gradient(135deg,var(--p),var(--a));color:#fff;display:flex;align-items:flex-end}
.sl-inner{width:min(980px,calc(100% - 40px));margin:0 auto;padding:28px 0}
.sl-name{opacity:.85;margin:0}
.sl-wrap{max-width:980px;margin:0 auto;padding:18px}
.sl-grid{display:grid;gap:18px;grid-template-columns:1.7fr .9fr;align-items:start}
.sl-card{background:#fff;border-radius:20px;padding:16px;box-shadow:0 16px 40px rgba(15,23,42,.08);margin-bottom:10px}
.sl-btn{display:inline-block;background:var(--p);color:#fff;padding:10px 16px;border-radius:999px;font-weight:700;font-size:13px}
.sl-btn.sl-sm{padding:8px 12px;font-size:12px}
.sl-wa{display:inline-block;background:#25D366;color:#fff;padding:8px 12px;border-radius:999px;font-weight:700;font-size:12px}
.sl-muted{color:#5b6780;font-size:13px}
.sl-who{display:flex;gap:12px;align-items:center;margin:10px 0}
.sl-pic{position:relative;width:64px;height:64px;flex:0 0 64px}
.sl-pic i{display:block;width:64px;height:64px;border-radius:50%;background:#ddd}
.sl-eotm{position:absolute;right:-4px;bottom:-4px;background:#fbbf24;color:#78350f;font-size:9px;font-weight:800;padding:3px 6px;border-radius:999px}
.sl-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.sl-svcs{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin-bottom:8px}
.sl-cat{margin:14px 0 8px}
.sl-hour{display:flex;justify-content:space-between;gap:8px;padding:6px 0;border-bottom:1px dashed #ddd;font-size:13px}
.sl-map{height:90px;border-radius:12px;background:repeating-linear-gradient(45deg,#dbe4f0,#dbe4f0 8px,#c9d6e8 8px,#c9d6e8 16px);margin:8px 0}
.sl-gift{max-width:420px}
.sl-field{font-weight:700;font-size:12px;margin-top:8px}
.sl-inp{height:36px;border:1px solid #d5dbe7;border-radius:10px;background:#fff;margin:4px 0}
.sl-acct{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:640px}
@media(max-width:800px){
  .sl-grid,.sl-acct{grid-template-columns:1fr}
}

.cat-board{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin:12px 0 18px}
.cat-tile{border:0;border-radius:18px;padding:22px 16px;color:#fff;font-weight:800;font-size:16px;text-align:left;cursor:pointer;min-height:88px;box-shadow:0 12px 28px rgba(15,23,42,.12)}
.cat-tile small{display:block;font-weight:600;opacity:.85;margin-top:6px;font-size:12px}
.cat-tile.on{outline:3px solid #0b1f3a;outline-offset:2px}
.cat-panel{display:none;margin:0 0 22px}
.cat-panel.on{display:block}
.pos-cat-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin-bottom:12px}
.pos-cat{border:0;border-radius:16px;padding:16px 12px;color:#fff;font-weight:800;cursor:pointer;min-height:72px;text-align:left}
.pos-cat small{display:block;opacity:.85;font-weight:600;margin-top:4px}
.pos-cat.on{outline:3px solid #0b1f3a;outline-offset:2px}
.pos-panel{display:none}
.pos-panel.on{display:grid}

.fold{background:rgba(255,255,255,.9);border:1px solid var(--line,#d5dbe7);border-radius:14px;margin:0 0 10px;padding:0}
.fold>summary{cursor:pointer;list-style:none;font-weight:800;padding:12px 14px;display:flex;justify-content:space-between;align-items:center;gap:10px}
.fold>summary::-webkit-details-marker{display:none}
.fold>summary:after{content:'+';font-weight:700;color:#64748b}
.fold[open]>summary:after{content:'–'}
.fold .pad{padding:0 14px 14px}

.plan-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 22px;
  align-items: stretch;
  padding-top: 18px;
}
.plan-card {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 28px 18px 18px;
  min-height: 280px;
}
.plan-card.popular {
  border: 2px solid #1e4b8c;
  box-shadow: 0 22px 48px rgba(30, 75, 140, .18);
  background: linear-gradient(180deg, #fff 0%, #eef3fb 72%);
  transform: translateY(-10px);
  z-index: 1;
}
.plan-badge {
  position: absolute;
  top: -12px;
  left: 50%;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #163a72, #2b6bc7);
  color: #fff;
  font-size: 10px;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-weight: 800;
  padding: 5px 14px;
  border-radius: 999px;
  white-space: nowrap;
}
.plan-for {
  color: #1e4b8c;
  font-weight: 700;
  font-size: 14px;
  margin: 0 0 6px;
  line-height: 1.3;
}
.plan-card h3 { margin: 0 0 8px; }
.plan-card .btn { margin-top: auto; }
@media (max-width: 800px) {
  .plan-card.popular { transform: none; }
}

.rt-prev{height:132px;position:relative;overflow:hidden;background:#eef2f7;isolation:isolate}
.rt-card{position:relative;overflow:hidden;isolation:isolate;z-index:0}
.rt-prev .rt-hero{position:absolute;inset:0;padding:10px;color:#fff;display:flex;flex-direction:column;justify-content:flex-end;background:linear-gradient(135deg,#1c1917,#b45309)}
.rt-prev .rt-hero.slim{inset:auto;left:0;right:0;top:0;height:36px;justify-content:center}
.rt-prev .rt-hero.tall{background:linear-gradient(180deg,#be185d,#831843)}
.rt-prev .rt-hero.center{text-align:center;align-items:center}
.rt-prev .rt-hero b{font-size:13px;letter-spacing:.08em}
.rt-prev .rt-hero span{font-size:10px;opacity:.85}
.rt-prev .rt-row{position:absolute;left:10px;right:10px;bottom:10px;display:flex;gap:8px}
.rt-prev .rt-face{width:28px;height:28px;border-radius:8px;background:#fff3;border:2px solid #fff}
.rt-prev .rt-pills{position:absolute;left:10px;bottom:8px;display:flex;gap:4px}
.rt-prev .rt-pills i{width:36px;height:8px;border-radius:99px;background:#fff6}
.rt-prev .rt-lines{position:absolute;left:12px;right:12px;top:48px;display:flex;flex-direction:column;gap:8px}
.rt-prev .rt-lines i{height:10px;border-radius:4px;background:#292524}
.rt-prev .rt-lines.pale i{background:#e9d5ff}
.rt-prev .rt-mosaic{position:absolute;left:8px;right:8px;bottom:8px;top:48px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:4px}
.rt-prev .rt-mosaic i{background:#fce7f3;border-radius:4px}
.rt-prev .rt-packs{position:absolute;left:8px;right:8px;bottom:10px;display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.rt-prev .rt-packs i{height:36px;border-radius:8px;background:#fff8}
.rt-prev .rt-tiles{position:absolute;inset:44px 8px 8px;display:grid;grid-template-columns:1fr 1fr;gap:6px}
.rt-prev .rt-tiles i{background:#e11d48;color:#fff;font-size:9px;font-style:normal;font-weight:800;display:flex;align-items:flex-end;padding:6px;border-radius:8px}
.rt-prev .rt-split{display:grid;grid-template-columns:1fr 1fr;height:100%}
.rt-prev .rt-coach{background:#16a34a}
.rt-prev .rt-week{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:8px;background:#ecfdf5}
.rt-prev .rt-week i{background:#86efac;border-radius:4px}
.rt-prev .rt-flash{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;height:100%;background:#1c1917;padding:6px}
.rt-prev .rt-flash i{background:#44403c}
.rt-prev .rt-flash i:nth-child(2n){background:#be123c}
.rt-prev .rt-cta{position:absolute;left:50%;bottom:10px;transform:translateX(-50%);background:#be123c;color:#fff;font-size:10px;font-weight:800;padding:4px 10px;border-radius:99px}
.rt-prev .rt-rooms{display:grid;grid-template-columns:repeat(3,1fr);height:100%;gap:4px;background:#0b1020;padding:8px}
.rt-prev .rt-rooms i{background:#d4af37}
.rt-prev .rt-rooms i:nth-child(2){background:#1e293b}
.rt-prev .rt-rooms i:nth-child(3){background:#334155}
.rt-prev.rt-chair .rt-hero{background:linear-gradient(135deg,#1c1917,#44403c)}
.rt-prev.rt-board{background:#0b0b0b}
.rt-prev.rt-board .rt-hero.slim{background:#111;height:32px}
.rt-prev.rt-atelier .rt-hero.tall{background:linear-gradient(180deg,#9d174d,#be185d)}
.rt-prev.rt-colour .rt-hero{background:linear-gradient(135deg,#6d28d9,#4c1d95)}
.rt-prev.rt-list .rt-hero.slim{background:#a78bfa;color:#3b0764}
.rt-prev.rt-tiles{background:#fff7ed}
.rt-prev.rt-list{background:#faf5ff}
.rt-prev.rt-packs{background:#f7fee7}
.rt-prev.rt-coach{background:#ecfdf5}
.rt-prev.rt-packs .rt-hero.slim{background:#3f6212}
