/* Rifa Solidária — design premium compartilhado (comprador + admin) */
:root{
  --ground:#f4f0e8; --surface:#fffefb; --surface-2:#efe9dc; --inset:#f0ebe0;
  --ink:#1a1712; --muted:#6c6558; --faint:#9b9384;
  --line:#e7e1d3; --line-strong:#d9d2c1; --hair:#efeade;
  --gold:#8f6f21; --gold-deep:#755a15; --gold-bright:#b0862f; --gold-soft:#f1e7cb;
  --ok:#2c6e49; --ok-soft:#dcece2;
  --hold:#556785; --hold-soft:#e3e7ef;
  --danger:#a03c2b; --danger-soft:#f3ddd5;
  --dial-a:#35506b; --dial-b:#152331; --dial-mark:#eef2f6;
  --shadow-sm:0 1px 2px rgba(26,23,18,.05);
  --shadow:0 2px 4px rgba(26,23,18,.04), 0 12px 28px -8px rgba(26,23,18,.10);
  --shadow-lg:0 6px 12px rgba(26,23,18,.06), 0 30px 60px -20px rgba(26,23,18,.22);
  --radius:16px; --radius-sm:11px;
  --font-display:"Fraunces",Georgia,"Times New Roman",serif;
  --font-body:"Instrument Sans",system-ui,-apple-system,sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,monospace;
}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]){
  --ground:#131109; --surface:#1c180f; --surface-2:#252012; --inset:#181509;
  --ink:#f5f0e2; --muted:#a9a08c; --faint:#79715d;
  --line:#2e2818; --line-strong:#41391f; --hair:#241f11;
  --gold:#d8b25a; --gold-deep:#c39a3f; --gold-bright:#ecc576; --gold-soft:#39300f;
  --ok:#63c08b; --ok-soft:#1b3226; --hold:#a6b7ce; --hold-soft:#212a36;
  --danger:#e48d78; --danger-soft:#391e17;
  --shadow-sm:0 1px 2px rgba(0,0,0,.5);
  --shadow:0 2px 6px rgba(0,0,0,.4), 0 16px 34px -10px rgba(0,0,0,.6);
  --shadow-lg:0 10px 24px rgba(0,0,0,.5), 0 40px 80px -24px rgba(0,0,0,.75);
}}
:root[data-theme="dark"]{
  --ground:#131109; --surface:#1c180f; --surface-2:#252012; --inset:#181509;
  --ink:#f5f0e2; --muted:#a9a08c; --faint:#79715d;
  --line:#2e2818; --line-strong:#41391f; --hair:#241f11;
  --gold:#d8b25a; --gold-deep:#c39a3f; --gold-bright:#ecc576; --gold-soft:#39300f;
  --ok:#63c08b; --ok-soft:#1b3226; --hold:#a6b7ce; --hold-soft:#212a36;
  --danger:#e48d78; --danger-soft:#391e17;
  --shadow-sm:0 1px 2px rgba(0,0,0,.5);
  --shadow:0 2px 6px rgba(0,0,0,.4), 0 16px 34px -10px rgba(0,0,0,.6);
  --shadow-lg:0 10px 24px rgba(0,0,0,.5), 0 40px 80px -24px rgba(0,0,0,.75);
}

*{box-sizing:border-box}
/* iOS: evita zoom no toque duplo (grade de números, botões) mantendo scroll/pinch */
button,a,.num,input,select,textarea,label{touch-action:manipulation}
html,body{margin:0; -webkit-text-size-adjust:100%}
body{background:var(--ground); color:var(--ink); font-family:var(--font-body); line-height:1.55; font-size:15px;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; padding-bottom:104px;
  padding-top:env(safe-area-inset-top,0px);}
h1,h2,h3,h4{font-family:var(--font-display); font-weight:600; line-height:1.1; text-wrap:balance; margin:0; letter-spacing:-.01em}
p{margin:0}
a{color:var(--gold-deep)}
::selection{background:var(--gold-soft); color:var(--ink)}
.mono{font-family:var(--font-mono); font-variant-numeric:tabular-nums; font-feature-settings:"tnum"}
.wrap{max-width:1120px; margin:0 auto; padding-inline:24px}
.eyebrow{font-size:11px; letter-spacing:.22em; text-transform:uppercase; color:var(--gold-deep); font-weight:600}
[hidden]{display:none!important}
.muted{color:var(--muted)}
.center{text-align:center}

