/* Shared restaurant entrance. Brand colour is set by applyBrand(); all tinted surfaces derive from it. */
.auth-page { --auth-ink:#263a34; --auth-muted:#65726a; --auth-paper:#fffefa; --auth-tint:color-mix(in srgb,var(--brand) 16%,#edf1e6); min-height:100vh; min-height:100svh; padding:26px clamp(24px,6vw,100px) 46px; color:var(--auth-ink); display:flex; flex-direction:column; position:relative; isolation:isolate; background:var(--auth-tint); overflow:clip; }
.auth-backdrop { position:absolute; inset:0; z-index:-1; overflow:hidden; }
.auth-backdrop>img { width:100%; height:100%; object-fit:cover; opacity:.15; }
.auth-backdrop--left>img { object-position:left; }
.auth-backdrop--right>img { object-position:right; }
.auth-default-art { position:absolute; inset:0; background:radial-gradient(ellipse at 25% 35%,#fffffff0,transparent 55%),linear-gradient(135deg,var(--auth-tint),#e9ede2 70%,var(--auth-tint)); }
.auth-top { display:flex; justify-content:flex-end; margin-bottom:24px; width:100%; position:relative; z-index:2; }
.auth-settings { display:flex; align-items:center; gap:8px; min-height:44px; padding:10px 15px; border-radius:24px; border:1px solid #dce2d9; background:#ffffffb0; color:var(--auth-ink); font-size:12px; }
.auth-settings:hover { background:#fff; }
.auth-settings .icon { width:16px; height:16px; }
.auth-layout { display:flex; width:100%; max-width:1400px; margin:auto; position:relative; z-index:1; pointer-events:none; }
.auth-panel { width:440px; max-width:100%; min-width:0; padding:40px; display:flex; flex-direction:column; justify-content:center; background:#fffefade; border:1px solid #ffffffed; border-radius:28px; box-shadow:0 25px 80px #243b2c10,inset 0 1px 0 #fff; backdrop-filter:blur(24px); -webkit-backdrop-filter:blur(24px); pointer-events:auto; }
.auth-brand { display:flex; align-items:center; gap:12px; margin-bottom:42px; min-width:0; }
.auth-brand strong { font-size:19px; font-weight:800; overflow-wrap:anywhere; }
.auth-brand .brand-mark,.auth-brand img { width:43px; height:43px; border-radius:13px; object-fit:contain; flex-shrink:0; }
.auth-brand img { background:white; }
.auth-brand .brand-mark { font-size:18px; }
.auth-form-eyebrow { display:block; color:var(--auth-muted); font-size:11px; font-weight:650; margin-bottom:9px; }
.auth-form-heading h1 { font-size:clamp(28px,2.7vw,37px); font-weight:800; letter-spacing:-1px; line-height:1.55; overflow-wrap:anywhere; margin:0; }
.auth-form-heading p { color:var(--auth-muted); font-size:13px; line-height:1.9; margin:10px 0 30px; overflow-wrap:anywhere; white-space:pre-line; }
.auth-panel .field { display:grid; gap:9px; font-size:12px; font-weight:700; margin-bottom:20px; color:var(--auth-ink); }
.auth-panel .field input { width:100%; min-height:54px; background:#fff; color:#24303c; border:1px solid #dce1d8; border-radius:11px; padding:12px 15px; font-size:16px; font-weight:500; box-shadow:none; outline:none; transition:border-color .2s,box-shadow .2s; }
.auth-panel .field input:hover { border-color:#a4b1a7; }
.auth-panel .field input:focus { border-color:var(--brand); box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 12%,transparent); }
.auth-password { position:relative; }
.auth-password .field input { padding-left:70px; }
.auth-password>button { position:absolute; left:5px; bottom:5px; min-width:55px; min-height:44px; background:transparent; color:#57675d; font-size:11px; font-weight:700; border-radius:7px; }
.auth-password>button:hover { background:#f1f3ed; }
.auth-submit { display:flex; align-items:center; justify-content:space-between; gap:18px; width:100%; min-height:54px; padding:12px 22px; background:var(--brand); color:var(--brand-ink); border-radius:11px; font-weight:750; font-size:14px; margin-top:28px; box-shadow:0 7px 16px color-mix(in srgb,var(--brand) 12%,transparent); transition:filter .2s,transform .2s; }
.auth-submit:hover:not(:disabled) { filter:brightness(.94); transform:translateY(-1px); }
.auth-submit>span:last-child { font-family:Arial,sans-serif; font-size:21px; line-height:1; }
.auth-access-note { margin:18px 0 0; text-align:center; color:var(--auth-muted); font-size:11px; line-height:1.9; }
.auth-customer { text-align:center; margin-top:18px; font-size:12px; }
.auth-customer a { display:inline-block; padding:10px; color:var(--auth-ink); text-decoration:underline; text-underline-offset:5px; }
.auth-footer { display:flex; align-items:center; justify-content:center; gap:12px; border-top:1px solid #e3e7df; padding-top:22px; margin-top:28px; color:var(--auth-muted); font-size:11px; overflow-wrap:anywhere; }
.auth-footer img { max-width:110px; max-height:38px; object-fit:contain; }
.auth-scene { position:absolute; left:0; top:0; width:64%; height:100%; pointer-events:none; }
.auth-scene canvas { width:100%; height:100%; position:absolute; inset:0; opacity:0; transition:opacity .6s; pointer-events:none; }
.auth-scene.is-ready canvas { opacity:1; }
.auth-sculpture-fallback { width:240px; height:200px; position:absolute; left:50%; top:48%; transform:translate(-50%,-50%); filter:drop-shadow(12px 25px 20px #32473630); }
.auth-sculpture-fallback i { display:block; width:210px; height:125px; position:absolute; left:15px; top:15px; border-radius:110px 110px 18px 18px; background:radial-gradient(ellipse at 30% 25%,#f5f6eb,color-mix(in srgb,var(--brand) 60%,#d3d4b7) 70%,var(--brand)); border-bottom:5px solid #c8bd94; }
.auth-sculpture-fallback b { position:absolute; top:0; left:107px; width:27px; height:14px; background:#c8bd94; border-radius:50%; }
.auth-sculpture-fallback span { position:absolute; bottom:10px; left:0; width:240px; height:37px; border-radius:50%; background:linear-gradient(#fffef8,#e0dccd); border-bottom:6px solid #c5c6b8; }
.auth-scene.is-ready .auth-sculpture-fallback { display:none; }
.auth-page button:focus-visible,.auth-page a:focus-visible { outline:3px solid var(--brand); outline-offset:4px; }
html[dir='ltr'] .auth-password .field input { padding-left:15px; padding-right:70px; }
html[dir='ltr'] .auth-password>button { left:auto; right:5px; }
.login-asset-preview { display:block; width:100%; height:140px; object-fit:contain; background:#edf0f2; border:1px solid #dde3e7; border-radius:10px; margin:12px 0; }
.login-asset-preview[hidden] { display:none; }
@media(prefers-reduced-motion:reduce) { .auth-page * { transition:none!important; } }

/* The sculpture lives in a full-bleed background; only the sign-in form is a card. */
.auth-showcase { position:absolute; inset:0; pointer-events:none; }
.auth-showcase:before,.auth-showcase:after { content:''; position:absolute; width:74vw; height:74vw; max-width:1100px; max-height:1100px; left:-12%; top:50%; transform:translateY(-50%); border:1px solid color-mix(in srgb,var(--brand) 9%,transparent); border-radius:50%; }
.auth-showcase:after { width:61vw; height:61vw; left:-5.5%; opacity:.75; }
.auth-motion { position:absolute; bottom:25px; left:30px; min-height:44px; padding:9px 16px; border-radius:24px; border:1px solid #ffffffb3; background:#ffffff80; color:#3e5547; font-size:11px; pointer-events:auto; z-index:3; backdrop-filter:blur(12px); }
.auth-motion[hidden] { display:none; }
html[dir='ltr'] .auth-scene { left:auto; right:0; }
html[dir='ltr'] .auth-showcase:before { left:auto; right:-12%; }
html[dir='ltr'] .auth-showcase:after { left:auto; right:-5.5%; }
html[dir='ltr'] .auth-motion { left:auto; right:30px; }
@media(min-width:1500px) { .auth-panel { width:480px; padding:48px; } }
@media(min-width:721px) and (max-width:1050px) { .auth-page { padding:24px 28px 70px; } .auth-panel { width:390px; padding:30px; } .auth-scene { width:58%; left:-5%; } html[dir='ltr'] .auth-scene { right:-5%; } }
@media(max-width:720px) {
 .auth-page { padding:16px 18px 30px; }
 .auth-top { margin-bottom:0; }
 .auth-settings { padding:9px 12px; font-size:11px; background:#ffffff85; }
 .auth-layout { max-width:440px; margin:190px auto 0; }
 .auth-panel { width:100%; padding:28px; border-radius:25px; background:#fffefaeb; }
 .auth-brand { margin-bottom:24px; }
 .auth-brand strong { font-size:18px; }
 .auth-form-heading h1 { font-size:30px; }
 .auth-form-heading p { margin-bottom:24px; }
 .auth-panel .field { margin-bottom:17px; }
 .auth-submit { margin-top:23px; }
 .auth-scene,html[dir='ltr'] .auth-scene { width:100%; height:275px; left:0; right:0; top:12px; }
 .auth-showcase:before,html[dir='ltr'] .auth-showcase:before { width:800px; height:800px; left:50%; right:auto; top:180px; transform:translate(-50%,-50%); }
 .auth-showcase:after,html[dir='ltr'] .auth-showcase:after { width:610px; height:610px; left:50%; right:auto; top:180px; transform:translate(-50%,-50%); }
 .auth-motion,html[dir='ltr'] .auth-motion { top:16px; bottom:auto; left:auto; right:18px; font-size:10px; padding:9px 12px; }
 html[dir='ltr'] .auth-motion { left:18px; right:auto; }
}
@media(max-width:360px) { .auth-page { padding-inline:12px; } .auth-panel { padding:24px 21px; } .auth-brand strong { font-size:16px; } }
