:root{
  --teal:#0F8FA6;--teal-2:#0B6E80;--teal-bright:#1FB6CF;--teal-light:#DFF4F8;
  --gold:#C97E00;--gold-soft:#F39C12;--gold-glow:#F8C66A;
  --sand:#FAF6EE;--sand-2:#F1EBDC;
  --ink:#2C3E50;--ink-soft:#516374;--muted:#6B7280;
  --line:#E5DECA;
  --green:#1E9E6A;--green-soft:#E6F6EE;--red:#D2553F;--red-soft:#FBEDE9;
  --shadow:0 18px 50px -18px rgba(15,143,166,.35);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  min-height:100vh;background:
    radial-gradient(120% 80% at 80% -10%, rgba(248,198,106,.30) 0%, rgba(250,246,238,0) 55%),
    radial-gradient(120% 80% at 0% 110%, rgba(31,182,207,.22) 0%, rgba(250,246,238,0) 55%),
    var(--sand);
  color:var(--ink);font-family:"Hanken Grotesk",-apple-system,system-ui,sans-serif;
  font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;
  display:flex;flex-direction:column;align-items:center;padding:22px 16px 30px;
}
h1,h2,h3{font-family:"Fraunces",Georgia,serif;font-weight:500;line-height:1.08;letter-spacing:-.01em}
.mono{font-family:"Spline Sans Mono",ui-monospace,monospace}

/* BRAND HEADER */
.brand{display:flex;align-items:center;gap:11px;margin-bottom:18px}
.brand img{width:42px;height:42px;border-radius:10px;box-shadow:0 4px 12px rgba(15,143,166,.18)}
.brand .name{font-family:"Fraunces",serif;font-size:16px;font-weight:600;color:var(--teal);letter-spacing:-.01em}
.brand .name small{display:block;font-family:"Hanken Grotesk",sans-serif;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:1px}

/* CARD */
.card{
  width:100%;max-width:430px;background:#fff;border:1px solid var(--line);
  border-radius:22px;box-shadow:var(--shadow);overflow:hidden;position:relative;
}
.card .top{
  background:linear-gradient(150deg,#0F8FA6 0%,#0B6E80 100%);color:#fff;
  padding:20px 24px 22px;position:relative;overflow:hidden;
}
.card .top::after{content:"";position:absolute;inset:0;background:
  radial-gradient(60% 80% at 90% 0%, rgba(248,198,106,.35) 0%, rgba(15,143,166,0) 60%);pointer-events:none}
.machine-chip{display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.16);
  border:1px solid rgba(255,255,255,.22);padding:5px 11px;border-radius:999px;font-size:12px;font-weight:600;letter-spacing:.02em}
.machine-chip .dot{width:7px;height:7px;border-radius:50%;background:var(--gold-glow);box-shadow:0 0 0 3px rgba(248,198,106,.3)}
.card .top h1{font-size:19px;margin-top:13px;font-weight:600}
.card .top .loc{font-size:13px;opacity:.85;margin-top:3px}