/* Topbar */
.topbar{position:sticky; top:env(safe-area-inset-top,0px); z-index:40;
  background:color-mix(in srgb, var(--ground) 82%, transparent);
  backdrop-filter:saturate(1.4) blur(14px); -webkit-backdrop-filter:saturate(1.4) blur(14px);
  border-bottom:1px solid var(--line);}
.topbar-in{display:flex; align-items:center; gap:16px; padding-block:14px}
.brand{display:flex; align-items:center; gap:12px; margin-right:auto; min-width:0}
.brand-mark{width:34px; height:34px; flex:0 0 auto}
.brand-name{font-family:var(--font-display); font-weight:600; font-size:19px}
.brand-sub{font-size:10px; color:var(--faint); letter-spacing:.2em; text-transform:uppercase; margin-top:1px}
.topbar-actions{display:flex; align-items:center; gap:10px}
.icon-btn{border:1px solid var(--line); background:var(--surface); color:var(--muted); width:40px; height:40px; border-radius:999px; cursor:pointer; font-size:15px; transition:color .18s, border-color .18s}
.icon-btn:hover{color:var(--ink); border-color:var(--line-strong)}
.user-chip{display:flex; align-items:center; gap:8px; border:1px solid var(--line); background:var(--surface); border-radius:999px; padding:6px 8px 6px 14px; font-size:13px; font-weight:600; cursor:pointer}
.user-chip .av{width:26px;height:26px;border-radius:50%;background:var(--gold-soft); color:var(--gold-deep); display:grid; place-items:center; font-size:12px; font-weight:700}

