*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--purple:#7c3aed;--purple-light:#ede9fe;--purple-dark:#5b21b6;--gray-50:#f9fafb;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-400:#9ca3af;--gray-600:#4b5563;--gray-800:#1f2937;--red:#ef4444;--green:#22c55e}body,html{height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--gray-50);color:var(--gray-800)}a{color:inherit;text-decoration:none}button{cursor:pointer}button,input,select,textarea{font-family:inherit}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 18px;border-radius:10px;font-size:15px;font-weight:600;border:none;transition:background .15s,opacity .15s}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--purple);color:#fff}.btn-primary:hover:not(:disabled){background:var(--purple-dark)}.btn-ghost{background:transparent;color:var(--gray-600);border:1px solid var(--gray-200)}.btn-ghost:hover:not(:disabled){background:var(--gray-100)}.btn-danger{background:var(--red);color:#fff}.card{background:#fff;border-radius:14px;box-shadow:0 1px 4px rgba(0,0,0,.08)}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:13px;font-weight:600;color:var(--gray-600)}.field input,.field select{padding:11px 14px;border:1.5px solid var(--gray-200);border-radius:10px;font-size:15px;outline:none;transition:border-color .15s}.field input:focus,.field select:focus{border-color:var(--purple)}.field .err{font-size:12px;color:var(--red)}.badge{display:inline-block;padding:2px 10px;border-radius:99px;font-size:12px;font-weight:600}.badge-purple{background:var(--purple-light);color:var(--purple-dark)}.badge-green{background:#dcfce7;color:#166534}.badge-gray{background:var(--gray-100);color:var(--gray-600)}