:root {
  color-scheme: light dark;
  --bg:#eef1f6; --bg-2:#e7ebf2; --card:#ffffff; --text:#141821; --muted:#697386;
  --brand:#4f46e5; --brand-2:#7c3aed; --brand-d:#4338ca; --line:#e4e8ef; --line-2:#eef1f6;
  --ok:#16a34a; --ok-bg:#dcfce7; --warn:#d97706; --warn-bg:#fef3c7; --err:#dc2626; --err-bg:#fee2e2;
  --star:#f59e0b; --shadow:0 1px 2px rgba(16,24,40,.04), 0 8px 24px rgba(16,24,40,.06);
  --shadow-lg:0 12px 40px rgba(16,24,40,.12); --radius:18px;
}
@media (prefers-color-scheme: dark) {
  :root {
    --bg:#0b0d12; --bg-2:#0e1117; --card:#151922; --text:#eef1f7; --muted:#98a2b3;
    --line:#232a36; --line-2:#1b212b; --shadow:0 1px 2px rgba(0,0,0,.4), 0 10px 30px rgba(0,0,0,.35);
    --shadow-lg:0 16px 50px rgba(0,0,0,.5); --ok-bg:#0e2a1a; --warn-bg:#2a2110; --err-bg:#2a1414;
  }
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  margin:0; color:var(--text); min-height:100vh;
  background:
    radial-gradient(1200px 600px at 15% -10%, color-mix(in srgb, var(--brand) 14%, transparent), transparent 60%),
    radial-gradient(1000px 500px at 110% 0%, color-mix(in srgb, var(--brand-2) 12%, transparent), transparent 55%),
    var(--bg);
  font-family: "Inter", system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  -webkit-font-smoothing:antialiased;
}
.wrap { max-width:1140px; margin:0 auto; padding:0 24px; }

/* ---- Header ---- */
header { position:sticky; top:0; z-index:20; backdrop-filter:saturate(180%) blur(12px);
  background:color-mix(in srgb, var(--card) 82%, transparent); border-bottom:1px solid var(--line); }
header .wrap { display:flex; align-items:center; gap:14px; padding:14px 24px; }
.logo { display:flex; align-items:center; gap:11px; }
.logo .mark { width:38px; height:38px; border-radius:11px; display:grid; place-items:center;
  background:linear-gradient(135deg, var(--brand), var(--brand-2)); color:#fff; font-size:1.15rem;
  box-shadow:0 6px 16px color-mix(in srgb, var(--brand) 45%, transparent); }
header h1 { font-size:1.15rem; margin:0; letter-spacing:-.01em; }
header .tag { font-size:.72rem; color:var(--muted); margin-top:1px; }
.badge { margin-left:auto; font-size:.74rem; font-weight:700; padding:6px 13px; border-radius:999px;
  background:var(--line); color:var(--muted); display:inline-flex; align-items:center; gap:7px; }
.badge::before { content:""; width:7px; height:7px; border-radius:50%; background:currentColor; }
.badge.live { background:var(--err-bg); color:var(--err); }
.badge.dry  { background:var(--ok-bg); color:var(--ok); }
.account { display:flex; align-items:center; gap:10px; }
.acct-email { font-size:.8rem; color:var(--muted); max-width:180px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.account .ghost { padding:7px 12px; font-size:.82rem; white-space:nowrap; }
@media (max-width:600px){ .acct-email { display:none; } header .tag { display:none; } }

/* ---- Layout ---- */
main { display:grid; grid-template-columns:minmax(310px,390px) 1fr; gap:24px; padding:28px 24px 60px; align-items:start; }
@media (max-width:860px){ main{ grid-template-columns:1fr; } }
.col { display:flex; flex-direction:column; gap:24px; }

.card { background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  padding:22px; box-shadow:var(--shadow); }
.card.empty { color:var(--muted); text-align:center; padding:64px 24px; }
.card.empty .emoji { font-size:2.6rem; display:block; margin-bottom:10px; }
.card h2 { margin:0 0 16px; font-size:1.05rem; letter-spacing:-.01em; display:flex; align-items:center; gap:8px; }
.detail-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:6px; }
.detail-head h2 { margin:0; }
.btn-danger { background:var(--err-bg); color:var(--err); border:1px solid color-mix(in srgb, var(--err) 30%, var(--line));
  padding:8px 14px; font-size:.85rem; }
