/* The Tool Bakery — Gift Certificate Generator */
#ttb-gcg { font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif; color:#111; }
.ttb-rtg-card { background:#fff; border:1px solid #e5e7eb; border-radius:14px; padding:18px; box-shadow:0 2px 10px rgba(0,0,0,0.05); }
.ttb-rtg-title { margin:0 0 12px; font-size:20px; font-weight:700; }
.ttb-rtg-grid-form { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:12px 16px; }
.ttb-rtg-field--full { grid-column:1 / -1; }
.ttb-rtg-field label { display:block; font-size:12px; color:#374151; margin-bottom:6px; }
.ttb-rtg-field input[type="text"],
.ttb-rtg-field input[type="number"],
.ttb-rtg-field input[type="file"] {
  width:100%; padding:10px 12px; border:1px solid #d1d5db; border-radius:10px; font-size:14px; background:#fafafa;
}
.ttb-rtg-actions { display:flex; align-items:center; gap:12px; margin-top:14px; }
.ttb-rtg-btn { background:#111827; color:#fff; border:none; border-radius:999px; padding:10px 16px; font-weight:600; cursor:pointer; }
.ttb-rtg-btn:hover { opacity:.92; }
.ttb-rtg-note { color:#6b7280; }

@page { size: Letter; margin: 0.5in; }

.ttb-gcg-print-body { margin:0; }
.ttb-gcg-grid { display:block; }

.ttb-gcg-cert {
  box-sizing: border-box;
  height: 3.1in;
  border: 2px solid #b9936c;
  position: relative;
  border-radius: 8px;
  padding: 0.35in 0.4in;
  margin: 0 0 0.15in 0;
  break-inside: avoid;
  background:#fff;
}
.ttb-gcg-cert::before {
  content:"";
  position:absolute; inset:10px;
  border: 2px solid #b9936c;
  border-radius:6px;
  pointer-events:none;
}
.ttb-gcg-headline {
  font-family: 'Allura', cursive;
  font-size: 58px;
  line-height:1;
  color: #b9936c;
  margin: 0;
}
.ttb-gcg-toprow {
  display:flex; align-items:flex-start; justify-content: space-between; gap: 12px;
}
.ttb-gcg-logo {
  height:50px;
  max-width: 1.6in;
  object-fit: contain;
}
.ttb-gcg-company {
  font-family: Arial, Helvetica, sans-serif;
  font-weight:700;
  margin-top:6px;
}

.ttb-gcg-lines {
  margin-top: 0.25in;
  display:grid; grid-template-columns: 1fr 1fr; gap: 0.25in 0.3in;
}
.ttb-gcg-line {
  display:flex; align-items:flex-end; gap:10px;
  font-size:14px;
}
.ttb-gcg-label {
  font-style: italic;
  color:#a27750;
  min-width: 70px;
}
.ttb-gcg-blank {
  flex:1 1 auto;
  border-bottom: 1px solid #b9936c;
  height: 20px;
}
.ttb-gcg-line--full { grid-column: 1 / -1; }
.ttb-gcg-certid-wrap { display:flex; align-items:flex-end; gap:8px; }
.ttb-gcg-expiry {
  display:flex; align-items:flex-end; gap: 10px;
}
.ttb-gcg-box { width: 48px; border-bottom:1px solid #b9936c; height:20px; }
.ttb-gcg-slash { margin: 0 4px; color:#a27750; }
.ttb-gcg-cert:last-child { margin-bottom:0; }
.ttb-rtg-btn.is-loading { position: relative; pointer-events: none; opacity: 0.85; padding-right: 32px; }
.ttb-rtg-btn.is-loading::after {
  content: ""; position: absolute; right: 12px; top: 50%; transform: translateY(-50%);
  width: 16px; height: 16px; border: 2px solid currentColor; border-top-color: transparent;
  border-radius: 50%; animation: ttb-spin 0.8s linear infinite;
}
@keyframes ttb-spin { to { transform: translateY(-50%) rotate(360deg); } }