/* Buttons */
.btn{border:0; border-radius:11px; padding:13px 24px; font-weight:600; font-size:15px; cursor:pointer; letter-spacing:.01em; transition:background .18s, transform .06s, box-shadow .18s; font-family:inherit}
.btn:active{transform:translateY(1px)}
.btn-primary{background:linear-gradient(180deg,var(--gold-bright),var(--gold)); color:#fff; box-shadow:0 1px 0 rgba(255,255,255,.25) inset, var(--shadow)}
.btn-primary:hover{background:var(--gold-bright)}
.btn-primary:disabled{background:var(--inset); color:var(--faint); cursor:not-allowed; box-shadow:none}
.btn-ghost{background:var(--surface); color:var(--ink); border:1px solid var(--line-strong)}
.btn-ghost:hover{background:var(--surface-2)}
.btn-danger{background:transparent; color:var(--danger); border:1px solid color-mix(in srgb,var(--danger) 40%, transparent)}
.btn-danger:hover{background:var(--danger-soft)}
.btn-sm{padding:8px 14px; font-size:13px; border-radius:9px}
.ml-auto{margin-left:auto}

/* Hero / stage */
.hero{display:grid; grid-template-columns:minmax(0,420px) 1fr; gap:44px; padding-block:44px 20px; align-items:center}
.stage{position:relative; aspect-ratio:1/1; border-radius:var(--radius);
  background:radial-gradient(120% 90% at 50% 12%, color-mix(in srgb,var(--gold-soft) 55%, var(--surface)) 0%, var(--surface) 42%, var(--surface-2) 100%);
  border:1px solid var(--line); box-shadow:var(--shadow-lg); overflow:hidden;}
.stage .media{position:absolute; inset:0; display:grid; place-items:center; padding-bottom:15%}
.stage .media svg{width:74%; height:auto; filter:drop-shadow(0 24px 36px rgba(0,0,0,.30))}
.stage .media img{width:100%; height:100%; object-fit:cover; padding:0}
.stage.has-photo .media{padding:0}
.stage-tag{position:absolute; top:16px; left:16px; z-index:3}
.stage-dots{position:absolute; bottom:14px; left:0; right:0; z-index:3; display:flex; gap:7px; justify-content:center}
.stage-dots i{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.55); cursor:pointer}
.stage-dots i.on{background:#fff}
.stage-overlay{position:absolute; left:0; right:0; bottom:0; z-index:2; padding:64px 26px 24px;
  background:linear-gradient(to top, rgba(10,8,4,.92) 0%, rgba(10,8,4,.72) 42%, rgba(10,8,4,.30) 72%, transparent 100%)}
.stage-overlay .eyebrow{color:#e7c877}
.stage-overlay h1{color:#fff; font-size:clamp(24px,3vw,34px); margin-top:7px; text-shadow:0 1px 12px rgba(0,0,0,.4)}

.hero-side{display:flex; flex-direction:column; gap:20px}
.badge{display:inline-flex; align-items:center; gap:8px; font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; padding:7px 13px; border-radius:999px; border:1px solid transparent; background:var(--surface); box-shadow:var(--shadow-sm)}
.badge.open{color:var(--ok); border-color:color-mix(in srgb,var(--ok) 32%, transparent)}
.badge.closed{color:var(--hold); border-color:color-mix(in srgb,var(--hold) 32%, transparent)}
.dot{width:7px;height:7px;border-radius:50%;background:currentColor; box-shadow:0 0 0 3px color-mix(in srgb,currentColor 18%, transparent)}

.progress-head{display:flex; align-items:baseline; justify-content:space-between; margin-bottom:9px}
.progress-title{font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--faint); font-weight:600}
.progress-head .mono{font-size:13px; color:var(--muted)} .progress-head b{color:var(--ink)}
.bar{height:7px; background:var(--inset); border-radius:999px; overflow:hidden; display:flex; box-shadow:inset 0 1px 2px rgba(0,0,0,.08)}
.bar i{display:block; height:100%}
.bar .i-conf{background:linear-gradient(90deg,var(--ok),color-mix(in srgb,var(--ok) 78%, #fff))}
.bar .i-res{background:var(--hold)}
.progress-legend{display:flex; flex-wrap:wrap; gap:18px; margin-top:13px; font-size:13px; color:var(--muted)}
.progress-legend span{display:inline-flex; align-items:center; gap:7px} .progress-legend b{color:var(--ink)}
.sw{width:10px;height:10px;border-radius:3px;display:inline-block; flex:0 0 auto}
.sw.free{background:var(--surface); border:1px solid var(--line-strong)}
.sw.res{background:var(--hold)} .sw.conf{background:var(--ok)} .sw.sel{background:var(--ink)}

.price-card{display:flex; align-items:center; justify-content:space-between; gap:16px; padding:17px 20px; border-radius:14px;
  background:linear-gradient(180deg,color-mix(in srgb,var(--gold-soft) 45%,var(--surface)),var(--surface));
  border:1px solid color-mix(in srgb,var(--gold) 26%,var(--line)); box-shadow:var(--shadow-sm)}
.price-label{font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--faint); font-weight:600}
.price-val{font-size:30px; font-weight:600; letter-spacing:-.02em; margin-top:3px}
.price-note{font-size:12.5px; color:var(--muted); text-align:right; max-width:44%; line-height:1.4}

/* Tabs */
.tabs{display:flex; gap:0; border-bottom:1px solid var(--line); margin-top:40px; overflow-x:auto}
.tabs button{border:0; background:transparent; color:var(--muted); cursor:pointer; font-weight:600; font-size:14.5px; white-space:nowrap;
  padding:14px 2px; margin-right:30px; border-bottom:2px solid transparent; margin-bottom:-1px; transition:color .18s; font-family:inherit}
.tabs button:hover{color:var(--ink)}
.tabs button[aria-selected="true"]{color:var(--ink); border-color:var(--gold)}
.panel{padding-block:30px}

/* Number grid */
.grid-tools{display:flex; flex-wrap:wrap; align-items:center; gap:16px; margin-bottom:24px}
.pill-toggle{display:inline-flex; flex-wrap:wrap; background:var(--inset); border:1px solid var(--line); border-radius:12px; padding:4px}
.pill-toggle button{border:0; background:transparent; color:var(--muted); font-weight:600; font-size:13px; padding:9px 15px; border-radius:9px; cursor:pointer; transition:color .18s; font-family:inherit}
.pill-toggle button[aria-selected="true"]{background:var(--surface); color:var(--ink); box-shadow:var(--shadow-sm)}
.hint{font-size:13.5px; color:var(--muted)}
.num-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(60px,1fr)); gap:9px}
.num{position:relative; aspect-ratio:1.2/1; border:1px solid var(--line-strong); border-radius:11px; background:var(--surface); color:var(--ink);
  cursor:pointer; font-family:var(--font-mono); font-weight:500; font-size:16px; font-variant-numeric:tabular-nums; display:grid; place-items:center;
  transition:transform .08s ease, box-shadow .12s ease, border-color .12s}
.num:hover:not(:disabled){border-color:var(--gold); box-shadow:0 0 0 3px var(--gold-soft); transform:translateY(-2px)}
.num:focus-visible{outline:2px solid var(--gold); outline-offset:2px}
.num[data-st="reservada"]{background:var(--hold-soft); border-color:transparent; color:var(--hold); cursor:not-allowed}
.num[data-st="confirmada"]{background:var(--ok-soft); border-color:transparent; color:var(--ok); cursor:not-allowed}
.num[data-st="reservada"]::after,.num[data-st="confirmada"]::after{content:""; position:absolute; top:7px; right:7px; width:5px; height:5px; border-radius:50%; background:currentColor}
.num.sel{background:var(--ink); color:#fff; border-color:var(--ink); box-shadow:0 0 0 3px var(--gold), var(--shadow); transform:translateY(-2px)}
:root[data-theme="dark"] .num.sel{color:var(--ground)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .num.sel{color:var(--ground)}}

/* Cards / prose */
.card{background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow)}
.prose{white-space:pre-wrap; color:var(--muted); font-size:15.5px; line-height:1.65}
.prose.ink{color:var(--ink)}
.doc-grid{display:grid; grid-template-columns:1.35fr 1fr; gap:20px; align-items:start}
.callout{border-left:2px solid var(--gold); background:var(--inset); padding:16px 18px; border-radius:0 10px 10px 0; margin:4px 0; white-space:pre-wrap}
.facts{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius-sm); overflow:hidden}
.facts>div{background:var(--surface); padding:13px 16px}
.fact-label{font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--faint); font-weight:600}
.fact-value{font-family:var(--font-mono); font-weight:500; font-size:15px; margin-top:3px}
.specs{list-style:none; margin:0; padding:0}
.specs li{display:flex; justify-content:space-between; gap:12px; padding:11px 0; border-bottom:1px solid var(--hair); font-size:14px}
.specs li:last-child{border-bottom:0}
.specs .k{color:var(--muted)} .specs .v{font-family:var(--font-mono); font-weight:500; text-align:right}