.btn-danger:hover { background:var(--err); color:#fff; }
.card h3 { margin:22px 0 10px; font-size:.75rem; color:var(--muted); text-transform:uppercase; letter-spacing:.06em; font-weight:700; }
.card h3:first-child { margin-top:0; }

label { display:block; font-size:.83rem; font-weight:600; margin-bottom:14px; color:var(--text); }
input, textarea, select { width:100%; margin-top:6px; padding:11px 13px; border:1px solid var(--line);
  border-radius:11px; font:inherit; background:var(--bg-2); color:var(--text); font-weight:400; transition:border-color .15s, box-shadow .15s; }
input:focus, textarea:focus { outline:none; border-color:var(--brand);
  box-shadow:0 0 0 4px color-mix(in srgb, var(--brand) 16%, transparent); background:var(--card); }
textarea { min-height:96px; resize:vertical; line-height:1.5; }

button { font:inherit; cursor:pointer; border:none; border-radius:11px; padding:11px 18px; font-weight:650; transition:transform .08s, filter .15s, background .15s; }
button:active { transform:translateY(1px); }
button.primary { background:linear-gradient(135deg, var(--brand), var(--brand-2)); color:#fff;
  box-shadow:0 8px 20px color-mix(in srgb, var(--brand) 34%, transparent); width:100%; }
button.primary:hover { filter:brightness(1.06); }
button.ghost { background:var(--bg-2); color:var(--text); border:1px solid var(--line); }
button.ghost:hover { border-color:var(--brand); color:var(--brand); }
button:disabled { opacity:.55; cursor:not-allowed; transform:none; }
.hint { font-size:.78rem; color:var(--muted); margin:11px 0 0; line-height:1.5; }
.hint code { background:var(--bg-2); padding:1px 6px; border-radius:6px; font-size:.9em; }

/* ---- Business list ---- */
ul.list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px; }
ul.list li { padding:14px; border:1px solid var(--line); border-radius:13px; cursor:pointer;
  display:flex; justify-content:space-between; align-items:center; gap:10px; transition:border-color .15s, transform .1s, box-shadow .15s; }
ul.list li:hover { border-color:color-mix(in srgb, var(--brand) 55%, var(--line)); transform:translateY(-1px); box-shadow:var(--shadow); }
ul.list li.active { border-color:var(--brand); background:color-mix(in srgb, var(--brand) 7%, var(--card));
  box-shadow:0 0 0 1px var(--brand) inset; }
