 :root{
	--success: #1fa15a;
	--success-dark: #158247;
	--success-bg-1: #eafcf3;
	--success-bg-2: #ffffff;
	--fail: #e0392b;
	--fail-dark: #c02a1d;
	--fail-bg-1: #fdeeec;
	--fail-bg-2: #ffffff;
	--ink: #1a1d29;
	--muted: #6b7280;
	--card-radius: 20px;
	--transition: 420ms cubic-bezier(.22,1,.36,1);
  }

  *{ box-sizing:border-box; }

  html,body{
	margin:0;
	padding:0;
	min-height:100vh;
	font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
	color:var(--ink);
  }

  body{
	min-height:100vh;
	display:flex;
	align-items:center;
	justify-content:center;
	padding:32px 16px;
	background: radial-gradient(circle at 50% 0%, var(--bg1) 0%, var(--bg2) 65%);
	transition: background var(--transition);
	--bg1: var(--success-bg-1);
	--bg2: var(--success-bg-2);
  }

  body.state-fail{
	--bg1: var(--fail-bg-1);
	--bg2: var(--fail-bg-2);
  }

  /* ---------- demo toggle (not part of the transactional email look) ---------- */
  .demo-bar{
	position:fixed;
	top:16px;
	left:50%;
	transform:translateX(-50%);
	display:flex;
	gap:6px;
	background:rgba(255,255,255,.9);
	border:1px solid #e5e7eb;
	padding:5px;
	border-radius:999px;
	box-shadow:0 4px 16px rgba(0,0,0,.08);
	z-index:20;
	backdrop-filter: blur(6px);
  }
  .demo-bar button{
	border:none;
	background:transparent;
	padding:8px 16px;
	border-radius:999px;
	font-size:13px;
	font-weight:600;
	cursor:pointer;
	color:var(--muted);
	transition:all .2s ease;
	font-family:inherit;
  }
  .demo-bar button.active{
	background:var(--ink);
	color:#fff;
  }

  /* ---------- card ---------- */
  .wrap{
	width:100%;
	max-width:480px;
	margin-top:56px;
  }

  .card{
	background:#fff;
	border-radius: var(--card-radius);
	padding:44px 36px 36px;
	text-align:center;
	box-shadow: 0 1px 2px rgba(16,24,40,.04), 0 12px 40px -8px rgba(16,24,40,.14);
	border:1px solid rgba(16,24,40,.04);
  }

  .logo{
	display:flex;
	align-items:center;
	justify-content:center;
	gap:10px;
	margin-bottom:34px;
  }
  .logo svg{ width:34px; height:34px; display:block; }
  .logo span{
	font-size:23px;
	font-weight:700;
	letter-spacing:-0.02em;
	color:var(--ink);
  }

  /* status icon */
  .icon-ring{
	width:96px;
	height:96px;
	margin:0 auto 26px;
	border-radius:50%;
	display:flex;
	align-items:center;
	justify-content:center;
	background: color-mix(in srgb, var(--accent) 12%, white);
	position:relative;
  }
  .icon-ring::after{
	content:"";
	position:absolute;
	inset:-8px;
	border-radius:50%;
	border:1.5px solid color-mix(in srgb, var(--accent) 25%, white);
  }
  body.state-success .icon-ring{ --accent: var(--success); }
  body.state-fail .icon-ring{ --accent: var(--fail); }

  .icon-ring svg{ width:46px; height:46px; }
  .icon-ring circle.ring{
	fill:none;
	stroke:var(--accent);
	stroke-width:5;
	stroke-linecap:round;
	stroke-dasharray:126;
	stroke-dashoffset:126;
	animation: draw 520ms ease-out 80ms forwards;
  }
  .icon-ring path.mark{
	fill:none;
	stroke:var(--accent);
	stroke-width:5.5;
	stroke-linecap:round;
	stroke-linejoin:round;
	stroke-dasharray:40;
	stroke-dashoffset:40;
	animation: draw 320ms ease-out 480ms forwards;
  }
  @keyframes draw{ to{ stroke-dashoffset:0; } }

  h1{
	font-size:24px;
	font-weight:700;
	margin:0 0 12px;
	letter-spacing:-0.01em;
  }

  p.desc{
	font-size:15px;
	line-height:1.55;
	color:var(--muted);
	margin:0 0 8px;
  }

  .reason{
	display:inline-block;
	margin-top:2px;
	font-weight:700;
  }
  body.state-fail .reason{ color:var(--fail); }

  .amount{
	display:none;
	margin: 18px 0 6px;
	font-size:13px;
	color:var(--muted);
	background:#f8fafc;
	border:1px solid #eef1f5;
	border-radius:12px;
	padding:12px 16px;
  }
  .amount b{ color:var(--ink); font-size:15px; }
  body.state-success .amount{ display:block; }

  .cta{
	margin-top:26px;
	display:inline-flex;
	align-items:center;
	gap:8px;
	width:100%;
	justify-content:center;
	padding:14px 20px;
	border:none;
	border-radius:12px;
	font-size:15px;
	font-weight:700;
	color:#fff;
	cursor:pointer;
	text-decoration:none;
	background: var(--accent);
	box-shadow: 0 6px 16px -4px color-mix(in srgb, var(--accent) 60%, transparent);
	transition: transform .15s ease, box-shadow .15s ease, background .2s ease;
  }
  .cta:hover{ transform: translateY(-1px); box-shadow: 0 10px 22px -6px color-mix(in srgb, var(--accent) 65%, transparent); }
  .cta:active{ transform: translateY(0); }
  body.state-success .cta{ --accent: var(--success); }
  body.state-success .cta:hover{ background: var(--success-dark); }
  body.state-fail .cta{ --accent: var(--fail); }
  body.state-fail .cta:hover{ background: var(--fail-dark); }

  .cta svg{ width:16px; height:16px; }

  .secondary-link{
	display:block;
	margin-top:14px;
	font-size:13px;
	color:var(--muted);
	text-decoration:none;
  }
  .secondary-link:hover{ text-decoration:underline; }

  footer{
	text-align:center;
	margin-top:26px;
	font-size:12px;
	line-height:1.7;
	color:#9ca3af;
	padding:0 12px;
  }
  footer strong{ color:#6b7280; }

  [hidden]{ display:none !important; }

  @media (max-width:480px){
	.card{ padding:36px 22px 28px; }
  }