:root{
  --ink:#14191b; --ink-2:#1b2225; --ink-3:#232b2e; --line:#2c3538;
  --paper:#f6f1e7; --paper-2:#efe8d8; --paper-line:#d9d0b8;
  --brass:#c89b3c; --brass-bright:#e0b352;
  --teal:#2f6f63; --ok:#6a9c68; --danger:#b5563f;
  --text:#f4f1ea; --text-soft:rgba(244,241,234,0.68); --text-faint:rgba(244,241,234,0.42);
  --radius:14px;
}
*{box-sizing:border-box;}
body{margin:0;background:var(--ink);color:var(--text);font-family:'Inter',sans-serif;-webkit-font-smoothing:antialiased;}
a{color:inherit;}
.mono{font-family:'IBM Plex Mono',monospace;}
.display{font-family:'Space Grotesk',sans-serif;}
.wrap{max-width:520px;margin:0 auto;padding:60px 24px;}
.wrap-wide{max-width:1100px;margin:0 auto;padding:40px 24px;}

.brand{display:flex;align-items:center;gap:10px;justify-content:center;margin-bottom:34px;}
.brand-name{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:1.3rem;}
.brand-name span{color:var(--brass);}

.card{
  background:var(--ink-2); border:1px solid var(--line); border-radius:var(--radius);
  padding:38px 34px;
}
h1.title{font-family:'Space Grotesk',sans-serif;font-size:1.55rem;margin:0 0 8px;text-align:center;}
p.subtitle{color:var(--text-soft);text-align:center;margin:0 0 30px;font-size:0.95rem;}

label{display:block;font-size:0.82rem;color:var(--text-soft);margin:0 0 6px;font-family:'Space Grotesk',sans-serif;}
input[type=text],input[type=email],input[type=password],input[type=tel]{
  width:100%;background:var(--ink-3);border:1px solid var(--line);color:var(--text);
  padding:12px 14px;border-radius:8px;font-size:0.95rem;margin-bottom:18px;font-family:'Inter',sans-serif;
}
input:focus{outline:2px solid var(--brass-bright);outline-offset:1px;border-color:transparent;}
.checkbox-row{display:flex;align-items:center;gap:8px;margin-bottom:20px;font-size:0.85rem;color:var(--text-soft);}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;
  font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:0.95rem;
  padding:12px 22px;border-radius:999px;text-decoration:none;border:1px solid transparent;
  cursor:pointer;transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.btn-primary{background:var(--brass);color:#1c1400;}
.btn-primary:hover{background:var(--brass-bright);transform:translateY(-1px);box-shadow:0 8px 22px rgba(200,155,60,.28);}
.btn-ghost{background:transparent;color:var(--text);border-color:var(--line);}
.btn-ghost:hover{border-color:var(--brass);color:var(--brass-bright);}

.links-row{display:flex;justify-content:space-between;margin-top:18px;font-size:0.85rem;}
.links-row a{color:var(--text-faint);text-decoration:none;}
.links-row a:hover{color:var(--text-soft);}

.flash{padding:12px 16px;border-radius:8px;font-size:0.88rem;margin-bottom:18px;border:1px solid transparent;}
.flash-success{background:rgba(106,156,104,0.15);border-color:rgba(106,156,104,0.4);color:#a7d1a5;}
.flash-danger{background:rgba(181,86,63,0.15);border-color:rgba(181,86,63,0.4);color:#e3a493;}
.flash-info{background:rgba(47,111,99,0.15);border-color:rgba(47,111,99,0.4);color:#8fd0bd;}
.flash-warning{background:rgba(200,155,60,0.15);border-color:rgba(200,155,60,0.4);color:var(--brass-bright);}

.qr-box{background:var(--paper);padding:20px;border-radius:10px;text-align:center;margin-bottom:20px;}
.qr-box img{width:180px;height:180px;}
.secret-code{font-family:'IBM Plex Mono',monospace;background:var(--ink-3);padding:10px 14px;border-radius:8px;
  text-align:center;letter-spacing:0.12em;margin-bottom:20px;word-break:break-all;}

.codes-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:24px;}
.codes-grid span{font-family:'IBM Plex Mono',monospace;background:var(--ink-3);padding:8px 10px;border-radius:6px;text-align:center;font-size:0.88rem;}

/* ---------- páginas de erro (503/404/403) reaproveitam o cupom ---------- */
.error-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:40px 20px;text-align:center;}
.receipt{position:relative;background:var(--paper);color:#221c0f;width:100%;max-width:330px;padding:32px 26px 28px;
  border-radius:3px;box-shadow:0 30px 60px -20px rgba(0,0,0,.6);font-family:'IBM Plex Mono',monospace;}
.receipt::before,.receipt::after{content:"";position:absolute;left:0;right:0;height:15px;
  background-image:radial-gradient(circle 7.5px at 15px 7.5px, var(--ink) 7.5px, transparent 0);
  background-size:30px 15px;background-repeat:repeat-x;}
.receipt::before{top:-8px;} .receipt::after{bottom:-8px;transform:rotate(180deg);}
.r-title{text-align:center;font-weight:600;font-size:0.95rem;}
.r-sub{text-align:center;font-size:0.66rem;color:#6b6250;letter-spacing:0.1em;margin:4px 0 16px;}
.receipt hr{border:none;border-top:1px dashed var(--paper-line);margin:10px 0;}
.r-line{display:flex;justify-content:space-between;font-size:0.78rem;padding:5px 0;}
.r-line.warn span:last-child{color:var(--brass);font-weight:700;}
.r-foot{text-align:center;font-size:0.64rem;color:#6b6250;margin-top:12px;}
.error-wrap h1{font-family:'Space Grotesk',sans-serif;font-size:1.8rem;margin:26px 0 10px;}
.error-wrap p{color:var(--text-soft);max-width:420px;margin:0 0 26px;}
.pulse{animation:pulse 1.6s ease-in-out infinite;}
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:.45;}}