ul.list .avatar { width:38px; height:38px; border-radius:10px; flex:0 0 auto; display:grid; place-items:center;
  font-weight:700; color:#fff; background:linear-gradient(135deg, var(--brand), var(--brand-2)); }
ul.list .who { display:flex; align-items:center; gap:11px; min-width:0; }
ul.list .name { font-weight:650; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
ul.list .sub { font-size:.77rem; color:var(--muted); }
ul.list .rating { font-size:.82rem; font-weight:700; color:var(--star); white-space:nowrap; }

/* ---- Stats ---- */
.stats { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin:4px 0 8px; }
@media (max-width:520px){ .stats{ grid-template-columns:repeat(2,1fr); } }
.stat { background:linear-gradient(180deg, var(--bg-2), var(--card)); border:1px solid var(--line);
  border-radius:14px; padding:14px 12px; text-align:center; }
.stat .n { font-size:1.6rem; font-weight:800; letter-spacing:-.02em; line-height:1.1; }
.stat .l { font-size:.7rem; color:var(--muted); margin-top:3px; text-transform:uppercase; letter-spacing:.04em; font-weight:600; }

/* ---- Link + QR ---- */
.linkrow { display:flex; gap:9px; align-items:center; margin:8px 0; flex-wrap:wrap; }
.linkrow input { font-family:ui-monospace,"SF Mono",monospace; font-size:.8rem; flex:1; min-width:180px; }
.qr { display:flex; gap:18px; align-items:center; flex-wrap:wrap; margin-top:6px; }
.qr img { width:158px; height:158px; border:1px solid var(--line); border-radius:14px; background:#fff; padding:8px; }

/* ---- Reviews table ---- */
table { width:100%; border-collapse:collapse; font-size:.85rem; }
th, td { text-align:left; padding:10px 8px; border-bottom:1px solid var(--line-2); vertical-align:top; }
th { color:var(--muted); font-weight:700; font-size:.72rem; text-transform:uppercase; letter-spacing:.04em; }
tbody tr:hover { background:var(--bg-2); }
.pill { font-size:.72rem; padding:3px 10px; border-radius:999px; font-weight:700; white-space:nowrap; }
.pill.google { background:var(--ok-bg); color:var(--ok); }
.pill.private { background:var(--warn-bg); color:var(--warn); }
.stars-mini { color:var(--star); letter-spacing:1px; white-space:nowrap; }

/* ---- Misc ---- */
.result { margin-top:14px; padding:14px; border-radius:12px; font-size:.86rem; background:var(--bg-2); border:1px solid var(--line); line-height:1.6; }
.result.ok { border-color:color-mix(in srgb, var(--ok) 45%, var(--line)); background:color-mix(in srgb, var(--ok) 7%, var(--card)); }
.muted { color:var(--muted); }
.tabs { display:flex; gap:8px; margin:18px 0 18px; flex-wrap:wrap; }
.tabs button { background:var(--bg-2); border:1px solid var(--line); color:var(--muted); padding:9px 16px; font-size:.86rem; }
.tabs button:hover { color:var(--text); }
.tabs button.on { background:linear-gradient(135deg, var(--brand), var(--brand-2)); color:#fff; border-color:transparent;
  box-shadow:0 6px 16px color-mix(in srgb, var(--brand) 30%, transparent); }
.tabpane { display:none; animation:fade .2s ease; }
.tabpane.on { display:block; }
@keyframes fade { from{ opacity:0; transform:translateY(4px); } to{ opacity:1; transform:none; } }
a { color:var(--brand); }
.warn-box { background:var(--warn-bg); border:1px solid color-mix(in srgb, var(--warn) 40%, var(--line));
  color:var(--text); border-radius:12px; padding:13px 15px; font-size:.84rem; line-height:1.55; margin-bottom:16px; }
.warn-box code { background:color-mix(in srgb, var(--warn) 16%, transparent); padding:1px 6px; border-radius:6px; }
#place-results { display:flex; flex-direction:column; gap:8px; margin:2px 0 16px; }
.place-hit { text-align:left; background:var(--bg-2); border:1px solid var(--line); border-radius:11px;
  padding:11px 13px; cursor:pointer; transition:border-color .15s, transform .1s; }
.place-hit:hover { border-color:var(--brand); transform:translateY(-1px); }
.place-hit .pn { font-weight:650; }
.place-hit .pa { font-size:.78rem; color:var(--muted); margin-top:2px; }
.funnel { display:flex; flex-direction:column; gap:12px; margin:4px 0 6px; }
.funnel-row { display:grid; grid-template-columns:120px 1fr auto; align-items:center; gap:12px; }
.funnel-label { font-size:.85rem; font-weight:600; }
.funnel-bar { height:26px; background:var(--bg-2); border:1px solid var(--line); border-radius:8px; overflow:hidden; }
.funnel-fill { height:100%; border-radius:7px 0 0 7px; transition:width .4s ease; min-width:4px; }
.funnel-num { font-weight:700; font-size:.95rem; white-space:nowrap; }
.funnel-pct { color:var(--muted); font-weight:500; font-size:.8rem; }
@media (max-width:520px){ .funnel-row { grid-template-columns:92px 1fr auto; gap:8px; } }
/* --- Kunder (CRM) --- */
.table-wrap { overflow-x:auto; -webkit-overflow-scrolling:touch; }
.table-wrap table { min-width:520px; }
.funnel-strip { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin:4px 0 16px; }
.ft { background:var(--bg-2); border:1px solid var(--line); border-radius:12px; padding:11px 12px; text-align:center; }
.ftn { font-size:1.3rem; font-weight:800; letter-spacing:-.02em; }
.ftl { font-size:.7rem; color:var(--muted); text-transform:uppercase; letter-spacing:.04em; font-weight:600; margin-top:2px; }
@media (max-width:560px){ .funnel-strip { grid-template-columns:repeat(2,1fr); } }

.actions { display:flex; flex-direction:column; gap:10px; margin-bottom:6px; }
.fold { border:1px solid var(--line); border-radius:12px; padding:0 14px; background:var(--card); }
.fold summary { cursor:pointer; list-style:none; padding:12px 0; font-weight:650; font-size:.9rem; color:var(--brand); }
.fold summary::-webkit-details-marker { display:none; }
.fold[open] summary { border-bottom:1px solid var(--line-2); margin-bottom:12px; }
.fold[open] { padding-bottom:14px; }

.chips { display:flex; gap:7px; flex-wrap:wrap; margin:16px 0 10px; }
.chip { background:var(--bg-2); color:var(--muted); border:1px solid var(--line); border-radius:999px;
  padding:6px 12px; font-size:.8rem; font-weight:600; }
.chip span { opacity:.75; margin-left:3px; }
.chip.on { background:var(--text); color:var(--card); border-color:var(--text); }

.pill.ok { background:var(--ok-bg); color:var(--ok); }
.pill.star { background:var(--warn-bg); color:var(--warn); }
.pill.info { background:color-mix(in srgb, #7c3aed 14%, var(--card)); color:#7c3aed; }
.pill.muted { background:var(--bg-2); color:var(--muted); }

/* --- Anmeldelser (én liste) --- */
.seg { display:inline-flex; background:var(--bg-2); border:1px solid var(--line); border-radius:11px; padding:3px; margin-bottom:10px; }
.seg button { background:transparent; color:var(--muted); border:none; padding:7px 14px; font-size:.84rem; font-weight:600; border-radius:8px; }
.seg button.on { background:var(--card); color:var(--text); box-shadow:var(--shadow); }
.rev { border:1px solid var(--line); border-radius:12px; padding:12px 14px; margin-bottom:10px; background:var(--card); }
.rev-top { display:flex; align-items:center; gap:9px; flex-wrap:wrap; font-size:.8rem; }
.rev-who { font-weight:650; font-size:.88rem; }
.rev-text { margin-top:8px; font-size:.9rem; line-height:1.5; }
.pill.b-google { background:color-mix(in srgb, #2563eb 14%, var(--card)); color:#2563eb; }
.pill.b-sent { background:var(--ok-bg); color:var(--ok); }
.pill.b-gate { background:var(--warn-bg); color:var(--warn); }
.info-box { background:color-mix(in srgb, #2563eb 8%, var(--card)); border:1px solid color-mix(in srgb, #2563eb 30%, var(--line));
  border-radius:12px; padding:11px 13px; font-size:.84rem; line-height:1.5; margin-bottom:14px; }

.greview-head { display:flex; align-items:baseline; gap:10px; margin-bottom:12px; }
.greview-score { font-size:1.4rem; font-weight:800; color:var(--star); }
.greview { border:1px solid var(--line); border-radius:12px; padding:12px 14px; margin-bottom:10px; background:var(--bg-2); }
.greview-top { display:flex; align-items:center; gap:10px; flex-wrap:wrap; font-size:.8rem; }
.greview-author { font-weight:650; font-size:.9rem; }
.greview-text { margin-top:8px; font-size:.9rem; line-height:1.5; }

/* ===========================================================================
   Simple dashboard (v2) — built for business owners.
   Scoped to .app / .dlg so the login page and older pieces keep their look.
   =========================================================================== */
.topbar-in { gap:12px; flex-wrap:wrap; }
.biz-select { width:auto; min-width:200px; max-width:260px; margin:0; padding:9px 12px; font-weight:600; }
.test-banner { background:#fef9c3; color:#713f12; border-bottom:1px solid #fde68a; padding:10px 24px; font-size:.86rem; text-align:center; font-weight:600; }
@media (prefers-color-scheme: dark) { .test-banner { background:#2a2410; color:#fde68a; border-color:#4a3d14; } }

main.app { display:block; padding:26px 24px 70px; max-width:880px; }
.app .page-head { margin-bottom:16px; }
.page-title { font-size:1.5rem; font-weight:800; letter-spacing:-.02em; margin:0 0 4px; }
.page-sub { margin:0; color:var(--muted); font-size:.92rem; }
.lead { color:var(--muted); font-size:1rem; margin:0 0 18px; }
.muted { color:var(--muted); }
.card-title { font-size:1rem; margin:0 0 12px; }
.section { margin-bottom:16px; }
.field-stack label { margin-bottom:14px; }
.field-help { display:block; font-size:.78rem; color:var(--muted); font-weight:400; margin-top:6px; line-height:1.45; }
.status-ok { color:var(--ok); font-weight:600; }
.status-warn { color:var(--warn); font-weight:600; }

/* Onboarding journey */
.journey { display:flex; gap:10px; list-style:none; padding:0; margin:0 0 18px; counter-reset:j; flex-wrap:wrap; }
.journey li { flex:1 1 180px; background:var(--card); border:1px solid var(--line); border-radius:14px; padding:12px 14px; font-size:.88rem; color:var(--muted); box-shadow:var(--shadow); }
.journey li b { color:var(--text); display:block; margin-bottom:2px; }
.journey li::before { counter-increment:j; content:counter(j); display:inline-grid; place-items:center; width:24px; height:24px; border-radius:50%;
  background:var(--brand); color:#fff; font-weight:700; font-size:.8rem; margin-bottom:8px; }

/* Checklist for a new business */
.checklist { margin-bottom:16px; padding:16px 18px; }
.checklist-title { font-weight:700; font-size:.9rem; margin-bottom:10px; }
.check { display:flex; align-items:center; gap:10px; padding:6px 0; font-size:.92rem; color:var(--muted); }
.check.ok { color:var(--text); }
.check-dot { width:24px; height:24px; border-radius:50%; display:grid; place-items:center; font-weight:700; font-size:.8rem;
  border:2px solid var(--line); color:var(--muted); flex:0 0 auto; }
.check.ok .check-dot { background:var(--ok); border-color:var(--ok); color:#fff; }

/* Tabs: four plain words */
.app .tabs { margin:0 0 20px; }
.app .tabs button { font-size:.92rem; padding:10px 16px; }

/* Oversikt */
.hero { padding:22px 22px 20px; margin-bottom:16px; }
.hero-title { font-size:1.2rem; font-weight:750; margin:0 0 6px; letter-spacing:-.01em; }
.hero-sub { margin:0 0 16px; color:var(--muted); font-size:.95rem; line-height:1.5; }
.hero-actions { display:flex; gap:10px; flex-wrap:wrap; }
.hero-actions .big { width:100%; }
.kpis { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-bottom:22px; }
.kpi { background:var(--card); border:1px solid var(--line); border-radius:16px; padding:16px 12px; text-align:center; box-shadow:var(--shadow); }
.kpi-n { font-size:1.7rem; font-weight:800; letter-spacing:-.02em; }
.kpi-l { font-size:.72rem; color:var(--muted); font-weight:600; text-transform:uppercase; letter-spacing:.04em; margin-top:2px; }
@media (max-width:520px){ .kpis { grid-template-columns:1fr 1fr 1fr; gap:8px; } .kpi-n { font-size:1.4rem; } }

.section-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:6px 0 12px; flex-wrap:wrap; }
.section-head h3 { margin:0; font-size:1.02rem; }
.app .section-head .primary { width:auto; }
button.link { background:none; border:none; color:var(--brand); font-weight:650; padding:4px 0; }

.empty-box { border:1px dashed var(--line); border-radius:14px; padding:22px; text-align:center; color:var(--text); }
.empty-box p { margin:4px 0; }

/* Kunder */
.grey { background:var(--bg-2); color:var(--muted); }
.pill.grey { background:var(--bg-2); color:var(--muted); }

/* Anmeldelser: keep items readable */
.app .rev { box-shadow:var(--shadow); }

/* Buttons: the app's primary actions are not full-width by default */
.app button.primary, .dlg button.primary { width:auto; }
.app button.big, .dlg button.big { width:100%; padding:15px 20px; font-size:1.02rem; }

/* Onboarding: search + results */
.search-row { display:flex; gap:8px; margin-top:5px; }
.search-row input { margin-top:0; }
.hits { display:flex; flex-direction:column; gap:8px; margin:10px 0 14px; }
.hit { text-align:left; background:var(--bg-2); border:1px solid var(--line); border-radius:12px; padding:11px 13px; display:flex; flex-direction:column; gap:2px; color:var(--text); }
.hit:hover { border-color:var(--brand); }
.hit-name { font-weight:650; }
.hit-addr { font-size:.8rem; color:var(--muted); }
.picked { background:color-mix(in srgb, var(--ok) 9%, var(--card)); border:1px solid color-mix(in srgb, var(--ok) 35%, var(--line));
  border-radius:12px; padding:11px 13px; font-size:.9rem; margin:6px 0 14px; }
.onboard .card { padding:22px; }
.onboard .card details { margin:4px 0 16px; }
.onboard .card details[open] { padding-bottom:4px; }

/* Dialog: send sheet and add-customers form */
.dlg { border:none; border-radius:20px; padding:0; width:min(560px,92vw); max-height:88vh; background:var(--card); color:var(--text);
  box-shadow:0 24px 80px rgba(0,0,0,.35); }
.dlg::backdrop { background:rgba(10,12,18,.5); backdrop-filter:blur(3px); }
.dlg .sheet { padding:24px; }
.sheet h3 { margin:0 0 6px; font-size:1.2rem; }
.sheet p { margin:0 0 12px; font-size:.95rem; line-height:1.5; }
.sheet textarea { min-height:110px; }
.sheet-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:16px; flex-wrap:wrap; }
.sheet-actions .primary { width:auto; }
.preview { background:var(--bg-2); border:1px solid var(--line); border-radius:14px; padding:12px 14px; margin-top:4px; }
.preview-label { font-size:.74rem; color:var(--muted); font-weight:600; margin-bottom:8px; }
.bubble { background:var(--brand); color:#fff; border-radius:16px 16px 4px 16px; padding:10px 13px; font-size:.92rem; line-height:1.45;
  white-space:pre-wrap; word-break:break-word; max-width:100%; }
.example { background:var(--bg-2); border:1px solid var(--line); border-radius:10px; padding:10px 12px; font-size:.82rem;
  font-family:ui-monospace,"SF Mono",monospace; white-space:pre-wrap; margin:0 0 10px; }
.result { margin-top:14px; padding:12px 14px; border-radius:12px; font-size:.9rem; background:var(--bg-2); border:1px solid var(--line); line-height:1.5; }
.result.ok { background:color-mix(in srgb, var(--ok) 9%, var(--card)); border-color:color-mix(in srgb, var(--ok) 35%, var(--line)); }

/* Innstillinger: danger zone */
.danger { margin-top:18px; padding-top:14px; border-top:1px dashed var(--line); }
.app .fold.card { padding:16px 18px; }
.app .fold.card summary { padding:0; }
.app .fold.card[open] summary { margin-bottom:14px; }

@media (max-width:520px){
  main.app { padding:18px 16px 60px; }
  .page-title { font-size:1.3rem; }
  .biz-select { max-width:100%; min-width:0; flex:1 1 100%; order:3; }
}

/* Next-step guidance (after adding customers, and at the top of Kunder) */
.next-step { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;
  background:color-mix(in srgb, var(--brand) 8%, var(--card)); border:1px solid color-mix(in srgb, var(--brand) 30%, var(--line));
  border-radius:14px; padding:14px 16px; margin-bottom:16px; font-size:.92rem; line-height:1.45; }
.next-step .primary { width:auto; }
.next-box { background:var(--bg-2); border:1px solid var(--line); border-radius:12px; padding:12px 14px; margin-top:14px;
  font-size:.9rem; line-height:1.5; }

/* QR card on Oversikt */
.qr-card { display:flex; gap:18px; align-items:center; flex-wrap:wrap; margin-bottom:22px; }
.qr-card img { width:132px; height:132px; border:1px solid var(--line); border-radius:14px; background:#fff; padding:8px; flex:0 0 auto; }
.qr-card > div { flex:1 1 220px; }
.qr-card .card-title { margin-bottom:6px; }
.qr-actions { display:flex; gap:10px; flex-wrap:wrap; margin-top:12px; }
.qr-actions .primary { width:auto; }
