:root{
  --brand:#5A19F6; --brand-dark:#3E0FC4; --brand-tint:#F1ECFF;
  --secondary:#D600B8; --accent:#8C63FF;
  --primary-grad: linear-gradient(135deg, #5A19F6 0%, #D600B8 100%);
  --bg:#FAFAFC; --card:#FFFFFF; --line:#ECE7FF;
  --text:#3B170F; --text2:#6B5A54; --text3:#9B8B84;
  --green:#1E9E4E; --green-tint:#E6F6EC;
  --red:#D64545; --red-tint:#FBEAEA;
  --amber:#C4720F; --amber-tint:#FDF0DF;
  --r-card:16px; --r-btn:12px; --r-pill:999px;
}
*{box-sizing:border-box;}
body{
  margin:0; background:var(--bg); color:var(--text);
  font-family:'Inter',-apple-system,sans-serif; -webkit-font-smoothing:antialiased; line-height:1.6;
}
h1,h2,h3,h4,.brand-font{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:700; color:var(--text); margin:0; }
a{ color:var(--brand); text-decoration:none; }
button{ font-family:inherit; cursor:pointer; }
img,svg{ display:block; max-width:100%; }
:focus-visible{ outline:2px solid var(--brand); outline-offset:2px; }

.page{ max-width:480px; margin:0 auto; padding:24px 20px 60px; min-height:100vh; }
.page-wide{ max-width:1080px; margin:0 auto; padding:24px 24px 60px; }

.brand-header{ display:flex; align-items:center; gap:10px; margin-bottom:28px; }
.brand-header .logo-mark{ width:34px; height:34px; }
.brand-header .bt{ font-size:1.02rem; font-weight:800; }

.card{ background:var(--card); border:1px solid var(--line); border-radius:var(--r-card); box-shadow:0 2px 8px rgba(90,25,246,0.05); margin-bottom:16px; }
.card-pad{ padding:22px; }
.card h2{ font-size:1.1rem; margin-bottom:4px; }
.card .sub{ font-size:0.84rem; color:var(--text2); margin-bottom:18px; }

/* Forms */
.field{ margin-bottom:16px; }
.field label{ display:block; font-size:0.8rem; font-weight:600; color:var(--text2); margin-bottom:6px; }
.field input, .field select, .field textarea{
  width:100%; padding:12px 14px; border:1.5px solid var(--line); border-radius:var(--r-btn);
  font-size:0.92rem; font-family:inherit; background:#fff; color:var(--text); transition:border-color 160ms ease;
}
.field input:focus, .field select:focus, .field textarea:focus{ outline:none; border-color:var(--brand); }
.field-hint{ font-size:0.72rem; color:var(--text3); margin-top:5px; }
.field-error{ font-size:0.76rem; color:var(--red); margin-top:5px; }

.phone-row{ display:flex; border:1.5px solid var(--line); border-radius:var(--r-btn); overflow:hidden; }
.phone-row .prefix{ background:var(--bg); padding:12px 12px; font-weight:700; color:var(--text2); border-right:1px solid var(--line); }
.phone-row input{ border:none !important; flex:1; }

/* Buttons */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:13px 24px; border-radius:var(--r-pill); font-weight:700; font-size:0.9rem; border:none; transition:transform 180ms ease, box-shadow 180ms ease; }
.btn-block{ width:100%; }
.btn-primary{ background:var(--primary-grad); color:#fff; }
.btn-primary:hover{ transform:scale(1.02); box-shadow:0 10px 24px -10px rgba(90,25,246,0.4); }
.btn-secondary{ background:#fff; color:var(--brand); border:1.5px solid var(--brand); }
.btn-secondary:hover{ background:var(--brand-tint); }
.btn-success{ background:var(--green); color:#fff; }
.btn-danger{ background:var(--red); color:#fff; }
.btn-sm{ padding:9px 16px; font-size:0.8rem; }

/* Badges / status pills */
.badge{ display:inline-block; font-size:0.68rem; font-weight:700; padding:4px 10px; border-radius:var(--r-pill); text-transform:uppercase; letter-spacing:0.02em; }
.badge-open{ background:var(--red-tint); color:var(--red); }
.badge-funded, .badge-confirmed, .badge-verified, .badge-active{ background:var(--green-tint); color:var(--green); }
.badge-pending{ background:var(--amber-tint); color:var(--amber); }

/* Lists / tables (admin) */
table{ width:100%; border-collapse:collapse; font-size:0.88rem; }
table th{ text-align:left; font-size:0.72rem; text-transform:uppercase; color:var(--text3); padding:10px 12px; border-bottom:1px solid var(--line); }
table td{ padding:12px; border-bottom:1px solid var(--line); vertical-align:middle; }
table tr:last-child td{ border-bottom:none; }

.admin-nav{ display:flex; gap:6px; flex-wrap:wrap; margin-bottom:20px; }
.admin-nav a{ font-size:0.84rem; font-weight:600; color:var(--text2); padding:8px 14px; border-radius:var(--r-pill); border:1px solid var(--line); }
.admin-nav a.active, .admin-nav a:hover{ background:var(--brand); color:#fff; border-color:var(--brand); }

.stat-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:24px; }
.stat-card{ background:#fff; border:1px solid var(--line); border-radius:var(--r-card); padding:18px; }
.stat-card .sv{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; font-size:1.5rem; color:var(--brand); }
.stat-card .sl{ font-size:0.76rem; color:var(--text2); margin-top:4px; }

.alert{ padding:12px 16px; border-radius:var(--r-btn); font-size:0.86rem; margin-bottom:16px; }
.alert-success{ background:var(--green-tint); color:var(--green); }
.alert-error{ background:var(--red-tint); color:var(--red); }

/* Certificate / receipt print layout */
.cert-sheet{ background:#fff; border:2px solid var(--brand); border-radius:20px; padding:48px; text-align:center; max-width:760px; margin:40px auto; }
.cert-sheet .cert-title{ font-family:'Plus Jakarta Sans',sans-serif; font-size:1.8rem; font-weight:800; background:var(--primary-grad); -webkit-background-clip:text; background-clip:text; color:transparent; }
.cert-sheet .cert-name{ font-size:1.5rem; font-weight:700; margin:24px 0 6px; }
.cert-sheet .cert-body{ color:var(--text2); font-size:0.95rem; max-width:520px; margin:0 auto; }
.cert-sheet .cert-code{ font-family:monospace; font-size:0.78rem; color:var(--text3); margin-top:30px; }
.print-btn-wrap{ text-align:center; margin-top:20px; }
@media print{ .no-print{ display:none; } body{ background:#fff; } }

@media(max-width:600px){
  .stat-grid{ grid-template-columns:repeat(2,1fr); }
}