/* Cart bar */
.cartbar{position:fixed; left:0; right:0; bottom:0; z-index:45; padding-bottom:env(safe-area-inset-bottom,0px);
  background:color-mix(in srgb,var(--surface) 88%, transparent); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
  border-top:1px solid var(--line); box-shadow:0 -8px 30px -12px rgba(0,0,0,.18)}
.cartbar-in{display:flex; align-items:center; gap:20px; padding-block:15px; max-width:1120px; margin:0 auto; padding-inline:24px}
.cart-count{font-size:12px; color:var(--muted)}
.cart-line{display:flex; align-items:baseline; gap:12px; margin-top:2px}
.cart-total{font-family:var(--font-mono); font-weight:600; font-size:22px}
.cart-chips{display:flex; gap:5px; flex-wrap:wrap; max-width:34vw; overflow:hidden}
.chip{font-family:var(--font-mono); font-size:12px; background:var(--inset); border:1px solid var(--line); border-radius:6px; padding:2px 8px; color:var(--muted)}

/* Modal */
.overlay{position:fixed; inset:0; z-index:60; background:rgba(18,15,9,.55); backdrop-filter:blur(3px); display:grid; place-items:center; padding:16px; animation:fade .18s ease}
.modal{width:100%; max-width:452px; background:var(--surface); border:1px solid var(--line); border-radius:20px; box-shadow:var(--shadow-lg); overflow:hidden; max-height:92vh; overflow-y:auto; animation:pop .22s cubic-bezier(.2,.9,.3,1)}
.modal.wide{max-width:720px}
@keyframes fade{from{opacity:0}to{opacity:1}} @keyframes pop{from{opacity:0; transform:translateY(10px) scale(.98)}to{opacity:1; transform:none}}
.modal-h{padding:20px 22px; border-bottom:1px solid var(--line); display:flex; align-items:center; gap:10px}
.modal-h h3{font-size:20px}
.modal-b{padding:22px}
.modal-x{margin-left:auto; border:0; background:var(--inset); width:34px;height:34px;border-radius:9px;cursor:pointer;color:var(--muted);font-size:15px}
.modal-x:hover{color:var(--ink)}
.field{margin-bottom:16px}
.field label{display:block; font-size:11px; font-weight:600; color:var(--muted); margin-bottom:7px; letter-spacing:.06em; text-transform:uppercase}
/* font-size 16px é obrigatório: abaixo disso o iOS dá zoom ao focar o campo */
.field input,.field textarea,.field select{width:100%; padding:12px 14px; border:1px solid var(--line-strong); border-radius:11px; background:var(--inset); color:var(--ink); font-family:inherit; font-size:16px; transition:border-color .15s, box-shadow .15s}
.field textarea{min-height:120px; resize:vertical; line-height:1.55}
.field input:focus,.field textarea:focus,.field select:focus{outline:0; box-shadow:0 0 0 3px var(--gold-soft); border-color:var(--gold)}
.field .sub{font-size:12px; color:var(--faint); margin-top:5px; text-transform:none; letter-spacing:0; font-weight:400}
.row2{display:grid; grid-template-columns:1fr 1fr; gap:14px}
.error-msg{background:var(--danger-soft); color:var(--danger); border-radius:10px; padding:10px 12px; font-size:13.5px; margin-bottom:14px}

