/* MESA Restaurantes | Auth/role guard. The prototype stays visually intact. */
body.mesa-ops-locked .app-shell { visibility:hidden !important; pointer-events:none !important; }
.mesa-ops-auth { position:fixed; inset:0; z-index:500; display:flex; align-items:center; justify-content:center; min-height:100dvh; padding:26px 17px; overflow:auto; background: radial-gradient(ellipse at 60% 0%, rgba(46,230,160,.12), transparent 51%), #0a0f0c; }
.mesa-ops-auth-card { width:min(440px, 100%); padding:27px clamp(23px,6vw,42px) 31px; background:linear-gradient(154deg,#18231c,#111913 65%); border:1px solid rgba(255,255,255,.11); border-radius:29px; box-shadow:0 22px 90px rgba(0,0,0,.48); }
.mesa-ops-auth-brand { display:flex; align-items:baseline; justify-content:space-between; }
.mesa-ops-auth-brand>span { font-size:32px; line-height:1; font-weight:800; letter-spacing:-2px; }
.mesa-ops-auth-brand .dot { color:#2ee6a0; }
.mesa-ops-auth-brand>small { color:#9faea3; font-size:10px; font-weight:800; letter-spacing:.16em; }
.mesa-ops-auth-symbol { display:grid; place-items:center; width:56px; height:56px; margin-top:48px; background:rgba(46,230,160,.13); border:1px solid rgba(46,230,160,.22); border-radius:18px; color:#2ee6a0; font-size:31px; }
.mesa-ops-auth-eyebrow { margin:22px 0 9px; text-transform:uppercase; letter-spacing:.13em; font-size:10px; font-weight:800; color:#2ee6a0; }
.mesa-ops-auth h1 { font-size:clamp(24px,6vw,32px); line-height:1.2; letter-spacing:-.8px; margin:0; }
.mesa-ops-auth-desc { margin:12px 0 27px; color:#b7c2b9; font-size:13px; line-height:1.7; }
.mesa-ops-auth form { display:grid; gap:11px; }
.mesa-ops-auth label { color:#d8e2d9; font-size:11px; font-weight:700; }
.mesa-ops-auth input { width:100%; min-height:49px; background:rgba(3,9,5,.47); border:1px solid rgba(255,255,255,.14); color:#fff; padding:12px 14px; border-radius:14px; font:inherit; font-size:13px; }
.mesa-ops-auth input:focus { outline:2px solid rgba(46,230,160,.55); outline-offset:1px; }
.mesa-ops-password-row { position:relative; }
.mesa-ops-password-row input { padding-right:88px; }
.mesa-ops-password-row button { position:absolute; right:9px; top:50%; transform:translateY(-50%); border:0; padding:8px; background:transparent; color:#78ddb2; font-size:11px; cursor:pointer; }
.mesa-ops-submit { min-height:51px; margin-top:7px; background:#2ee6a0; color:#09251a; border:0; border-radius:15px; font-size:13px; font-weight:800; cursor:pointer; }
.mesa-ops-submit:disabled { opacity:.65; cursor:wait; }
.mesa-ops-auth-error { padding:12px; border:1px solid rgba(230,125,115,.38); background:rgba(230,125,115,.09); border-radius:10px; color:#ffc2b8; margin:0; line-height:1.5; font-size:12px; }
.mesa-ops-auth-loading { margin-top:10px; color:#c1d0c3; font-size:12px; }
.mesa-ops-retry { margin-top:12px; border:1px solid rgba(46,230,160,.35); padding:11px; background:transparent; border-radius:12px; color:#a2f1c9; cursor:pointer; }
.mesa-ops-auth-caption { margin:25px 0 0; color:#778b7e; font-size:10px; line-height:1.6; text-align:center; }
.mesa-ops-signout { padding:8px 10px; background:transparent; border:1px solid rgba(255,255,255,.13); border-radius:10px; color:#bed1c2; font-size:10px; cursor:pointer; }
.mesa-ops-demo-banner { display:flex; align-items:center; gap:9px; padding:10px 26px; border-bottom:1px solid rgba(243,201,105,.23); background:rgba(243,201,105,.075); color:#f0d9a3; font-size:11px; line-height:1.5; }
.mesa-ops-demo-banner strong { flex:0 0 auto; font-size:9px; letter-spacing:.08em; }
.mesa-ops-demo-banner span { color:#d7c9a7; }
.sidebar-footer { grid-template-columns:minmax(0,1fr) auto; }
.sidebar-footer .role-switcher { display:block; min-width:0; }
.sidebar-footer .role-switcher .chevron { display:none; }
@media(max-width:780px){.mesa-ops-demo-banner{padding:10px 15px; align-items:flex-start; flex-direction:column; gap:2px}}
@media(max-width:500px){.mesa-ops-auth-card{padding:22px 22px 30px}.mesa-ops-auth-symbol{margin-top:33px}}
