/* Access uses the restaurant palette; the product mark stays separate. */
body.auth-active{background:radial-gradient(ellipse at 12% 12%,#ffdf6b95,transparent 52%),radial-gradient(ellipse at 95% 90%,#ffd85955,transparent 48%),#fff9e9;color:#32261f}
body.auth-active .auth-page{width:100%;max-width:1230px;min-height:100vh;min-height:100svh;margin:auto;display:grid;grid-template-columns:minmax(0,1.04fr) minmax(360px,1fr);grid-template-rows:auto 1fr auto;align-items:center;gap:36px 86px;padding:30px 48px 24px}
.auth-topline,.auth-bottom{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:18px}
.auth-restolab{display:inline-flex;align-items:center;gap:9px;text-decoration:none;color:#71291c;font-size:23px;font-weight:760;letter-spacing:-.8px}.auth-restolab-mark{width:31px;height:31px;flex-shrink:0}.auth-lab{font-weight:420}.auth-location{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:550;color:#8e6a44}.auth-location svg{width:15px;height:15px}
.auth-welcome{padding:18px 0}.auth-logo{width:250px;margin:0 0 30px;background:none;padding:0;border:0;border-radius:0}.auth-logo img{display:block;width:100%;height:auto;object-fit:contain}
.auth-site{font-size:10px;font-weight:750;letter-spacing:2.1px;color:#9f4b26}.auth-welcome h1{font-size:clamp(38px,4.2vw,54px);line-height:1.1;letter-spacing:-2.2px;margin:18px 0 20px;font-weight:750}.auth-welcome h1 span{color:#9e3924}.auth-welcome p{font-size:15px;color:#80654b;line-height:1.8}
.auth-features{display:flex;gap:10px;margin-top:30px;flex-wrap:wrap}.auth-features>span{display:flex;align-items:center;gap:7px;background:#fffaf0b0;border:1px solid #e1bd742f;border-radius:16px;padding:10px 13px;color:#78553c;font-size:12px;font-weight:550}.auth-features svg{width:18px;height:18px;color:#a04926}
.auth-card{width:100%;background:#fffefbdc;border:1px solid #fff;border-radius:32px;padding:34px;box-shadow:0 22px 65px #793d0e0a,0 4px 16px #794b1605;animation:auth-arrive .35s ease-out}.auth-card-intro .stock-eyebrow{font-size:10px;letter-spacing:1.8px;color:#a35532}.auth-card h2{font-size:28px;line-height:1.15;letter-spacing:-.8px;margin:10px 0}.auth-card-intro>p{font-size:13px;color:#8c7968;line-height:1.6}.auth-card .form{gap:16px}.auth-card .form label,.auth-password-field>label{font-weight:550;color:#705d4e;font-size:13px}.auth-card input,.auth-card select{border:1px solid #e4dcd1;background:#fffefd;border-radius:15px;min-height:50px;color:#3d3026;box-shadow:0 2px 3px #72472102}.auth-card input::placeholder{color:#b2a497;font-weight:400}.auth-card input:focus,.auth-card select:focus{border-color:#c18b65;outline:3px solid #c18b651c;outline-offset:1px}.auth-card .form small{color:#98816c;font-size:11px;line-height:1.5}
.auth-tabs{display:flex;gap:4px;padding:4px;margin:24px 0;background:#f6f1e8;border-radius:15px}.auth-tabs button{flex:1;padding:8px 6px;min-height:38px;border:0;border-radius:12px;background:transparent;font-size:12px;color:#8a7765;font-weight:550}.auth-tabs button.active{background:#fffefb;color:#913d27;box-shadow:0 2px 5px #6032070c;font-weight:700}
.auth-password-field{display:grid;gap:7px}.auth-password-wrap{position:relative}.auth-password-wrap input{padding-right:50px}.auth-password-toggle{position:absolute;right:4px;top:3px;width:42px;height:44px;min-height:44px;padding:10px;border:0;background:transparent;border-radius:12px;color:#9a816b}.auth-password-toggle:hover{background:#f8f0e1}.auth-password-toggle svg{width:20px;height:20px}
.auth-card .auth-remember{display:flex;align-items:center;gap:10px;cursor:pointer;font-weight:500;line-height:1.35}.auth-card .auth-remember input{width:18px;min-width:18px;height:18px;min-height:18px;padding:0;margin:0;accent-color:var(--brand);cursor:pointer;box-shadow:none}.auth-remember span{display:grid;gap:3px}.auth-card .auth-remember small{font-size:10px;font-weight:400}.auth-card .form-error:empty{display:none}.auth-card .form-error{font-size:12px;line-height:1.5;margin:0}
.auth-card .auth-submit{width:100%;min-height:52px;border-radius:16px;margin-top:2px;justify-content:center;gap:13px;background:var(--brand);box-shadow:0 6px 14px #a63e2020;font-size:14px}.auth-submit svg{width:19px;height:19px}.auth-submit:disabled{opacity:.7}.auth-footnote{display:flex;align-items:flex-start;gap:7px;font-size:11px;color:#9b8c7c;line-height:1.6;margin-top:22px}.auth-footnote svg{width:14px;height:14px;flex:0 0 14px;margin-top:2px}
.auth-bottom{color:#947957;font-size:11px}.auth-bottom i{font-style:normal;padding:0 5px}.auth-bottom button{color:#846542;font-size:11px;min-height:40px;padding:8px 0}.auth-bottom svg{height:17px;width:17px}
.auth-spinner{width:17px;height:17px;display:inline-block;border:2px solid #ffffff60;border-top-color:currentColor;border-radius:50%;animation:auth-spin .8s linear infinite;flex-shrink:0}
@keyframes auth-spin{to{transform:rotate(360deg)}}@keyframes auth-arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.auth-user{display:grid;gap:0;border:0;padding:6px 12px;background:transparent;justify-items:start;min-height:42px}.auth-user span{font-size:12px}.auth-user small{font-size:10px;font-weight:400;color:var(--muted)}
.auth-manage{display:grid;gap:20px}.auth-role-guide{background:#fff3d3;border-radius:20px;padding:18px;display:grid;gap:6px;font-size:12px}.auth-user-row{display:flex;justify-content:space-between;align-items:center;gap:14px;border-bottom:1px solid var(--line);padding:15px 0;flex-wrap:wrap}.auth-user-row small{display:block;color:var(--muted);margin-top:4px}.auth-code{font:700 20px ui-monospace,monospace;letter-spacing:1px;background:#fff3ce;border-radius:20px;padding:22px 15px;text-align:center;overflow-wrap:anywhere;margin:20px 0}
.authenticated .station-control,.authenticated .topbar .avatar{display:none}

.auth-activation-note{padding:12px 14px;border-radius:16px;background:#fff2ce;color:#63401b;font-size:13px;line-height:1.5}.auth-manage .auth-user-row .actions{flex-wrap:wrap}

/* Startup is visible while the first server response is being loaded. */
.app-startup{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;background:radial-gradient(ellipse at 30% 25%,#ffe7a1,transparent 65%),#fff9e9;transition:opacity .22s ease;min-height:100svh}.app-startup.is-ready{opacity:0;pointer-events:none}.startup-center{text-align:center;display:grid;justify-items:center;gap:22px}.startup-logo{width:245px;max-width:65vw;height:auto;animation:startup-appear .45s ease-out}.startup-center p{color:#8c6741;font-size:13px;letter-spacing:.2px}.startup-center .auth-spinner{width:24px;height:24px;color:#ad4029;border-color:#d5b98c55;border-top-color:#ad4029}.startup-brand{position:absolute;bottom:max(30px,env(safe-area-inset-bottom));text-align:center;display:grid;gap:3px;color:#a1886a;font-size:10px;letter-spacing:.2px}.startup-brand strong{color:#783a25;font-size:18px;letter-spacing:-.5px}.startup-help{display:grid;gap:8px;max-width:280px;font-size:12px;line-height:1.5;text-align:center;color:#8c6741}.startup-help a{color:inherit}.startup-slow{opacity:0;animation:startup-delay 0s 8s forwards}@keyframes startup-delay{to{opacity:1}}@keyframes startup-appear{from{transform:scale(.97)}to{transform:scale(1)}}
@media(max-width:850px){body.auth-active .auth-page{gap:25px 32px;padding-inline:30px}.auth-welcome h1{font-size:39px}.auth-logo{width:210px}.auth-card{padding:28px}.auth-location{font-size:10px}}
@media(max-width:700px){body.auth-active .auth-page{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto 1fr auto;gap:22px;padding:22px 22px 18px;max-width:480px}.auth-topline,.auth-bottom{grid-column:1}.auth-restolab{font-size:20px}.auth-restolab-mark{width:26px;height:26px}.auth-location{font-size:10px;max-width:150px}.auth-location svg{display:none}.auth-welcome{padding:8px 0 0;display:grid;justify-items:center}.auth-logo{width:175px;margin:0}.auth-welcome h1,.auth-welcome p,.auth-site,.auth-features{display:none}.auth-card{padding:26px 24px;border-radius:28px}.auth-card h2{font-size:25px}.auth-card input,.auth-card select{font-size:16px}.auth-tabs{margin:20px 0}.auth-bottom{flex-direction:column;gap:4px;text-align:center}.auth-bottom>span{font-size:10px}.auth-bottom button{min-height:38px}.topbar-right{gap:5px}.auth-user{max-width:140px}.auth-user span{max-width:120px;overflow:hidden;text-overflow:ellipsis}.auth-code{font-size:16px}}
@media(prefers-reduced-motion:reduce){.auth-card,.startup-logo,.auth-spinner{animation:none}.app-startup{transition:none}.auth-spinner{border-style:dotted}}

.auth-build{display:block;font-size:10px;margin-top:5px;color:#8d775e}.startup-center .startup-slogan{font-size:21px;font-weight:650;color:#783a25;letter-spacing:-.4px;margin:0 20px}.auth-welcome h1{color:#913d27}
@media(max-width:700px){.auth-welcome h1{display:block;font-size:26px;line-height:1.18;letter-spacing:-.7px;text-align:center;max-width:280px;margin:15px 0 0}.auth-logo{width:155px}.auth-welcome{padding-top:0}.quick-attendance{font-weight:700;color:var(--brand)}}
@media(max-width:680px){.authenticated.has-catalog .topbar{border-radius:26px;gap:8px;padding:8px 12px}.authenticated .mobile-brand{width:65px;height:34px}.authenticated .topbar-right{flex:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;min-width:0}.authenticated .topbar-right>.auth-user{grid-column:span 2;justify-self:end;max-width:100%;padding:4px 6px;min-height:34px}.authenticated .topbar-right>button.quiet{font-size:11px;padding:6px 3px;min-height:38px;white-space:nowrap}.authenticated .topbar-right>.signal{font-size:9px}}
