:root{--bg:#0b0f17;--card:#121826;--ink:#f9fafb;--muted:#cbd5e1;--brand:#7c5cff;--brand2:#22d3ee;--ring:0 0 0 3px rgba(124,92,255,.3)}
*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg); color:var(--ink);font:16px/1.6 system-ui,Segoe UI,Roboto,Arial,sans-serif}
a{color:inherit} .container{width:min(1100px,92%);margin:auto}
header{position:sticky;top:0;background:rgba(11,15,23,.75);backdrop-filter:saturate(150%) blur(8px);border-bottom:1px solid rgba(255,255,255,.08);z-index:30}
.nav{display:flex;justify-content:space-between;align-items:center;padding:12px 0;gap:12px;flex-wrap:wrap}
.brand{display:flex;gap:.6rem;align-items:center;font-weight:800}.logo{width:36px;height:36px;border-radius:10px;background:conic-gradient(from 210deg,var(--brand),var(--brand2))}
.nav a{opacity:.9;text-decoration:none;margin-left:12px}.nav a:hover{opacity:1}
.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.7rem 1rem;border-radius:14px;background:linear-gradient(90deg,var(--brand),var(--brand2));color:#0b0f17;font-weight:800;border:0;cursor:pointer}
.btn.secondary{background:#1f2937;color:var(--ink);border:1px solid rgba(255,255,255,.1)}
.hero{padding:84px 0 40px}.hero h1{font-size:clamp(28px,6vw,46px);line-height:1.1;margin:0 0 14px}.hero p{color:var(--muted);max-width:62ch}
section{padding:36px 0} h2{font-size:clamp(22px,3.6vw,32px);margin:0 0 18px}
.grid{display:grid;gap:18px}@media(min-width:860px){.cols-2{grid-template-columns:1fr 1fr}.cols-3{grid-template-columns:repeat(3,1fr)}}
.card{background:linear-gradient(180deg,var(--card),#0c1120);border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:18px}
ul.clean{list-style:none;margin:0;padding:0} ul.clean li{padding:.4rem 0;color:var(--muted)}
table{width:100%;border-collapse:separate;border-spacing:0 10px}th,td{text-align:left;padding:12px 14px}th{color:#d1d5db}
tbody tr{background:var(--card);border:1px solid rgba(255,255,255,.06)} .price{font-size:32px;font-weight:800}
footer{padding:28px 0;color:#9aa3b2;font-size:.9rem;border-top:1px solid rgba(255,255,255,.06);margin-top:28px}
.minnote{font-size:.85rem;color:#cbd5e1}


/* === THEME SYSTEM ========================================== */
:root[data-theme="dark"]{
  --bg:#0b0f17; --card:#121826; --ink:#f9fafb; --muted:#cbd5e1; --border:rgba(255,255,255,.08);
}
:root[data-theme="light"]{
  --bg:#f6f7fb; --card:#ffffff; --ink:#0b0f17; --muted:#6b7280; --border:#e5e7eb;
}
@media (prefers-color-scheme: light){
  :root:not([data-theme]){ --bg:#f6f7fb; --card:#ffffff; --ink:#0b0f17; --muted:#6b7280; --border:#e5e7eb; }
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme]){ --bg:#0b0f17; --card:#121826; --ink:#f9fafb; --muted:#cbd5e1; --border:rgba(255,255,255,.08); }
}
/* Accents */
:root, :root[data-accent="purple"]{ --brand:#7c5cff; --brand2:#22d3ee; }
:root[data-accent="teal"]{  --brand:#14b8a6; --brand2:#06b6d4; }
:root[data-accent="rose"]{  --brand:#fb7185; --brand2:#f472b6; }
:root[data-accent="amber"]{ --brand:#f59e0b; --brand2:#fbbf24; }

/* Theme Bar */
.themebar{
  position: fixed; right: 16px; bottom: 16px; z-index: 9999;
  background: var(--card); color: var(--ink);
  border:1px solid var(--border); border-radius:14px; padding:10px 12px;
  box-shadow:0 10px 30px rgba(0,0,0,.2); font-size:14px;
}
.themebar .row{display:flex; gap:8px; align-items:center; flex-wrap:wrap}
.themebar .lbl{opacity:.8; margin-right:6px}
.themebar button{
  border:1px solid var(--border); background:transparent; color:var(--ink);
  padding:.35rem .6rem; border-radius:10px; cursor:pointer;
}
.themebar button.active{background:linear-gradient(90deg,var(--brand),var(--brand2)); color:#0b0f17; border:0; font-weight:800}
.themebar .swatch{width:22px; height:22px; border-radius:999px; border:2px solid #0003; cursor:pointer;}
.themebar .swatch.purple{background:linear-gradient(90deg,#7c5cff,#22d3ee)}
.themebar .swatch.teal{background:linear-gradient(90deg,#14b8a6,#06b6d4)}
.themebar .swatch.rose{background:linear-gradient(90deg,#fb7185,#f472b6)}
.themebar .swatch.amber{background:linear-gradient(90deg,#f59e0b,#fbbf24)}
@media (max-width:700px){ .themebar{right:10px; bottom:10px; font-size:13px} }

/* === THEME OVERRIDES (force components to follow theme vars) === */
html,body{background:var(--bg) !important; color:var(--ink) !important}
header, .topbar, .login, .card, .table, footer{
  background:var(--card) !important; color:var(--ink) !important; border-color:var(--border) !important;
}
.table thead th{ background:rgba(0,0,0,.04); }
:root[data-theme="light"] .table thead th{ background:rgba(0,0,0,.04); }
:root[data-theme="dark"]  .table thead th{ background:rgba(255,255,255,.04); }
a{ color:inherit }
/* Light/Dark Mode Fix for Buttons */
[data-theme="light"] .btn, 
[data-theme="light"] button {
  background-color: var(--accent, #6c63ff);
  color: #fff;
}

[data-theme="dark"] .btn, 
[data-theme="dark"] button {
  background-color: var(--accent, #6c63ff);
  color: #fff;
}

/* Accent color handling */
[data-accent="purple"] { --accent: #6c63ff; }
[data-accent="teal"] { --accent: #20c997; }
[data-accent="rose"] { --accent: #e83e8c; }
[data-accent="amber"] { --accent: #ffb300; }
/* ===== Two-tone buttons: light & dark mode safe ===== */
.btn{
  background: linear-gradient(90deg,var(--brand),var(--brand2)) !important;
  color:#0b0f17 !important;  /* readable on bright gradient */
  border:0 !important; font-weight:800;
  box-shadow:0 6px 18px rgba(0,0,0,.18);
  transition: transform .08s ease, box-shadow .12s ease;
}
.btn:hover{ transform: translateY(-1px); box-shadow:0 10px 24px rgba(0,0,0,.22); }
.btn:active{ transform: translateY(0); box-shadow:0 4px 12px rgba(0,0,0,.14); }

/* Secondary buttons adapt to theme */
[data-theme="dark"] .btn.secondary{
  background:#1f2937 !important; color:var(--ink) !important; border:1px solid var(--border) !important;
}
[data-theme="light"] .btn.secondary{
  background:#ffffff !important; color:#0b0f17 !important; border:1px solid var(--border) !important;
}

/* Make sure links styled as .btn inherit properly */
a.btn{ text-decoration:none !important; display:inline-flex; align-items:center; gap:.5rem; }

/* If any page set button text to transparent, force visible */
.btn, button{ -webkit-text-fill-color: currentColor; }

/* Optional: small pill badges keep readable colors */
.badge{ color:inherit; }
/* === Theme toggle button & menu visibility === */
.theme-toggle{
  position: fixed; left: 12px; top: 12px; z-index: 10000;
  background: var(--card); color: var(--ink); border:1px solid var(--border);
  width: 38px; height: 38px; border-radius: 10px; display:flex; align-items:center; justify-content:center;
  box-shadow:0 8px 20px rgba(0,0,0,.22); cursor:pointer;
}
.theme-toggle:hover{ transform: translateY(-1px); }
.themebar.hidden{ display:none; }
/* Reposition themebar near the toggle on large screens */
@media(min-width:860px){
  .themebar{ right:auto; left: 60px; top: 10px; bottom:auto; }
}

/* === THEME-AWARE LOGO WITH POLAROID ICON ===================== */
.brand .logo, .logo{
  position:relative;
  width:40px; height:40px; border-radius:10px;
  background: linear-gradient(135deg,var(--brand),var(--brand2));
  border:1px solid var(--border);
  box-shadow:0 6px 16px rgba(0,0,0,.12);
}
.brand .logo::after, .logo::after{
  content:"";
  position:absolute; inset:4px;
  background-color: var(--ink);
  -webkit-mask-image: url(data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><g fill="%23fff"><rect x="5" y="6" width="13" height="11" rx="2" ry="2"/><rect x="9" y="3" width="13" height="11" rx="2" ry="2" transform="rotate(-8 15.5 8.5)"/></g></svg>);
          mask-image: url(data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><g fill="%23fff"><rect x="5" y="6" width="13" height="11" rx="2" ry="2"/><rect x="9" y="3" width="13" height="11" rx="2" ry="2" transform="rotate(-8 15.5 8.5)"/></g></svg>);
  -webkit-mask-repeat: no-repeat;    mask-repeat: no-repeat;
  -webkit-mask-position: center;     mask-position: center;
  -webkit-mask-size: 92% 92%;        mask-size: 92% 92%;
  opacity:.98;
}

/* === Logo fallback for browsers without CSS mask support === */
@supports not ((-webkit-mask-image: url("")) or (mask-image: url(""))) {
  .brand .logo::after, .logo::after{
    content:""; position:absolute; inset:4px;
    background: none;
    background-image: url("/assets/logo-polaroid.svg");
    background-repeat:no-repeat; background-position:center; background-size:92% 92%;
    filter: var(--logo-filter, invert(0)); /* light: black, dark: white */
    opacity:.98;
  }
  :root[data-theme="dark"]{ --logo-filter: invert(1); }
}


/* === Logo override: use PNG as bg, theme-aware via filter === */
.brand .logo::after, .logo::after{
  content:""; position:absolute; inset:6px;
  background: none;
  background-image: url("/assets/logo-polaroid.png");
  background-repeat:no-repeat; background-position:center; background-size:92% 92%;
  filter: var(--logo-filter, invert(0));
  opacity:.98;
}
/* Light = normal (black); Dark = invert to white */
:root[data-theme="dark"]{ --logo-filter: invert(1) brightness(1.1); }

/* === Logo inner-plate so PNG isn't see-through ================== */
/* Outer gradient box stays. We add a solid plate under the PNG. */
.brand .logo, .logo{ position:relative; }

.brand .logo::before, .logo::before{
  content:"";
  position:absolute; inset:5px;          /* inner margin */
  border-radius:8px;
  background: var(--logo-plate, #0b0f17); /* dark plate by default */
  box-shadow: inset 0 0 0 1px var(--border);
}

/* Put the PNG on top of the plate */
.brand .logo::after, .logo::after{
  content:"";
  position:absolute; inset:7px;          /* slight padding inside plate */
  background-image: url("/assets/logo-polaroid.png");
  background-repeat:no-repeat; background-position:center; background-size:92% 92%;
  filter: var(--logo-filter, invert(1));  /* white icon on dark plate by default */
  opacity:.98;
}

/* Light mode: use light plate and dark icon */
:root[data-theme="light"]{
  --logo-plate: #ffffff;
  --logo-filter: invert(0);               /* black icon on light plate */
}

/* -- Logo: transparent SVG over gradient box (no plate), theme-aware -- */
.brand .logo::before, .logo::before{ display:none !important; } /* remove solid plate */
.brand .logo::after, .logo::after{
  content:"";
  position:absolute; inset:6px;
  background: none;
  background-image: url("/assets/logo-polaroid.svg"); /* transparent SVG */
  background-repeat:no-repeat; background-position:center; background-size:90% 90%;
  filter: var(--logo-filter, invert(0)); /* light: black */
  opacity:.98;
}
:root[data-theme="dark"]{ --logo-filter: invert(1) brightness(1.05); } /* dark: white */

/* === Final logo override: use uploaded PNG directly (keeps transparency) === */
.brand .logo::before, .logo::before{ display:none !important; } /* no inner plate */
.brand .logo::after, .logo::after{
  content:""; position:absolute; inset:6px;
  background: none;
  background-image: url("/assets/logo-polaroid-user.png");
  background-repeat:no-repeat; background-position:center; background-size:92% 92%;
  filter: none;  /* use the PNG’s original colors */
  opacity:.98;
}

/* === mem-xfer iPhone polish (theme-aware) === */
#mem-xfer .iphone{
  width:280px; height:560px; border-radius:42px; padding:18px;
  background: var(--card); border:1px solid var(--border);
  box-shadow:0 12px 36px rgba(0,0,0,.25); position:relative;
}
#mem-xfer .iphone::before{ /* notch */
  content:""; position:absolute; top:10px; left:50%; transform:translateX(-50%);
  width:94px; height:20px; border-radius:12px;
  background: var(--ink); opacity:.18;
}
#mem-xfer .iphone::after{ /* home indicator */
  content:""; position:absolute; bottom:10px; left:50%; transform:translateX(-50%);
  width:120px; height:5px; border-radius:3px;
  background: var(--ink); opacity:.25;
}
#mem-xfer .screen{
  width:100%; height:100%; border-radius:28px; background:#000;
  display:flex; align-items:center; justify-content:center;
  overflow:hidden; position:relative; border:1px solid var(--border);
}

/* Left frame: larger, never cropped */
#mem-xfer .frame{
  width:420px; height:300px; border-radius:12px; overflow:hidden;
  background:#fff; border:1px solid var(--border);
  box-shadow:0 8px 24px rgba(0,0,0,.2);
}
#mem-xfer .frame img{ width:100%; height:100%; object-fit:contain; }

/* Smoother fades */
#mem-xfer img.fade{ transition: opacity .8s ease; }

/* ===== Mobile polish (<= 700px) ===== */
@media (max-width:700px){
  /* Layout & spacing */
  .container{ width:92% !important; margin:auto !important; }
  section{ padding:22px 0 !important; }
  .card{ padding:16px !important; }

  /* Headings a bit smaller to avoid wrapping */
  h1{ font-size:1.6rem !important; line-height:1.2; }
  h2{ font-size:1.25rem !important; line-height:1.25; }
  h3{ font-size:1.05rem !important; }

  /* Navigation wraps instead of overflowing */
  header .nav nav{ display:flex; flex-wrap:wrap; gap:8px; }
  header .nav a{ padding:.45rem .7rem !important; }

  /* Buttons: easier to tap */
  .btn{ width:100%; justify-content:center; padding:.85rem 1rem !important; }

  /* Pricing grids: single column */
  .pricing{ display:grid !important; grid-template-columns:1fr !important; gap:14px !important; }

  /* Tables: horizontal scroll if needed */
  table{ display:block; overflow-x:auto; -webkit-overflow-scrolling:touch; }
  th,td{ padding:10px 12px !important; font-size:.95rem; }

  /* Admin table (if viewed on phone) */
  .table{ display:block; overflow-x:auto; }

  /* Hero “mem-xfer” block */
  #mem-xfer .transfer-wrap{ display:block !important; }
  #mem-xfer .frame{ width:100% !important; height:auto !important; }
  #mem-xfer .frame img{ width:100% !important; height:auto !important; object-fit:contain !important; }
  #mem-xfer .iphone{ width:240px !important; height:480px !important; margin:14px auto 0 !important; }
  #mem-xfer .screen{ border-radius:22px !important; }
  #mem-xfer .screen img{ width:92% !important; height:auto !important; }
  #mem-xfer .arrow, #mem-xfer .emoji-arrow{ display:none !important; } /* hide big arrow on small screens */

  /* Footer spacing */
  footer .container{ padding-bottom:18px; }
}

/* Slightly wider phones (<= 900px): make two-column areas stack nicely */
@media (max-width:900px){
  .grid.cols-2{ display:block !important; }
}
/* ===== Sticky header with breathing room ===== */
header{ position:sticky; top:0; z-index:40; backdrop-filter:saturate(140%) blur(8px); }
header .container{ padding:10px 0 !important; }
@supports (padding: max(0px)) {
  header{ padding-top: max(env(safe-area-inset-top),0px); }
}

/* ===== Lightbulb theme button (top-right) ===== */
#themeFab{
  position:fixed; top:12px; right:12px; z-index:50;
  width:40px; height:40px; border-radius:12px; border:1px solid var(--border);
  background: linear-gradient(180deg,var(--brand),var(--brand2));
  box-shadow: 0 8px 20px rgba(0,0,0,.25);
  display:grid; place-items:center; cursor:pointer;
}
#themeFab svg{ width:22px; height:22px; fill:#fff; opacity:.95 }

/* Don’t overlap the big CTA */
@media (max-width:700px){ .cta-strip{ margin-top:8px } }

/* ===== Mobile nav: pill links in a scroll row ===== */
.nav-pills{ display:flex; gap:10px; overflow-x:auto; -webkit-overflow-scrolling:touch; padding:8px 0 12px }
.nav-pills a{
  display:inline-flex; align-items:center; white-space:nowrap;
  padding:.55rem .9rem; border-radius:999px; text-decoration:none;
  background: var(--card); border:1px solid var(--border); color:var(--ink);
}
.nav-pills::-webkit-scrollbar{ display:none }

@media (max-width:700px){
  h1{ font-size:1.55rem !important; line-height:1.2 }
  h2{ font-size:1.25rem !important }
  .container{ width:92% !important }
  section{ padding:22px 0 !important }

  /* hero: add top breathing room */
  #mem-xfer{ margin-top:8px }
  #mem-xfer .frame{ width:100% !important; height:auto !important }
  #mem-xfer .frame img{ width:100% !important; height:auto !important; object-fit:contain !important }
  #mem-xfer .iphone{ width:230px !important; height:460px !important; margin:14px auto 0 !important }
}
/* Fabs row (top-right) */
#fabRow{
  position:fixed; top:12px; right:12px; z-index:60;
  display:flex; gap:10px;
}
.fab{
  width:40px; height:40px; border-radius:12px; border:1px solid var(--border);
  background: var(--card); display:grid; place-items:center; cursor:pointer;
  box-shadow:0 8px 20px rgba(0,0,0,.25);
}
.fab svg{ width:22px; height:22px; fill:var(--ink); opacity:.95 }

/* Sticky header w/ breathing room */
header{ position:sticky; top:0; z-index:40; backdrop-filter:saturate(140%) blur(8px); }
header .container{ padding:12px 0 !important; }

/* Drawer nav */
#scrim{
  position:fixed; inset:0; background:rgba(0,0,0,.4); z-index:55;
  opacity:0; pointer-events:none; transition:opacity .2s ease;
}
#drawer{
  position:fixed; top:0; right:0; width:min(86vw,380px); height:100vh; z-index:56;
  background:var(--bg); border-left:1px solid var(--border);
  transform:translateX(100%); transition:transform .25s ease;
  display:flex; flex-direction:column; padding:16px;
}
#drawer a{
  padding:.9rem 1rem; border-radius:10px; text-decoration:none; color:var(--ink);
  border:1px solid var(--border); background:var(--card); margin-bottom:10px;
}
#drawer.open{ transform:translateX(0) }
#scrim.show{ opacity:1; pointer-events:auto }

/* Hero: mobile fit & not cropped */
#mem-xfer .frame{ width:100%; max-width:520px; height:auto; border-radius:12px; overflow:hidden;
  background:#fff; border:1px solid var(--border); box-shadow:0 8px 24px rgba(0,0,0,.2); margin:auto;
}
#mem-xfer .frame img{ width:100%; height:auto; object-fit:contain !important; }
#mem-xfer .iphone{ width:260px; height:520px; margin:14px auto 0; border-radius:42px; padding:18px;
  background: var(--card); border:1px solid var(--border); box-shadow:0 12px 36px rgba(0,0,0,.25); position:relative;
}
#mem-xfer .iphone::before{ content:""; position:absolute; top:10px; left:50%; transform:translateX(-50%);
  width:94px; height:20px; border-radius:12px; background:var(--ink); opacity:.18; }
#mem-xfer .iphone::after{ content:""; position:absolute; bottom:10px; left:50%; transform:translateX(-50%);
  width:120px; height:5px; border-radius:3px; background:var(--ink); opacity:.25; }
#mem-xfer .screen{ width:100%; height:100%; border-radius:28px; background:#000; display:flex; align-items:center; justify-content:center; overflow:hidden; position:relative; border:1px solid var(--border); }
#mem-xfer img.fade{ transition:opacity .8s ease; }

/* Mobile tweaks */
@media (max-width:700px){
  .container{ width:92% !important; }
  section{ padding:22px 0 !important; }
  h1{ font-size:1.55rem !important; line-height:1.2 }
  #mem-xfer{ margin-top:6px; }
  #mem-xfer .iphone{ width:230px; height:460px; }
}
/* Fabs row (top-right) */
#fabRow{
  position:fixed; top:12px; right:12px; z-index:60;
  display:flex; gap:10px;
}
.fab{
  width:40px; height:40px; border-radius:12px; border:1px solid var(--border);
  background: var(--card); display:grid; place-items:center; cursor:pointer;
  box-shadow:0 8px 20px rgba(0,0,0,.25);
}
.fab svg{ width:22px; height:22px; fill:var(--ink); opacity:.95 }

/* Sticky header w/ breathing room */
header{ position:sticky; top:0; z-index:40; backdrop-filter:saturate(140%) blur(8px); }
header .container{ padding:12px 0 !important; }

/* Drawer nav */
#scrim{
  position:fixed; inset:0; background:rgba(0,0,0,.4); z-index:55;
  opacity:0; pointer-events:none; transition:opacity .2s ease;
}
#drawer{
  position:fixed; top:0; right:0; width:min(86vw,380px); height:100vh; z-index:56;
  background:var(--bg); border-left:1px solid var(--border);
  transform:translateX(100%); transition:transform .25s ease;
  display:flex; flex-direction:column; padding:16px;
}
#drawer a{
  padding:.9rem 1rem; border-radius:10px; text-decoration:none; color:var(--ink);
  border:1px solid var(--border); background:var(--card); margin-bottom:10px;
}
#drawer.open{ transform:translateX(0) }
#scrim.show{ opacity:1; pointer-events:auto }

/* Hero: mobile fit & not cropped */
#mem-xfer .frame{ width:100%; max-width:520px; height:auto; border-radius:12px; overflow:hidden;
  background:#fff; border:1px solid var(--border); box-shadow:0 8px 24px rgba(0,0,0,.2); margin:auto;
}
#mem-xfer .frame img{ width:100%; height:auto; object-fit:contain !important; }
#mem-xfer .iphone{ width:260px; height:520px; margin:14px auto 0; border-radius:42px; padding:18px;
  background: var(--card); border:1px solid var(--border); box-shadow:0 12px 36px rgba(0,0,0,.25); position:relative;
}
#mem-xfer .iphone::before{ content:""; position:absolute; top:10px; left:50%; transform:translateX(-50%);
  width:94px; height:20px; border-radius:12px; background:var(--ink); opacity:.18; }
#mem-xfer .iphone::after{ content:""; position:absolute; bottom:10px; left:50%; transform:translateX(-50%);
  width:120px; height:5px; border-radius:3px; background:var(--ink); opacity:.25; }
#mem-xfer .screen{ width:100%; height:100%; border-radius:28px; background:#000; display:flex; align-items:center; justify-content:center; overflow:hidden; position:relative; border:1px solid var(--border); }
#mem-xfer img.fade{ transition:opacity .8s ease; }

/* Mobile tweaks */
@media (max-width:700px){
  .container{ width:92% !important; }
  section{ padding:22px 0 !important; }
  h1{ font-size:1.55rem !important; line-height:1.2 }
  #mem-xfer{ margin-top:6px; }
  #mem-xfer .iphone{ width:230px; height:460px; }
}
/* --- Right-side action pair --- */
#actionPair{position:fixed; top:12px; right:12px; z-index:70; display:flex; gap:10px}
.btn-icon{
  width:42px; height:42px; border-radius:12px; border:1px solid var(--border);
  background:var(--card); display:grid; place-items:center;
  box-shadow:0 8px 20px rgba(0,0,0,.25); cursor:pointer;
}
.btn-icon svg{width:22px; height:22px; fill:var(--ink); opacity:.95}
@media (max-width:700px){
  #actionPair{ top:10px; right:10px }
}
/* === Top-right controls (paintbrush + lightbulb) === */
#actionPair{position:fixed;top:12px;right:12px;z-index:70;display:flex;gap:10px}
.btn-icon{width:42px;height:42px;border-radius:12px;border:1px solid var(--border);
  background:var(--card);display:grid;place-items:center;box-shadow:0 8px 20px rgba(0,0,0,.25);cursor:pointer}
.btn-icon svg{width:22px;height:22px;fill:var(--ink);opacity:.95}

/* === Theme popover menu opened by paintbrush === */
#themeMenu{
  position:fixed; top:60px; right:12px; z-index:71; min-width:240px;
  padding:12px; border-radius:14px; border:1px solid var(--border);
  background:var(--card); box-shadow:0 18px 40px rgba(0,0,0,.28); display:none;
}
#themeMenu.open{ display:block }
#themeMenu .row{ display:flex; align-items:center; gap:8px; margin:6px 0 }
#themeMenu .lbl{ opacity:.8; width:60px; font-size:.9rem }
#themeMenu button[data-theme]{ padding:.45rem .7rem; border-radius:999px; border:1px solid var(--border);
  background:transparent; color:var(--ink); cursor:pointer }
#themeMenu button[data-theme].active{ background:linear-gradient(180deg,var(--brand),var(--brand2)); color:#fff; border-color:transparent }
#themeMenu .swatch{ width:22px; height:22px; border-radius:50%; border:1px solid var(--border); cursor:pointer }
#themeMenu .swatch.purple{ background:#6c63ff } .swatch.teal{ background:#20c997 }
.swatch.rose{ background:#e83e8c } .swatch.amber{ background:#ffb300 }

/* Mobile breathing room */
@media (max-width:700px){
  #actionPair{ top:10px; right:10px }
  #themeMenu{ top:56px; right:10px }
}
/* === Cleanup guard (old left/top floating controls) === */
#fabRow,#top-actions,#themeFab,#menuFab,#lightbulb-btn{display:none!important}
*[style*="position:fixed"][style*="left:12px"],
*[style*="position:fixed"][style*="left: 12px"]{display:none!important}
/* === Right-side theme controls === */
#actionPair{position:fixed;top:12px;right:12px;z-index:70;display:flex;gap:10px}
.btn-icon{width:42px;height:42px;border-radius:12px;border:1px solid var(--border);
  background:var(--card);display:grid;place-items:center;box-shadow:0 8px 20px rgba(0,0,0,.25);cursor:pointer}
.btn-icon svg{width:22px;height:22px;fill:var(--ink);opacity:.95}

/* Popover menu opened by paintbrush */
#themeMenu{position:fixed;top:60px;right:12px;z-index:71;min-width:240px;padding:12px;border-radius:14px;
  border:1px solid var(--border);background:var(--card);box-shadow:0 18px 40px rgba(0,0,0,.28);display:none}
#themeMenu.open{display:block}
#themeMenu .row{display:flex;align-items:center;gap:8px;margin:6px 0}
#themeMenu .lbl{opacity:.8;width:60px;font-size:.9rem}
#themeMenu button[data-theme]{padding:.45rem .7rem;border-radius:999px;border:1px solid var(--border);background:transparent;color:var(--ink);cursor:pointer}
#themeMenu button[data-theme].active{background:linear-gradient(180deg,var(--brand),var(--brand2));color:#fff;border-color:transparent}
#themeMenu .swatch{width:22px;height:22px;border-radius:50%;border:1px solid var(--border);cursor:pointer}
#themeMenu .swatch.purple{background:#6c63ff}.swatch.teal{background:#20c997}.swatch.rose{background:#e83e8c}.swatch.amber{background:#ffb300}

@media (max-width:700px){ #actionPair{top:10px;right:10px} #themeMenu{top:56px;right:10px} }

/* Guard: hide any legacy left-floating controls */
#fabRow,#top-actions,#themeFab,#menuFab,#lightbulb-btn{display:none!important}
*[style*="position:fixed"][style*="left:12px"],*[style*="position:fixed"][style*="left: 12px"]{display:none!important}
/* === Right-side theme controls (external) === */
#actionPair{position:fixed;top:12px;right:12px;z-index:90;display:flex;gap:10px}
.btn-icon{width:42px;height:42px;border-radius:12px;border:1px solid var(--border);
  background:var(--card);display:grid;place-items:center;box-shadow:0 8px 20px rgba(0,0,0,.25);cursor:pointer}
.btn-icon svg{width:22px;height:22px;fill:var(--ink);opacity:.95}

#themeMenu{position:fixed;top:60px;right:12px;z-index:91;min-width:240px;padding:12px;border-radius:14px;
  border:1px solid var(--border);background:var(--card);box-shadow:0 18px 40px rgba(0,0,0,.28);display:none}
#themeMenu.open{display:block}
#themeMenu .row{display:flex;align-items:center;gap:8px;margin:6px 0}
#themeMenu .lbl{opacity:.8;width:60px;font-size:.9rem}
#themeMenu button[data-theme]{padding:.45rem .7rem;border-radius:999px;border:1px solid var(--border);background:transparent;color:var(--ink);cursor:pointer}
#themeMenu button[data-theme].active{background:linear-gradient(180deg,var(--brand),var(--brand2));color:#fff;border-color:transparent}
#themeMenu .swatch{width:22px;height:22px;border-radius:50%;border:1px solid var(--border);cursor:pointer}
#themeMenu .swatch.purple{background:#6c63ff}.swatch.teal{background:#20c997}.swatch.rose{background:#e83e8c}.swatch.amber{background:#ffb300}

@media (max-width:700px){ #actionPair{top:10px;right:10px} #themeMenu{top:56px;right:10px} }

/* Hide any legacy left-floating controls just in case */
#fabRow,#top-actions,#themeFab,#menuFab,#lightbulb-btn{display:none!important}
/* guard: hide any legacy themebar */
.themebar, #themebar { display:none !important; }
/* === Mobile QuickNav (shows only Pricing + How it works) === */
#quickNav{display:none; gap:10px; align-items:center; justify-content:space-between; padding:10px 0;}
#quickNav .pill{
  display:inline-flex; align-items:center; padding:.55rem .9rem; border-radius:999px;
  text-decoration:none; background:var(--card); border:1px solid var(--border); color:var(--ink);
}
#quickNav .pill:active{transform:scale(.98)}
#quickNav .hamb{
  width:42px; height:42px; border-radius:12px; border:1px solid var(--border);
  background:var(--card); display:grid; place-items:center; box-shadow:0 8px 20px rgba(0,0,0,.15);
}
#quickNav .hamb svg{width:22px;height:22px;fill:var(--ink);opacity:.95}

/* Drawer */
#drawerScrim{position:fixed; inset:0; background:rgba(0,0,0,.45); z-index:60; opacity:0; pointer-events:none; transition:opacity .22s}
#mobileDrawer{
  position:fixed; top:0; right:0; width:min(86vw,380px); height:100vh; z-index:61;
  background:var(--bg); border-left:1px solid var(--border);
  transform:translateX(100%); transition:transform .25s; display:flex; flex-direction:column; padding:16px 14px;
}
#mobileDrawer a{
  padding:.9rem 1rem; border-radius:10px; text-decoration:none; color:var(--ink);
  border:1px solid var(--border); background:var(--card); margin-bottom:10px;
}
#mobileDrawer.open{ transform:translateX(0) }  #drawerScrim.show{ opacity:1; pointer-events:auto }

