:root{--color-bg:#fafafa;--color-surface:#fff;--color-text:#111827;--color-text-secondary:#6b7280;--color-border:#e5e7eb;--color-primary:#2563eb;--color-primary-hover:#1d4ed8;--color-success:#16a34a;--color-danger:#dc2626;--color-warning:#d97706;--color-success-bg:#f0fdf4;--color-success-border:#bbf7d0;--color-success-text:#166534;--color-warning-bg:#fef3c7;--color-warning-border:#fde68a;--color-warning-text:#92400e;--color-pending-bg:#dbeafe;--color-pending-text:#1e40af;--color-surface-secondary:#f8fafc;--color-code-bg:#fff;--color-primary-bg:#f0f4ff;--color-primary-bg-alt:#eff6ff;--color-info-bg:#eff6ff;--color-info-border:#bfdbfe;--color-caution-bg:#fefce8;--color-caution-border:#fde68a;--radius:8px}[data-theme=dark]{--color-bg:#0f1117;--color-surface:#1a1d27;--color-text:#e5e7eb;--color-text-secondary:#9ca3af;--color-border:#2d3348;--color-primary:#3b82f6;--color-primary-hover:#60a5fa;--color-success:#22c55e;--color-danger:#ef4444;--color-warning:#f59e0b;--color-success-bg:#052e16;--color-success-border:#166534;--color-success-text:#86efac;--color-warning-bg:#451a03;--color-warning-border:#92400e;--color-warning-text:#fde68a;--color-pending-bg:#1e3a5f;--color-pending-text:#93c5fd;--color-surface-secondary:#1f2233;--color-code-bg:#111318;--color-primary-bg:#172554;--color-primary-bg-alt:#1e3a5f;--color-info-bg:#1e3a5f;--color-info-border:#2563eb;--color-caution-bg:#451a03;--color-caution-border:#92400e}*{box-sizing:border-box}body{background:var(--color-bg);color:var(--color-text);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);margin-bottom:16px;padding:24px}.card h2{margin:0 0 16px;font-size:1.125rem;font-weight:600}.btn{border-radius:var(--radius);border:1px solid var(--color-border);cursor:pointer;background:var(--color-surface);color:var(--color-text);justify-content:center;align-items:center;padding:10px 20px;font-size:.875rem;font-weight:500;transition:background .15s,border-color .15s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-lg{padding:12px 28px;font-size:1rem}.input{border:1px solid var(--color-border);border-radius:var(--radius);width:100%;color:var(--color-text);background:var(--color-surface);outline:none;padding:10px 12px;font-size:.875rem;transition:border-color .15s}.input:focus{border-color:var(--color-primary)}.form-group{margin-bottom:16px}.form-group label{color:var(--color-text-secondary);margin-bottom:4px;font-size:.8125rem;font-weight:500;display:block}.badge{border-radius:9999px;padding:2px 8px;font-size:.75rem;font-weight:500;display:inline-block}.badge-success{background:var(--color-success-bg);color:var(--color-success-text)}.badge-warning{background:var(--color-warning-bg);color:var(--color-warning-text)}.badge-pending{background:var(--color-pending-bg);color:var(--color-pending-text)}.stepper{gap:8px;margin-bottom:32px;display:flex}.stepper-step{background:var(--color-border);border-radius:2px;flex:1;height:4px;transition:background .3s}.stepper-step.active{background:var(--color-primary)}.stepper-step.completed{background:var(--color-success)}.page-container{max-width:800px;margin:0 auto;padding:40px 20px}.page-header{margin-bottom:32px}.page-header h1{margin:0 0 4px;font-size:1.5rem;font-weight:700}.page-header p{color:var(--color-text-secondary);margin:0;font-size:.875rem}.text-secondary{color:var(--color-text-secondary)}.text-success{color:var(--color-success)}.text-danger{color:var(--color-danger)}.text-center{text-align:center}.mt-4{margin-top:16px}.mt-8{margin-top:32px}.mb-4{margin-bottom:16px}.mb-8{margin-bottom:32px}.spinner{border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:20px;height:20px;animation:.6s linear infinite spin;display:inline-block}.spinner-lg{border-width:3px;width:40px;height:40px}@keyframes spin{to{transform:rotate(360deg)}}table{border-collapse:collapse;width:100%}th{text-align:left;border-bottom:2px solid var(--color-border);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary);padding:10px 12px;font-size:.75rem;font-weight:600}td{border-bottom:1px solid var(--color-border);padding:10px 12px;font-size:.875rem}.upload-zone{border:2px dashed var(--color-border);border-radius:var(--radius);text-align:center;cursor:pointer;padding:40px;transition:border-color .15s,background .15s}.upload-zone:hover{border-color:var(--color-primary);background:var(--color-primary-bg)}.upload-zone.uploaded{border-color:var(--color-success);background:var(--color-success-bg);border-style:solid}.liveness-viewport{aspect-ratio:4/3;border-radius:var(--radius);color:#fff;background:#1a1a2e;justify-content:center;align-items:center;width:100%;max-width:400px;margin:0 auto 16px;font-size:.875rem;display:flex;position:relative;overflow:hidden}.plaid-modal{background:var(--color-surface);border-radius:12px;width:100%;max-width:420px;margin:0 auto;overflow:hidden;box-shadow:0 20px 60px #00000026}.plaid-header{color:#fff;background:#0a2540;padding:20px 24px}.plaid-header h2{color:#fff;margin:0;font-size:1.125rem}.plaid-body{padding:24px}.bank-option{border:1px solid var(--color-border);border-radius:var(--radius);cursor:pointer;align-items:center;gap:12px;margin-bottom:8px;padding:12px;transition:border-color .15s,background .15s;display:flex}.bank-option:hover{border-color:var(--color-primary);background:var(--color-primary-bg)}.bank-option.selected{border-color:var(--color-primary);background:var(--color-primary-bg-alt)}.bank-icon{color:#fff;border-radius:8px;justify-content:center;align-items:center;width:40px;height:40px;font-size:.875rem;font-weight:700;display:flex}.theme-toggle{z-index:1000;background:var(--color-surface);border:1px solid var(--color-border);cursor:pointer;color:var(--color-text);border-radius:9999px;align-items:center;gap:8px;padding:6px 12px;font-size:.8125rem;font-weight:500;transition:background .15s,border-color .15s;display:flex;position:fixed;top:16px;right:16px}.theme-toggle:hover{border-color:var(--color-primary)}.theme-toggle-icon{font-size:1rem;line-height:1}