/* Pix + receipt */
.count{font-family:var(--font-mono); font-weight:600; font-size:38px; text-align:center; letter-spacing:1px}
.count.warn{color:var(--danger)}
.count-label{text-align:center; font-size:11px; color:var(--muted); text-transform:uppercase; letter-spacing:.16em; margin-top:4px}
.qr{width:180px; height:180px; margin:16px auto 12px; display:grid; grid-template-columns:repeat(21,1fr); background:#fff; padding:11px; border-radius:14px; border:1px solid var(--line); box-shadow:var(--shadow)}
.qr i{background:#100e08; border-radius:1px}
.pix-code{font-family:var(--font-mono); font-size:11px; word-break:break-all; background:var(--inset); border:1px solid var(--line); border-radius:9px; padding:11px; color:var(--muted); line-height:1.5}
.receipt-row{display:flex; justify-content:space-between; gap:14px; padding:10px 0; border-bottom:1px dashed var(--line); font-size:14px}
.receipt-row:last-child{border-bottom:0}
.receipt-row .k{color:var(--muted)} .receipt-row .v{font-family:var(--font-mono); font-weight:500; text-align:right}
.stamp{display:inline-flex; align-items:center; gap:8px; color:var(--ok); font-weight:600; font-size:14px; border:1.5px solid var(--ok); border-radius:11px; padding:9px 16px; transform:rotate(-2.5deg); text-transform:uppercase}

/* Toast */
.toast{position:fixed; left:50%; bottom:112px; transform:translateX(-50%) translateY(6px); background:var(--ink); color:var(--ground); padding:12px 20px; border-radius:999px; font-size:14px; font-weight:500; box-shadow:var(--shadow-lg); z-index:80; opacity:0; transition:opacity .22s, transform .22s; pointer-events:none; max-width:90vw; text-align:center}
.toast.show{opacity:1; transform:translateX(-50%) translateY(0)}
.toast.err{background:var(--danger); color:#fff}

/* Admin */
.admin-head{display:flex; flex-wrap:wrap; align-items:center; gap:14px; padding-block:34px 6px}
.admin-head h2{font-size:28px; margin-right:auto}
.section-title{font-family:var(--font-body); font-weight:600; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-deep); margin:34px 0 4px}
:root[data-theme="dark"] .section-title, .section-title{}
.section-sub{color:var(--muted); font-size:14px; margin-bottom:14px; max-width:64ch}
.kpis{display:grid; grid-template-columns:repeat(auto-fit,minmax(158px,1fr)); gap:14px; margin-block:20px}
.kpi{background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:17px 18px; box-shadow:var(--shadow-sm)}
.kpi .l{font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--faint); font-weight:600}
.kpi .v{font-family:var(--font-mono); font-weight:600; font-size:26px; margin-top:8px}
.kpi .s{font-size:12px; color:var(--muted); margin-top:3px}
.kpi.accent{background:linear-gradient(180deg,color-mix(in srgb,var(--gold-soft) 60%,var(--surface)),var(--surface)); border-color:color-mix(in srgb,var(--gold) 30%,var(--line))}
.kpi.accent .v{color:var(--gold-deep)}
.table-wrap{overflow-x:auto; border:1px solid var(--line); border-radius:14px; margin-top:6px; background:var(--surface); box-shadow:var(--shadow-sm)}
table{border-collapse:collapse; width:100%; min-width:680px; font-size:14px}
th,td{text-align:left; padding:13px 16px; border-bottom:1px solid var(--hair)}
th{font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--faint); font-weight:600; background:var(--inset)}
td.num-cell,td.money{font-family:var(--font-mono); font-variant-numeric:tabular-nums}
tbody tr:hover{background:var(--inset)} tr:last-child td{border-bottom:0}
.tag{font-size:11px; font-weight:600; padding:4px 11px; border-radius:999px; display:inline-block}
.tag.ok{background:var(--ok-soft); color:var(--ok)} .tag.pend{background:var(--hold-soft); color:var(--hold)} .tag.exp{background:var(--danger-soft); color:var(--danger)}
.card-list{display:grid; gap:12px}
.camp-row{display:flex; align-items:center; gap:16px; padding:16px 18px}
.camp-thumb{width:56px;height:56px;border-radius:10px; background:var(--inset); overflow:hidden; flex:0 0 auto; display:grid; place-items:center; color:var(--faint)}
.camp-thumb img{width:100%;height:100%;object-fit:cover}
.two-col{display:grid; grid-template-columns:1fr 1fr; gap:20px}
.log{list-style:none; margin:0; padding:0}
.log li{display:flex; gap:14px; padding:11px 0; border-bottom:1px solid var(--hair); font-size:13.5px}
.log li:last-child{border-bottom:0}
.log time{font-family:var(--font-mono); color:var(--faint); flex:0 0 118px; font-size:12px}
.winner-card{padding:24px; display:flex; gap:22px; align-items:center; position:relative; overflow:hidden}
.winner-card::before{content:""; position:absolute; inset:0; background:radial-gradient(80% 120% at 0% 0%, var(--gold-soft), transparent 55%); opacity:.6}
.winner-num{font-family:var(--font-mono); font-weight:600; font-size:42px; color:var(--gold-deep); background:var(--surface); border:1px solid color-mix(in srgb,var(--gold) 35%,var(--line)); border-radius:16px; width:96px; height:96px; display:grid; place-items:center; flex:0 0 auto; position:relative; z-index:1}
.winner-card>div{position:relative; z-index:1}
.lock-note{display:flex; gap:11px; align-items:center; background:var(--inset); border:1px solid var(--line); border-radius:12px; padding:14px 16px; font-size:13.5px; color:var(--muted); margin-top:16px}

