.auth-root{--a-brand-600:#4f46e5;--a-brand-500:#6366f1;--a-brand-400:#818cf8;--a-brand-glow:rgba(99,102,241,.35);--a-link:#4f46e5;--a-canvas:#f7f8fc;--a-card:#fff;--a-inset:#f3f4f8;--a-ink:#0f172a;--a-ink-soft:#475569;--a-ink-faint:#64748b;--a-line:rgba(15,23,42,.1);--a-line-strong:rgba(15,23,42,.16);--a-danger:#b91c1c;--a-danger-bg:#fef2f2;--a-danger-line:#fecaca;--a-ok:#047857;--a-ok-bg:#ecfdf5;--a-ok-line:#a7f3d0;--a-shadow-card:0 1px 2px rgba(15,23,42,.04),0 12px 32px -12px rgba(15,23,42,.14);--a-shadow-lift:0 1px 2px rgba(15,23,42,.06),0 18px 40px -14px rgba(15,23,42,.22);--a-hero-from:#1e1b4b;--a-hero-via:#312e81;--a-hero-to:#1e3a8a;--a-hero-ink:#f8fafc;--a-hero-ink-soft:#c7d2fe;--a-hero-line:hsla(0,0%,100%,.14);--a-hero-glass:hsla(0,0%,100%,.06);color-scheme:light}@media (prefers-color-scheme:dark){.auth-root:not([data-auth-theme=light]){--a-canvas:#090c14;--a-card:#12161f;--a-inset:#1a202c;--a-ink:#f1f5f9;--a-ink-soft:#cbd5e1;--a-ink-faint:#94a3b8;--a-line:hsla(0,0%,100%,.1);--a-line-strong:hsla(0,0%,100%,.18);--a-brand-600:#5b5bd6;--a-brand-500:#818cf8;--a-link:#a5b4fc;--a-danger:#fca5a5;--a-danger-bg:rgba(153,27,27,.18);--a-danger-line:hsla(0,91%,71%,.32);--a-ok:#6ee7b7;--a-ok-bg:rgba(6,78,59,.24);--a-ok-line:rgba(52,211,153,.3);--a-shadow-card:0 1px 2px rgba(0,0,0,.4),0 16px 40px -16px rgba(0,0,0,.7);--a-shadow-lift:0 1px 2px rgba(0,0,0,.5),0 22px 48px -18px rgba(0,0,0,.8);color-scheme:dark}}.auth-root[data-auth-theme=dark]{--a-canvas:#090c14;--a-card:#12161f;--a-inset:#1a202c;--a-ink:#f1f5f9;--a-ink-soft:#cbd5e1;--a-ink-faint:#94a3b8;--a-line:hsla(0,0%,100%,.1);--a-line-strong:hsla(0,0%,100%,.18);--a-brand-600:#5b5bd6;--a-brand-500:#818cf8;--a-link:#a5b4fc;--a-danger:#fca5a5;--a-danger-bg:rgba(153,27,27,.18);--a-danger-line:hsla(0,91%,71%,.32);--a-ok:#6ee7b7;--a-ok-bg:rgba(6,78,59,.24);--a-ok-line:rgba(52,211,153,.3);--a-shadow-card:0 1px 2px rgba(0,0,0,.4),0 16px 40px -16px rgba(0,0,0,.7);--a-shadow-lift:0 1px 2px rgba(0,0,0,.5),0 22px 48px -18px rgba(0,0,0,.8);color-scheme:dark}.auth-root{min-height:100dvh;background:var(--a-canvas);display:grid;grid-template-columns:1fr}.auth-root,.auth-root h1,.auth-root h2,.auth-root h3{color:var(--a-ink)}.auth-hero h1,.auth-hero h2,.auth-hero h3{color:var(--a-hero-ink)}@media (min-width:1024px){.auth-root{grid-template-columns:56fr 44fr;height:100dvh;overflow:hidden}}.auth-pane{display:flex;flex-direction:column;justify-content:center;padding:32px 20px calc(32px + env(safe-area-inset-bottom, 0px))}@media (min-width:640px){.auth-pane{padding:48px 40px}}@media (min-width:1024px){.auth-pane{min-height:0;overflow-y:auto;padding:clamp(20px,4vh,44px) clamp(24px,3vw,40px);justify-content:safe center}}.auth-hero{position:relative;display:none;overflow:hidden;background:linear-gradient(150deg,var(--a-hero-from) 0,var(--a-hero-via) 52%,var(--a-hero-to) 100%);color:var(--a-hero-ink);isolation:isolate}@media (min-width:1024px){.auth-hero{display:flex;flex-direction:column;justify-content:space-between;gap:clamp(20px,3vh,40px);padding:clamp(28px,4vh,48px) clamp(28px,3.2vw,48px)}}.auth-hero:after,.auth-hero:before{content:"";position:absolute;border-radius:9999px;pointer-events:none;z-index:-1;filter:blur(72px)}.auth-hero:before{width:460px;height:460px;top:-140px;right:-120px;background:rgba(129,140,248,.4)}.auth-hero:after{width:380px;height:380px;bottom:-120px;left:-100px;background:rgba(56,189,248,.26)}.auth-hero-grid{position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.5;background-image:linear-gradient(var(--a-hero-line) 1px,transparent 1px),linear-gradient(90deg,var(--a-hero-line) 1px,transparent 1px);background-size:56px 56px;mask-image:radial-gradient(ellipse 80% 60% at 50% 40%,#000 30%,transparent 100%);-webkit-mask-image:radial-gradient(ellipse 80% 60% at 50% 40%,#000 30%,transparent 100%)}.auth-badge{display:inline-flex;align-items:center;gap:8px;padding:6px 12px 6px 8px;border-radius:9999px;border:1px solid var(--a-hero-line);background:var(--a-hero-glass);backdrop-filter:blur(8px);font-size:.75rem;font-weight:600;letter-spacing:.01em;color:var(--a-hero-ink)}.auth-slide{animation:auth-slide-in .52s cubic-bezier(.22,1,.36,1) both}@keyframes auth-slide-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.auth-dot{height:3px;border-radius:9999px;background:hsla(0,0%,100%,.24);transition:width .4s cubic-bezier(.22,1,.36,1),background-color .4s ease;border:0;padding:0;cursor:pointer;width:18px}.auth-dot[aria-selected=true]{width:40px;background:var(--a-hero-ink)}.auth-dot:focus-visible{outline:2px solid var(--a-hero-ink);outline-offset:3px}@media (prefers-reduced-motion:reduce){.auth-slide{animation:none}.auth-dot{transition:none}}.auth-preview{--p-ink:#0f172a;--p-muted:#64748b;--p-line:#e6e8ef;--p-navy:#12143d;--p-cyan:#16dae4;width:100%;max-width:27rem;background:#fff;border:1px solid rgba(15,23,42,.06);border-radius:16px;box-shadow:0 1px 2px rgba(2,6,23,.2),0 26px 50px -24px rgba(2,6,23,.65);overflow:hidden;font-size:clamp(.72rem,1.35vh,.8125rem);color:var(--p-ink)}.auth-preview-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:clamp(9px,1.5vh,13px) clamp(11px,1.6vw,15px);background:var(--p-navy);color:#fff}.auth-preview-id{display:flex;align-items:center;gap:9px;min-width:0}.auth-preview-mark{width:24px;height:24px;flex:none;border-radius:7px;background:linear-gradient(135deg,var(--p-cyan),#0ea5b7);display:grid;place-items:center;font-weight:800;font-size:.72rem;color:var(--p-navy)}.auth-preview-hotel{font-weight:700;letter-spacing:-.01em;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.auth-preview-sub{color:rgba(226,232,240,.7);font-size:.86em;line-height:1.2;margin-top:1px}.auth-preview-date{flex:none;font-size:.82em;font-weight:600;color:rgba(226,232,240,.92);background:hsla(0,0%,100%,.1);border:1px solid hsla(0,0%,100%,.14);border-radius:999px;padding:3px 9px;font-variant-numeric:tabular-nums}.auth-preview-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--p-line);border-bottom:1px solid var(--p-line)}.auth-preview-kpi{background:#fff;padding:clamp(8px,1.4vh,12px) 8px;text-align:center}.auth-preview-kpi .k-val{display:block;font-weight:800;font-size:1.5em;letter-spacing:-.02em;line-height:1;color:var(--p-navy);font-variant-numeric:tabular-nums}.auth-preview-kpi .k-label{display:block;margin-top:4px;font-size:.82em;font-weight:600;color:var(--p-muted)}.auth-preview-kpi .k-val--accent{color:#0891a3}.auth-preview-section{display:flex;align-items:center;justify-content:space-between;padding:clamp(9px,1.4vh,12px) clamp(11px,1.6vw,15px) 6px}.auth-preview-section span:first-child{font-weight:700;font-size:.94em}.auth-preview-count{font-size:.78em;font-weight:700;color:#0891a3;background:#e6fbfd;border-radius:999px;padding:2px 8px}.auth-preview-list{list-style:none;margin:0;padding:0 clamp(11px,1.6vw,15px) clamp(10px,1.5vh,14px)}.auth-preview-row{display:flex;align-items:center;gap:10px;padding:clamp(7px,1.2vh,10px) 0;border-top:1px solid var(--p-line)}.auth-preview-row:first-child{border-top:0}.auth-preview-room{flex:none;width:34px;text-align:center;font-weight:800;font-size:.86em;color:var(--p-navy);background:#f1f3f9;border-radius:7px;padding:5px 0;font-variant-numeric:tabular-nums}.auth-preview-guest{flex:1;min-width:0}.auth-preview-guest .g-name{font-weight:600;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.auth-preview-guest .g-meta{color:var(--p-muted);font-size:.84em;line-height:1.2;margin-top:1px}.auth-preview-pill{flex:none;font-size:.78em;font-weight:700;border-radius:999px;padding:3px 9px;white-space:nowrap}.auth-preview-pill--in{color:#047857;background:#ecfdf5}.auth-preview-pill--due{color:#b45309;background:#fffbeb}.auth-preview-pill--conf{color:#0e7490;background:#ecfeff}.auth-preview-rooms{display:flex;align-items:center;gap:clamp(10px,1.6vw,18px);flex-wrap:wrap;padding:clamp(8px,1.3vh,11px) clamp(11px,1.6vw,15px);border-top:1px solid var(--p-line);background:#fafbfd}.auth-preview-stat{display:inline-flex;align-items:center;gap:6px;font-size:.84em;font-weight:600;color:#334155}.auth-preview-stat i{width:8px;height:8px;border-radius:999px;flex:none}.auth-preview-stat b{font-weight:800;color:var(--p-navy);font-variant-numeric:tabular-nums}.auth-card{width:100%;max-width:27rem;margin:0 auto}.auth-panel{background:var(--a-card);border:1px solid var(--a-line);border-radius:20px;box-shadow:var(--a-shadow-card);padding:28px}@media (min-width:640px){.auth-panel{padding:36px}}.auth-label{font-size:.8125rem;font-weight:600;margin-bottom:7px}.auth-input,.auth-label{display:block;color:var(--a-ink)}.auth-input{width:100%;height:46px;padding:0 14px;font-size:.9375rem;font-family:inherit;background:var(--a-card);border:1px solid var(--a-line-strong);border-radius:11px;outline:none;transition:border-color .14s ease,box-shadow .14s ease,background-color .14s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none}.auth-input::-moz-placeholder{color:var(--a-ink-faint)}.auth-input::placeholder{color:var(--a-ink-faint)}.auth-input:hover:not(:focus){border-color:var(--a-ink-faint)}.auth-input:focus{border-color:var(--a-brand-500);box-shadow:0 0 0 3px var(--a-brand-glow)}.auth-input[aria-invalid=true]{border-color:var(--a-danger)}.auth-input[aria-invalid=true]:focus{box-shadow:0 0 0 3px rgba(220,38,38,.22)}.auth-input--password{padding-right:46px}.auth-reveal{position:absolute;right:6px;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:8px;border:0;background:transparent;color:var(--a-ink-faint);cursor:pointer;transition:color .14s ease,background-color .14s ease}.auth-reveal:hover{color:var(--a-ink);background:var(--a-inset)}.auth-reveal:focus-visible{outline:2px solid var(--a-brand-500);outline-offset:1px;color:var(--a-ink)}.auth-check{width:18px;height:18px;flex:none;border-radius:6px;border:1px solid var(--a-line-strong);background:var(--a-card);cursor:pointer;display:grid;place-content:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;transition:background-color .14s ease,border-color .14s ease}.auth-check:before{content:"";width:10px;height:10px;transform:scale(0);transition:transform .12s cubic-bezier(.22,1,.36,1);box-shadow:inset 1em 1em #fff;clip-path:polygon(14% 44%,0 65%,40% 100%,100% 16%,84% 0,39% 66%)}.auth-check:checked{background:var(--a-brand-600);border-color:var(--a-brand-600)}.auth-check:checked:before{transform:scale(1)}.auth-check:focus-visible{outline:2px solid var(--a-brand-500);outline-offset:2px}.auth-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;height:46px;padding:0 18px;font-family:inherit;font-size:.9375rem;font-weight:600;border-radius:11px;border:1px solid transparent;cursor:pointer;transition:background-color .14s ease,border-color .14s ease,color .14s ease,box-shadow .14s ease,opacity .14s ease}.auth-btn:focus-visible{outline:2px solid var(--a-brand-500);outline-offset:2px}.auth-btn:disabled{opacity:.55;cursor:not-allowed}.auth-btn--primary{background:var(--a-brand-600);color:#fff;box-shadow:0 1px 2px rgba(15,23,42,.16)}.auth-btn--primary:hover:not(:disabled){background:var(--a-brand-500);box-shadow:var(--a-shadow-lift)}.auth-btn--ghost{background:var(--a-card);color:var(--a-ink);border-color:var(--a-line-strong)}.auth-btn--ghost:hover:not(:disabled){background:var(--a-inset);border-color:var(--a-ink-faint)}.auth-link{color:var(--a-link);font-weight:600;text-decoration:none;border-radius:4px}.auth-link:hover{text-decoration:underline;text-underline-offset:2px}.auth-link:focus-visible{outline:2px solid var(--a-brand-500);outline-offset:2px}.auth-alert{display:flex;align-items:flex-start;gap:10px;padding:11px 13px;border-radius:11px;font-size:.875rem;line-height:1.5;border:1px solid transparent}.auth-alert--error{color:var(--a-danger);background:var(--a-danger-bg);border-color:var(--a-danger-line)}.auth-alert--ok{color:var(--a-ok);background:var(--a-ok-bg);border-color:var(--a-ok-line)}.auth-divider{display:flex;align-items:center;gap:12px;color:var(--a-ink-faint);font-size:.75rem;font-weight:500}.auth-divider:after,.auth-divider:before{content:"";height:1px;flex:1;background:var(--a-line)}.auth-btn:active:not(:disabled){transform:scale(.99)}@keyframes auth-spin{to{transform:rotate(1turn)}}.auth-spinner{width:28px;height:28px;border-radius:9999px;border:3px solid var(--a-line-strong);border-top-color:var(--a-brand-600);animation:auth-spin .7s linear infinite}@media (prefers-reduced-motion:reduce){.auth-spinner{animation-duration:1.6s}}