:root{--bg:#f2f2f2;--card:#fff;--ink:#111;--muted:#666;--line:#ccc;--accent:#1d6fd6;--danger:#c0281c;
box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
*{box-sizing:border-box;margin:0}
body{font-family:Roboto,Arial,sans-serif;background:var(--bg);color:var(--ink);min-height:100vh}
.wrap{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 16px;gap:16px}
.back{align-self:center;width:min(420px,100%);color:var(--accent);font-weight:500;font-size:15px}
.back:hover{text-decoration:underline}
.box{width:min(420px,100%);background:var(--card);border-radius:16px;padding:32px 28px;box-shadow:0 8px 30px rgba(0,0,0,.12);text-align:center}
.logo{width:84px;height:84px;border-radius:50%;object-fit:cover;background:#d9d9d9;display:block;margin:0 auto 12px}
h1{font-size:26px;font-weight:900}
.sub{color:var(--muted);font-size:14px;margin:4px 0 20px}

.tabs{display:flex;background:#eee;border-radius:10px;padding:4px;margin-bottom:22px;gap:2px}
.tabs button{flex:1;padding:10px 4px;border:0;border-radius:8px;background:none;font:inherit;font-weight:500;font-size:13px;cursor:pointer;color:var(--muted)}
.tabs button[aria-selected="true"]{background:#fff;color:var(--ink);box-shadow:0 1px 4px rgba(0,0,0,.15)}
#tabAdmin[aria-selected="true"]{color:var(--danger)}

form,#panelGuest{text-align:left}
label{display:block;font-size:14px;font-weight:500;margin:14px 0 6px}
input{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:10px;font:inherit;font-size:15px;color:var(--ink);background:#fff}
input:focus{outline:3px solid #1d6fd633;border-color:var(--accent)}
.pass{position:relative}
.pass input{padding-right:64px}
.toggle-pass{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:0;background:none;color:var(--accent);font:inherit;font-size:13px;font-weight:500;padding:6px 8px;cursor:pointer}

.msg{min-height:20px;margin:10px 0 4px;font-size:13px;color:var(--danger)}
.msg.ok{color:#1b7f3b}
.primary{width:100%;padding:13px;border:0;border-radius:10px;background:var(--accent);color:#fff;font:inherit;font-weight:700;font-size:15px;cursor:pointer}
.primary:hover{background:#1558ad}
.primary.dark{background:#000}.primary.dark:hover{background:#333}
.primary.admin{background:var(--danger)}.primary.admin:hover{background:#a01f15}
button:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.hint{text-align:center;color:var(--muted);font-size:13px;margin-top:14px}
.guest-text,.admin-note{font-size:15px;line-height:1.6;color:var(--muted);text-align:center}
.guest-text{margin-bottom:18px}
.admin-note{background:#c0281c14;color:var(--danger);border-radius:8px;padding:10px 12px;font-size:14px}
[hidden]{display:none!important}

.link{border:0;background:none;color:var(--accent);font:inherit;font-weight:700;cursor:pointer;text-decoration:underline;padding:0}

.divider{display:flex;align-items:center;gap:12px;margin:18px 0 14px;color:var(--muted);font-size:13px}
.divider::before,.divider::after{content:"";flex:1;height:1px;background:var(--line)}
.ghost{width:100%;padding:12px;border:1px solid #111;border-radius:10px;background:#fff;color:#111;font:inherit;font-weight:700;font-size:15px;cursor:pointer}
.ghost:hover{background:#f0f0f0}
.hint.small{font-size:12px;margin-top:10px}