/* thumbs (upload preview) */
.thumbs{display:flex; flex-wrap:wrap; gap:10px; margin-top:10px}
.thumb{position:relative; width:84px; height:84px; border-radius:10px; overflow:hidden; border:1px solid var(--line)}
.thumb img{width:100%;height:100%;object-fit:cover}
.thumb button{position:absolute; top:3px; right:3px; width:22px;height:22px;border-radius:6px;border:0;background:rgba(0,0,0,.6); color:#fff; cursor:pointer; font-size:12px}

/* promo editor */
.promo-row{display:grid; grid-template-columns:1fr 90px 90px 40px; gap:8px; align-items:center; margin-bottom:8px}
.promo-row input{padding:9px 11px; font-size:14px; border:1px solid var(--line-strong); border-radius:9px; background:var(--inset); color:var(--ink); font-family:inherit; width:100%}
.promo-row .rm{border:0;background:var(--danger-soft); color:var(--danger); border-radius:8px; height:38px; cursor:pointer}

.empty{padding:40px; text-align:center; color:var(--muted)}
.spinner{width:22px;height:22px;border:2px solid var(--line-strong); border-top-color:var(--gold); border-radius:50%; animation:spin .7s linear infinite; margin:40px auto}
@keyframes spin{to{transform:rotate(360deg)}}

@media (max-width:820px){
  .hero{grid-template-columns:1fr; gap:28px; padding-block:28px 8px}
  .stage{max-width:340px; margin:0 auto; width:100%}
  .doc-grid,.two-col{grid-template-columns:1fr}
}
@media (max-width:600px){
  .wrap{padding-inline:16px} .cartbar-in{padding-inline:16px; gap:12px}
  .cart-chips{display:none} .cart-total{font-size:19px} .btn{padding:12px 18px; font-size:14px}
  .facts{grid-template-columns:repeat(2,1fr)} .admin-head h2{font-size:23px}
  .row2{grid-template-columns:1fr} .promo-row{grid-template-columns:1fr 70px 70px 36px}
  .brand-sub{display:none}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important; animation:none!important}}
