*, *::before, *::after { box-sizing: border-box; }
body { margin:0; font-family:Figtree,ui-sans-serif,system-ui,sans-serif; background:#f3f4f6; color:#111827; }
.min-h-screen { min-height:100vh; }
.flex { display:flex; } .flex-col { flex-direction:column; }
.items-center { align-items:center; } .justify-center { justify-content:center; }
.pt-6 { padding-top:1.5rem; } .sm\:pt-0 { padding-top:0; }
.w-full { width:100%; } .max-w-md { max-width:28rem; }
.mt-6 { margin-top:1.5rem; } .mt-4 { margin-top:1rem; } .mt-1 { margin-top:.25rem; }
.px-6 { padding:0 1.5rem; } .py-4 { padding:1rem 0; }
.p-8 { padding:2rem; } .p-4 { padding:1rem; }
.bg-white { background:#fff; } .shadow-md { box-shadow:0 4px 6px rgba(0,0,0,.1); }
.rounded-lg { border-radius:.5rem; } .rounded-md { border-radius:.375rem; }
.border { border:1px solid #d1d5db; } .border-gray-300 { border-color:#d1d5db; }
.block { display:block; } .inline-flex { display:inline-flex; }
.text-sm { font-size:.875rem; } .text-xs { font-size:.75rem; }
.text-gray-600 { color:#4b5563; } .text-gray-700 { color:#374151; } .text-gray-900 { color:#111827; }
.font-medium { font-weight:500; } .font-semibold { font-weight:600; } .font-bold { font-weight:700; }
.antialiased { -webkit-font-smoothing:antialiased; }
input,textarea,select { border:1px solid #d1d5db; border-radius:.375rem; padding:.5rem .75rem;
  width:100%; font-size:.875rem; outline:none; font-family:inherit; }
input:focus,textarea:focus { border-color:#6366f1; box-shadow:0 0 0 3px rgba(99,102,241,.15); }
button[type=submit],.btn-primary { background:#4f46e5; color:#fff; border:none;
  border-radius:.375rem; padding:.625rem 1.25rem; font-size:.875rem; font-weight:500;
  cursor:pointer; width:100%; margin-top:1rem; }
button[type=submit]:hover { background:#4338ca; }
a { color:#4f46e5; } a:hover { text-decoration:underline; }
.text-red-600 { color:#dc2626; } .mt-2 { margin-top:.5rem; }
.space-y-4>*+* { margin-top:1rem; }
.sm\:justify-center { justify-content:center; }
.sm\:max-w-md { max-width:28rem; }
.sm\:rounded-lg { border-radius:.5rem; }
label { display:block; font-size:.875rem; font-weight:500; color:#374151; margin-bottom:.25rem; }
.text-center { text-align:center; }
.h-9 { height:2.25rem; } .w-9 { width:2.25rem; }
.fill-current { fill:currentColor; }
.text-gray-500 { color:#6b7280; }
.mb-4 { margin-bottom:1rem; }