/* ORDER */
.body{padding:22px 24px 8px}
.order{display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:15px 16px;background:var(--sand);border:1px solid var(--line);border-radius:14px}
.order .meta{min-width:0}
.order .meta .item{font-size:15.5px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.order .meta .slot{font-size:12.5px;color:var(--muted);margin-top:2px}
.order .slotbadge{flex:0 0 auto;width:50px;height:50px;border-radius:12px;
  background:#fff;border:1px solid var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center}
.order .slotbadge small{font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:700}
.order .slotbadge b{font-family:"Spline Sans Mono",monospace;font-size:18px;color:var(--teal);line-height:1}

.amount{text-align:center;padding:24px 0 6px}
.amount .label{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:700}
.amount .value{font-family:"Fraunces",serif;font-size:52px;font-weight:600;color:var(--ink);line-height:1;margin-top:6px;letter-spacing:-.02em}
.amount .value .cur{font-size:22px;color:var(--teal);vertical-align:super;margin-right:2px}
.amount .vat{font-size:12px;color:var(--muted);margin-top:9px}

/* TIMER */
.timer{display:flex;align-items:center;justify-content:center;gap:7px;margin:14px 0 2px;
  font-size:12.5px;color:var(--ink-soft);font-weight:500}
.timer svg{width:14px;height:14px;stroke:var(--gold);fill:none;stroke-width:2}
.timer b{font-family:"Spline Sans Mono",monospace;color:var(--gold)}

/* BUTTON */
.pay-wrap{padding:8px 24px 22px}
.btn{
  display:flex;align-items:center;justify-content:center;gap:10px;width:100%;
  background:linear-gradient(135deg,var(--gold-soft) 0%,var(--gold) 100%);color:#fff;
  border:none;border-radius:14px;padding:17px 20px;font-family:"Hanken Grotesk",sans-serif;
  font-size:17px;font-weight:700;letter-spacing:.01em;cursor:pointer;
  box-shadow:0 12px 26px -10px rgba(201,126,0,.7);transition:transform .12s ease,box-shadow .2s ease;
}
.btn:hover{transform:translateY(-1px);box-shadow:0 16px 30px -10px rgba(201,126,0,.75)}
.btn:active{transform:translateY(1px) scale(.995)}
.btn:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}
.btn svg{width:19px;height:19px;fill:#fff}

.secured{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:13px;
  font-size:11.5px;color:var(--muted);font-weight:500}
.secured svg{width:13px;height:13px;stroke:var(--green);fill:none;stroke-width:2}

/* STATE PANELS (processing / success / failed) */
.state{display:none;padding:34px 26px 30px;text-align:center;animation:fade .35s ease}
.state.show{display:block}
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.spinner{width:54px;height:54px;margin:0 auto 18px;border-radius:50%;
  border:5px solid var(--teal-light);border-top-color:var(--teal);animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.state h2{font-size:22px;margin-bottom:8px}
.state p{font-size:14.5px;color:var(--ink-soft);max-width:300px;margin:0 auto}
.icon-badge{width:74px;height:74px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 18px}
.icon-badge svg{width:38px;height:38px;fill:none;stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round}
.icon-badge.ok{background:var(--green-soft)}.icon-badge.ok svg{stroke:var(--green)}
.icon-badge.bad{background:var(--red-soft)}.icon-badge.bad svg{stroke:var(--red)}
.collect{margin-top:20px;background:var(--green-soft);border:1px solid #BFE6D2;border-radius:14px;
  padding:15px 18px;display:flex;align-items:center;gap:13px;text-align:left}
.collect .big{flex:0 0 auto;width:52px;height:52px;border-radius:12px;background:#fff;border:1px solid #BFE6D2;
  display:flex;flex-direction:column;align-items:center;justify-content:center}
.collect .big small{font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--green);font-weight:700}
.collect .big b{font-family:"Spline Sans Mono",monospace;font-size:20px;color:var(--green);line-height:1}
.collect .txt{font-size:13.5px;color:var(--ink)}
.collect .txt b{color:var(--green)}
.linkbtn{display:inline-block;margin-top:20px;color:var(--teal);font-weight:600;font-size:14px;
  border:1px solid var(--line);padding:11px 20px;border-radius:12px;background:#fff;cursor:pointer}
.linkbtn:hover{background:var(--sand)}

/* FOOTER */
.foot{max-width:430px;width:100%;margin-top:18px;text-align:center}
.foot .trust{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;
  font-size:11.5px;color:var(--muted);font-weight:500}
.foot .trust span{display:inline-flex;align-items:center;gap:5px}
.foot .trust svg{width:12px;height:12px;stroke:var(--teal);fill:none;stroke-width:2}
.foot .help{font-size:12.5px;color:var(--ink-soft);margin-top:11px}
.foot .help a{color:var(--teal);font-weight:600}
.foot .legal{font-size:11px;color:var(--muted);margin-top:9px;line-height:1.5}

/* DEMO RIBBON */
.demo-flag{position:fixed;top:0;left:0;right:0;background:var(--ink);color:#fff;font-size:11px;
  font-weight:600;letter-spacing:.05em;text-align:center;padding:5px;z-index:200;display:none}
.demo-flag.show{display:block}
.demo-flag b{color:var(--gold-glow)}
body.demo{padding-top:36px}

@media(max-width:380px){
  .amount .value{font-size:46px}
  .body{padding:18px 18px 8px}.pay-wrap{padding:8px 18px 20px}
}