:root{--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--bg-primary:#f8fafc;--bg-surface:#fff;--bg-muted:#f1f5f9;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#64748b;--brand-primary:#0d9488;--brand-hover:#0f766e;--brand-light:#f0fdfa;--brand-border:#ccfbf1;--status-pending:#d97706;--status-pending-bg:#fffbeb;--status-success:#16a34a;--status-success-bg:#f0fdf4;--status-danger:#dc2626;--status-danger-bg:#fef2f2;--border-color:#e2e8f0;--border-focus:#0d9488;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-full:9999px;--shadow-sm:0 1px 2px 0 rgba(0,0,0,.05);--shadow-md:0 4px 6px -1px rgba(0,0,0,.07),0 2px 4px -2px rgba(0,0,0,.05);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.08),0 4px 6px -4px rgba(0,0,0,.04)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-primary);color:var(--text-primary);line-height:1.5;-webkit-font-smoothing:antialiased;min-height:100vh}a{color:var(--brand-primary);text-decoration:none}a:hover{text-decoration:underline}.portal-container{width:100%;max-width:640px;margin:0 auto;padding:16px}@media (min-width:640px){.portal-container{padding:32px 16px}}.card{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:20px;margin-bottom:20px}@media (min-width:640px){.card{padding:28px}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:600;font-size:.95rem;padding:12px 20px;border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;transition:all .15s ease-in-out;width:100%;text-align:center}.btn-primary{background-color:var(--brand-primary);color:#fff}.btn-primary:hover:not(:disabled){background-color:var(--brand-hover);box-shadow:var(--shadow-md)}.btn-primary:disabled{opacity:.65;cursor:not-allowed}.btn-outline{background:transparent;border-color:var(--border-color);color:var(--text-secondary)}.btn-outline:hover:not(:disabled){background:var(--bg-muted);color:var(--text-primary)}.btn-danger{background-color:var(--status-danger);color:#fff}.btn-danger:hover:not(:disabled){background-color:#b91c1c}.form-group{margin-bottom:16px}.form-label{display:block;font-size:.875rem;font-weight:600;margin-bottom:6px;color:var(--text-primary)}.form-input,.form-select,.form-textarea{width:100%;padding:10px 14px;font-size:.95rem;font-family:inherit;border:1px solid var(--border-color);border-radius:var(--radius-md);background-color:var(--bg-surface);color:var(--text-primary);outline:none;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px rgba(13,148,136,.15)}.form-input.error{border-color:var(--status-danger)}.form-error{font-size:.8rem;color:var(--status-danger);margin-top:4px}.badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;font-size:.75rem;font-weight:600;border-radius:var(--radius-full)}.badge-pending{background:var(--status-pending-bg);color:var(--status-pending)}.badge-confirmed{background:var(--status-success-bg);color:var(--status-success)}.badge-cancelled,.badge-rejected{background:var(--status-danger-bg);color:var(--status-danger)}.badge-expired{background:var(--bg-muted);color:var(--text-muted)}