:root {
  --auth-ink: #182423;
  --auth-muted: #49605c;
  --auth-accent: #155b50;
  --auth-line: rgba(24, 52, 47, .18);
  --auth-photo: none;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { min-height: 100%; height: auto; overflow: auto; }
body.auth-page { min-height: 100%; }
body.auth-page {
  position: relative;
  min-height: 100svh;
  height: auto;
  overflow-x: hidden;
  overflow-y: auto;
  margin: 0;
  color: var(--auth-ink);
  font: 14px Inter, ui-sans-serif, system-ui, sans-serif;
  background: linear-gradient(115deg, rgba(244, 249, 246, .86), rgba(239, 246, 242, .74)), var(--auth-photo) center / cover fixed, #d9e4df;
}
body.auth-page[data-auth-brand="global"] {
  --auth-photo: url('/assets/brand/gato-bronco-office.jpg');
  background: #dce4de;
}
body.auth-page[data-auth-brand="global"]::before,
body.auth-page[data-auth-brand="global"]::after {
  content: "";
  position: fixed;
  inset: -16px;
  pointer-events: none;
}
body.auth-page[data-auth-brand="global"]::before {
  z-index: 0;
  background: var(--auth-photo) center / cover no-repeat;
  filter: blur(7px) saturate(.72);
  opacity: .68;
}
body.auth-page[data-auth-brand="global"]::after {
  z-index: 0;
  background: linear-gradient(115deg, rgba(249,251,247,.76), rgba(241,247,241,.70) 46%, rgba(232,242,235,.5));
}
body.auth-page[data-auth-brand="asador-bacanora"] {
  --auth-ink: #201610;
  --auth-muted: #69584b;
  --auth-accent: #6f4328;
  --auth-line: rgba(42, 26, 19, .14);
  --auth-photo: url('/assets/clients/asador-bacanora/club/bacanora-courtyard-channel.jpg');
  background: linear-gradient(115deg, rgba(255,253,248,.96), rgba(255,247,235,.86) 44%, rgba(89,55,34,.3)), var(--auth-photo) center / cover fixed, #f0e7d9;
}
body.auth-page[data-auth-brand="arte-italia"] {
  --auth-ink: #241c1b;
  --auth-muted: #544b48;
  --auth-accent: #873a2a;
  --auth-line: rgba(60, 42, 36, .22);
  background: linear-gradient(110deg, rgba(15, 13, 12, .18), rgba(15, 13, 12, .06)),
    url('/assets/clients/arte-italia/auth/restaurant.jpeg') center / cover fixed, #332b27;
}
body.auth-page[data-auth-brand="skyline"] {
  --auth-ink: #172a40;
  --auth-muted: #344b5d;
  --auth-accent: #d05b08;
  --auth-line: rgba(29, 54, 79, .2);
  background: url('/assets/clients/skyline/auth/trampoline-background.png') center / cover fixed, #0871a1;
}
body.auth-page .shell, body.auth-page .auth-stage {
  position: relative;
  z-index: 1;
  min-height: 100svh;
  width: 100%;
  display: grid;
  place-items: center;
  padding: 24px;
}
body.auth-page[data-auth-brand="global"] .auth-stage {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  width: 100%;
  margin-inline: auto;
}
body.auth-page .access, body.auth-page .card {
  width: min(430px, 100%);
  max-width: 100%;
  padding: 28px;
  border: 1px solid var(--auth-line);
  border-radius: 20px;
  background: linear-gradient(150deg, rgba(255,255,255,.96), rgba(249,253,250,.88));
  box-shadow: 0 24px 72px rgba(12, 27, 24, .22);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  color: var(--auth-ink);
}
body.auth-page[data-auth-brand="asador-bacanora"] .card {
  background: linear-gradient(150deg,rgba(255,255,255,.97),rgba(255,250,243,.9));
  box-shadow: 0 28px 90px rgba(42,26,19,.22);
}
body.auth-page[data-auth-brand="arte-italia"] .access {
  background: rgba(255, 253, 249, .88);
  box-shadow: 0 24px 64px rgba(19, 14, 12, .32);
}
body.auth-page[data-auth-brand="skyline"] .access {
  background: rgba(255, 255, 255, .87);
  box-shadow: 0 24px 64px rgba(6, 32, 57, .27);
}
body.auth-page .access { text-align: center; }
body.auth-page[data-auth-brand="global"] .access { position: relative; z-index: 2; }
body.auth-page .access h1, body.auth-page .card h1 { color: var(--auth-ink); font-size: 30px; line-height: 1.15; letter-spacing: 0; }
body.auth-page .access p, body.auth-page .card p { color: var(--auth-muted); }
body.auth-page .access .eyebrow, body.auth-page .card .eyebrow { color: var(--auth-accent); letter-spacing: .12em; }
body.auth-page .access label, body.auth-page .card label { color: var(--auth-muted); letter-spacing: 0; text-transform: none; }
body.auth-page .access form, body.auth-page .access .reset-panel { text-align: left; }
body.auth-page input {
  color: var(--auth-ink);
  background: rgba(255,255,255,.82);
  border: 1px solid var(--auth-line);
  border-radius: 12px;
  min-height: 46px;
}
body.auth-page input:focus { outline: 2px solid color-mix(in srgb, var(--auth-accent) 35%, transparent); border-color: var(--auth-accent); }
body.auth-page button[type="submit"], body.auth-page .access #resetPasswordButton { color: white; background: var(--auth-accent); border-radius: 12px; min-height: 46px; }
body.auth-page .button-secondary { color: var(--auth-accent); background: rgba(255,255,255,.7); border: 1px solid var(--auth-line); border-radius: 12px; }
body.auth-page .button-link { color: var(--auth-accent); }
body.auth-page .hint { color: var(--auth-muted); border-color: var(--auth-line); }
.auth-brand-mark { display: block; width: 74px; height: 74px; margin: 0 auto 17px; object-fit: contain; border: 4px solid rgba(255,255,255,.92); border-radius: 50%; box-shadow: 0 5px 0 rgba(19,77,90,.25), 0 16px 28px rgba(22,58,54,.22); transform: perspective(320px) rotateX(8deg); }
.auth-project-wordmark { display: block; width: 134px; height: 68px; margin: -8px auto 14px; object-fit: contain; }
body.auth-page[data-auth-brand="arte-italia"] .auth-brand-mark { width: 118px; height: 118px; object-fit: cover; border-radius: 50%; background: white; }
body.auth-page[data-auth-brand="skyline"] .auth-brand-mark { width: 84px; height: 84px; border-color: #fff; background: #174293; }
.auth-mascot { position: absolute; z-index: 3; left: calc(50% + 215px); top: 50%; width: min(24vw, 300px); max-height: 68svh; object-fit: contain; transform: translateY(-35%); filter: drop-shadow(0 16px 18px rgba(4, 15, 13, .22)); pointer-events: none; }
body.auth-page .auth-links { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px 16px; margin-top: 16px; }
body.auth-page .auth-links a { color: var(--auth-accent); font-size: 12px; font-weight: 700; text-decoration: none; }
body.auth-page .auth-links a:hover { text-decoration: underline; }
body.auth-page .auth-footer { margin: 16px 0 0; padding-top: 14px; border-top: 1px solid var(--auth-line); color: var(--auth-muted); font-size: 11px; line-height: 1.5; }
body.auth-page .access .hint { margin-top: 8px; padding-top: 0; border-top: 0; font-size: 11px; }
body.auth-page .access h2 { margin: 0 0 14px; color: var(--auth-ink); font-size: 16px; }
body.auth-page .access .reset-panel { padding-top: 14px; }
body.auth-page .access .ok { color: #126849; }
body.auth-page .access .error { color: #9b3030; }
body.auth-page:not([data-auth-brand="global"]) .auth-mascot { display: none; }
body.auth-page:not([data-auth-brand="global"]) .auth-stage { display: grid; width: 100%; }
@media (max-width: 880px) {
  body.auth-page[data-auth-brand="global"] .auth-stage { display: grid; grid-template-columns: 1fr; padding: 16px; }
  .auth-mascot { display: none; }
  body.auth-page .access, body.auth-page .card { padding: 24px 20px; }
}
