:root{
  --color-primary:#2563eb;
  --color-secondary:#06b6d4;
  --color-dark:#0f172a;
  --color-background:#f8fafc;
  --color-card:#ffffff;
  --color-border:#e2e8f0;
  --color-text:#0f172a;
  --color-muted:#64748b;
  --color-success:#22c55e;
  --color-warning:#f59e0b;
  --color-error:#ef4444;
}
*{box-sizing:border-box}
html,body{min-height:100%}
body{margin:0;font-family:Inter,"Segoe UI",sans-serif;background:
  radial-gradient(circle at 20% 20%,rgba(37,99,235,.12),transparent 28%),
  radial-gradient(circle at 85% 18%,rgba(6,182,212,.12),transparent 24%),
  linear-gradient(180deg,#f8fafc 0%,#eef4fb 100%);
  color:var(--color-text);
}
a{color:inherit}
.auth-shell{min-height:100vh}
.auth-layout{display:grid;grid-template-columns:minmax(320px,.95fr) minmax(420px,1.05fr);min-height:100vh}
.auth-story{display:flex;flex-direction:column;justify-content:space-between;gap:2rem;padding:clamp(2rem,4vw,4rem);color:#fff;background:
  linear-gradient(155deg,rgba(15,23,42,.92),rgba(37,99,235,.82) 60%,rgba(6,182,212,.72)),
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240' viewBox='0 0 240 240'%3E%3Cg fill='none' stroke='rgba(255,255,255,0.08)' stroke-width='1'%3E%3Cpath d='M0 40h240M0 80h240M0 120h240M0 160h240M0 200h240'/%3E%3Cpath d='M40 0v240M80 0v240M120 0v240M160 0v240M200 0v240'/%3E%3C/g%3E%3C/svg%3E");
  background-blend-mode:screen,normal;
}
.auth-brand{display:block;width:min(100%,28rem);height:8rem;overflow:hidden;text-decoration:none}
.auth-brand-logo{display:block;width:100%;height:100%;object-fit:cover;object-position:center 47%}
.auth-kicker{margin:0;color:rgba(255,255,255,.74);font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase}
.auth-story h1{margin:.9rem 0 .8rem;max-width:14ch;font-size:clamp(2.4rem,5vw,4.6rem);line-height:.96;letter-spacing:-.06em}
.auth-story p{max-width:32rem;margin:0;color:rgba(255,255,255,.78);font-size:1rem;line-height:1.7}
.auth-story small{color:rgba(255,255,255,.58);font-size:.82rem}
.auth-panel{display:grid;place-items:center;padding:clamp(1.25rem,3vw,2.5rem)}
.auth-card{width:min(100%,480px);border:1px solid rgba(226,232,240,.9);border-radius:28px;background:rgba(255,255,255,.88);padding:clamp(1.5rem,3vw,2.2rem);box-shadow:0 24px 70px rgba(15,23,42,.08);backdrop-filter:blur(14px)}
.auth-card header h2{margin:0;font-size:1.7rem;letter-spacing:-.04em}
.auth-card header p{margin:.5rem 0 1.4rem;color:var(--color-muted);font-size:.92rem;line-height:1.6}
.auth-card form{display:grid;gap:1rem}
.auth-card label{display:grid;gap:.45rem;color:var(--color-dark);font-size:.8rem;font-weight:700}
.auth-input{width:100%;border:1px solid var(--color-border);border-radius:16px;background:#fff;padding:.9rem 1rem;color:var(--color-dark);font:inherit;transition:border-color .15s ease,box-shadow .15s ease}
.auth-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 4px rgba(37,99,235,.12);outline:0}
.auth-card button{margin-top:.25rem;border:0;border-radius:16px;background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));padding:.95rem 1rem;color:#fff;font:inherit;font-weight:800;cursor:pointer;box-shadow:0 16px 34px rgba(37,99,235,.18);transition:transform .16s ease,box-shadow .16s ease}
.auth-card button:hover{transform:translateY(-1px);box-shadow:0 20px 40px rgba(37,99,235,.22)}
.auth-switch{margin:1.25rem 0 0;text-align:center;color:var(--color-muted);font-size:.86rem}
.auth-switch a{color:var(--color-primary);font-weight:800;text-decoration:none}
.auth-error{margin-bottom:1rem;border-radius:14px;background:#fff1f2;padding:.9rem 1rem;color:#b91c1c;font-size:.85rem}
.field-error{color:#b91c1c;font-size:.76rem}
.auth-card label small{color:var(--color-muted);font-size:.76rem;font-weight:500}
@media(max-width:900px){
  .auth-layout{grid-template-columns:1fr}
  .auth-story{min-height:260px}
  .auth-story h1{max-width:18ch}
}
@media(max-width:640px){
  html,body{max-width:100%;overflow-x:hidden}
  .auth-layout,.auth-story,.auth-panel,.auth-card{min-width:0;max-width:100%}
  .auth-story{min-height:230px;padding:1.5rem}
  .auth-brand{width:min(100%,22rem);height:6.5rem}
  .auth-panel{padding:1rem}
  .auth-card{padding:1.25rem;border-radius:22px}
  .auth-story h1,.auth-story p,.auth-card h2,.auth-card p,.auth-card small,.auth-switch{overflow-wrap:anywhere}
  .auth-card input{min-width:0;font-size:16px}
  .auth-card button{min-height:48px}
  .auth-switch{line-height:1.7}
}
@media(max-width:360px){
  .auth-story{min-height:210px;padding:1.25rem}
  .auth-brand{height:5rem}
  .auth-story h1{font-size:2rem}
  .auth-panel{padding:.75rem}
  .auth-card{padding:1rem;border-radius:20px}
  .auth-card header h2{font-size:1.45rem}
}
.auth-card form{display:grid;gap:1rem}.auth-card label{display:grid;gap:.45rem}.auth-card label small{color:#64748b;font-size:.72rem;line-height:1.45}.auth-card input{width:100%;border:1px solid #dbe3ee;border-radius:14px;padding:.85rem 1rem}.auth-password-field{position:relative;display:block}.auth-password-field button{position:absolute;right:.55rem;top:50%;width:auto;transform:translateY(-50%);border:0;background:transparent;padding:.35rem;color:#2563eb}.auth-switch a{color:#2563eb;font-weight:700;text-decoration:none}.auth-switch form{display:inline}.auth-switch form button{width:auto;border:0;background:transparent;padding:.3rem;color:#2563eb}.auth-error{border-radius:12px;background:#fff1f2;padding:.7rem;color:#be123c;font-size:.8rem}
/* Invitation boarding pass */
.invitation-page{display:grid;gap:1rem}.boarding-pass{overflow:hidden;border:1px solid #c9dce8;border-radius:22px;background:#f7fbfd;box-shadow:0 18px 44px rgba(9,45,77,.12)}
.boarding-pass-header{display:grid;gap:.35rem;padding:1rem 1.2rem;background:#092d4d;color:#fff}.boarding-pass-header span{font-size:.7rem;font-weight:800;letter-spacing:.13em}.boarding-pass-header strong{font-size:1.3rem}
.boarding-pass-body{padding:1.2rem}.boarding-welcome{margin:0 0 1.2rem;color:#486581}.boarding-route{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.7rem;padding-bottom:1.1rem;border-bottom:2px dashed #b8d2e3}.boarding-route div:last-child{text-align:right}.boarding-route small,.boarding-details dt{display:block;margin-bottom:.25rem;color:#627d98;font-size:.68rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.boarding-route strong{display:block;font-size:1rem}.boarding-route>span{color:#1269e8;font-size:1.35rem}
.boarding-details{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1.1rem 0 0}.boarding-details dd{margin:0;font-weight:800}.boarding-status{display:inline-block;padding:.25rem .55rem;border-radius:999px;background:#fff1c7;color:#875b00;font-size:.78rem}.invitation-security{margin:.2rem 0;color:#627d98;font-size:.82rem;line-height:1.45}.invitation-primary-link{display:block;padding:.9rem 1rem;border-radius:12px;background:#1269e8!important;color:#fff!important;font-weight:800;text-decoration:none!important}.invitation-state-message{display:grid;gap:.4rem;padding:1.1rem;border:1px solid #c9dce8;border-radius:16px;background:#f7fbfd}.invitation-state-message strong{font-size:1.05rem}.invitation-state-message span{color:#627d98;line-height:1.45}.invitation-state-message.success{border-color:#99dfcf;background:#effcf8}.invitation-state-message.error{border-color:#f1b8b8;background:#fff5f5}
@media(max-width:520px){.boarding-details{grid-template-columns:1fr}.boarding-route{grid-template-columns:1fr auto 1fr}.boarding-pass-body{padding:1rem}.invitation-page form button,.invitation-primary-link{min-height:48px;width:100%}}