/* Show QuickNav on small screens; hide existing header nav */
@media (max-width:900px){
  header nav{ display:none !important; }
  #quickNav{ display:flex; }
}
/* On larger screens, hide mobile bits entirely */
@media (min-width:901px){
  #quickNav, #mobileDrawer, #drawerScrim{ display:none !important; }
}
/* === Mobile left hamburger (beside site name) === */
#mobileHambLeft{
  display:none; position:absolute; left:12px; top:50%; transform:translateY(-50%);
  width:42px; height:42px; border-radius:12px; border:1px solid var(--border);
  background:var(--card); box-shadow:0 8px 20px rgba(0,0,0,.15); display:grid; place-items:center; z-index:45;
}
#mobileHambLeft svg{ width:22px; height:22px; fill:var(--ink); opacity:.95 }

@media (max-width:900px){
  header{ position:relative }
  #mobileHambLeft{ display:grid }
  /* give the title breathing room so the button doesn't overlap it */
  header .container{ padding-left:56px !important; }
}

/* Drawer bits (reuse if already present) */
#drawerScrim{position:fixed; inset:0; background:rgba(0,0,0,.45); z-index:60; opacity:0; pointer-events:none; transition:opacity .22s}
#mobileDrawer{
  position:fixed; top:0; right:0; width:min(86vw,380px); height:100vh; z-index:61;
  background:var(--bg); border-left:1px solid var(--border);
  transform:translateX(100%); transition:transform .25s; display:flex; flex-direction:column; padding:16px 14px;
}
#mobileDrawer a{
  padding:.9rem 1rem; border-radius:10px; text-decoration:none; color:var(--ink);
  border:1px solid var(--border); background:var(--card); margin-bottom:10px;
}
#mobileDrawer.open{ transform:translateX(0) }
#drawerScrim.show{ opacity:1; pointer-events:auto }
/* --- Put theme controls inside header (no floating while scrolling) --- */
header .container{ position:relative } /* anchor absolute children */
#actionPair{ position:absolute !important; top:12px; right:12px; z-index:40; }
@media (max-width:700px){ #actionPair{ top:10px; right:10px } }
/* === mem-xfer responsive polish === */
#mem-xfer .wrap{display:flex;justify-content:center;align-items:center;gap:22px;flex-wrap:wrap}
#mem-xfer .frame{width:420px;max-width:100%;border-radius:12px;overflow:hidden;background:#fff;border:1px solid var(--border);box-shadow:0 8px 24px rgba(0,0,0,.2)}
#mem-xfer .frame img{width:100%;height:auto;object-fit:contain}
#mem-xfer .iphone{width:260px;height:520px;border-radius:42px;padding:18px;background:var(--card);border:1px solid var(--border);box-shadow:0 12px 36px rgba(0,0,0,.25);position:relative}
#mem-xfer .iphone::before{content:"";position:absolute;top:10px;left:50%;transform:translateX(-50%);width:94px;height:20px;border-radius:12px;background:var(--ink);opacity:.18}
#mem-xfer .iphone::after{content:"";position:absolute;bottom:10px;left:50%;transform:translateX(-50%);width:120px;height:5px;border-radius:3px;background:var(--ink);opacity:.25}
#mem-xfer .screen{width:100%;height:100%;border-radius:28px;background:#000;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative;border:1px solid var(--border)}
#mem-xfer img.fade{transition:opacity .8s ease}
#mem-xfer .arrow-side{font-size:44px;opacity:.8}
#mem-xfer .arrow-down{display:none;font-size:36px;opacity:.8;margin:8px 0}

/* Mobile: stack vertically, show down arrow, hide side arrow, scale phone */
@media (max-width:700px){
  #mem-xfer .wrap{display:block}
  #mem-xfer .frame{margin:auto}
  #mem-xfer .arrow-side{display:none}
  #mem-xfer .arrow-down{display:block;text-align:center}
  #mem-xfer .iphone{width:230px;height:460px;margin:10px auto 0}
}
/* ===== Pricing page mobile CTA + image fixes ===== */
.mobile-quote-cta{ display:none; }

@media (max-width:700px){
  /* Show CTA only on pricing page, mobile */
  body[data-page="pricing"] .mobile-quote-cta{
    display:block; position:fixed; left:50%; transform:translateX(-50%);
    bottom: max(12px, env(safe-area-inset-bottom)); z-index:80;
    width:92%; max-width:640px;
  }
  body[data-page="pricing"] .mobile-quote-cta a{
    display:block; text-align:center; padding:0.9rem 1rem; border-radius:12px;
    text-decoration:none; font-weight:700;
    background: linear-gradient(180deg,var(--brand),var(--brand2));
    color:#fff; border:1px solid transparent; box-shadow:0 8px 20px rgba(0,0,0,.25);
  }
  /* avoid content hiding under the fixed CTA */
  body[data-page="pricing"] main{ padding-bottom:84px; }

  /* Image de-crop on pricing page */
  body[data-page="pricing"] img{
    width:100% !important; height:auto !important; max-height:none !important;
    object-fit:contain !important; display:block;
  }
  /* If any wrappers are forcing a fixed height/cropping, relax them */
  body[data-page="pricing"] .card, 
  body[data-page="pricing"] .bundle, 
  body[data-page="pricing"] .pricing figure,
  body[data-page="pricing"] .pricing .image,
  body[data-page="pricing"] .pricing .thumb{
    overflow:visible !important;
    height:auto !important; max-height:none !important;
  }
}
/* === mem-xfer frame fix: no white bleed, absolute stacked images === */
#mem-xfer .frame{
  position:relative;
  width:420px; max-width:100%;
  aspect-ratio: 4 / 3;                /* keep a steady height */
  border-radius:12px;
  overflow:hidden;
  background:var(--card);             /* match site, not pure white */
  border:1px solid var(--border);
  box-shadow:0 8px 24px rgba(0,0,0,.2);
}
#mem-xfer .frame img{
  position:absolute; inset:0;         /* stack perfectly */
  width:100%; height:100%;
  object-fit:contain;                  /* never crop the photo */
  background:transparent;
}
/* --- theme buttons placement fix --- */
/* default (mobile/tablet): top-right */
#actionPair{ position:absolute; top:12px; right:12px; z-index:40; }

/* desktop: move left so it doesn't overlap the "Get a quote" pill */
@media (min-width: 900px){
  #actionPair{ position:absolute; top:12px; right:150px; } /* adjust if needed (120–180px) */
}
/* --- place theme buttons at the RIGHT on desktop, with space for the CTA --- */
@media (min-width:900px){
  /* keep buttons on the right */
  #actionPair{ position:absolute; top:12px; right:12px !important; z-index:40; }
  /* reserve space so the Quote pill doesn't sit underneath */
  header .container{ padding-right: 190px !important; } /* adjust 160–220px if needed */
}
