:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#f6f7f8;background:#111416;color-scheme:dark;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}[hidden]{display:none!important}.app{width:100%;max-width:420px;min-height:100svh;margin:0 auto;padding:calc(24px + env(safe-area-inset-top)) 26px calc(18px + env(safe-area-inset-bottom));display:flex;flex-direction:column}header{text-align:center;margin:10px 0 46px}header img{width:220px;height:auto;display:block;margin:auto}.screen{width:100%}h1{font-size:26px;letter-spacing:-.7px;font-weight:650;margin:0 0 32px}label{font-size:12px;color:#a2aaae;display:block;margin:22px 0 10px}input{display:block;width:100%;height:58px;padding:0 17px;border:1px solid #30363a;border-radius:14px;background:#1b2023;color:#fff;font-size:18px;outline:none;letter-spacing:.6px}input::placeholder{color:#5e686e;font-size:16px;letter-spacing:1px}input:focus{border-color:#099699;box-shadow:0 0 0 3px #09969920}.primary{width:100%;height:58px;background:#099699;border:0;border-radius:14px;color:#fff;font-size:16px;font-weight:600;margin:30px 0 0;cursor:pointer}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible{outline:2px solid #f76331;outline-offset:5px}.door-screen{text-align:center;margin:auto 0}.open-button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:25px;width:242px;height:242px;max-width:100%;margin:0 auto;border-radius:50%;border:1px solid #1fa3a5;background:#099699;color:white;box-shadow:0 0 0 14px #0996990b;font-size:19px;font-weight:550;cursor:pointer;touch-action:manipulation;transition:transform .12s,background .12s}.open-button:active:enabled,.primary:active:enabled{transform:scale(.98);background:#087d80}.open-button svg{flex-shrink:0}.connection-state{color:#858f95;font-size:12px;margin:31px 0 20px}.logout{background:none;border:none;color:#b1b9be;font-size:14px;padding:10px 20px;cursor:pointer}.message{padding:14px 16px;border:1px solid #544231;border-radius:13px;background:#2b241e;color:#edc99e;font-size:13px;line-height:1.65;margin:24px 0 0}.message[data-kind=success]{border-color:#245544;background:#182d24;color:#a6dfc1}.message[data-kind=error]{border-color:#5a3831;background:#2e211e;color:#efb1a3}footer{margin-top:auto;padding-top:40px;text-align:center}footer a{color:#8a959b;font-size:13px;text-decoration:none;padding:12px;display:inline-block}footer a:hover{color:#f76331}@media(max-height:720px){header{margin:0 0 24px}header img{width:180px}h1{margin-bottom:24px}.open-button{width:210px;height:210px;gap:18px}footer{padding-top:24px}}@media(min-width:600px){.app{min-height:min(850px,100svh);margin-top:24px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.binding-note{font-size:11px;color:#858f95;text-align:center;margin:14px 0 0;line-height:1.5}

.tabs314{display:flex;gap:4px;margin:-20px 0 28px;padding:4px;border:1px solid #30363a;border-radius:14px}.tabs314 button{flex:1;min-height:44px;border:0;border-radius:10px;background:transparent;color:#a2aaae;cursor:pointer}.tabs314 button[aria-selected=true]{background:#099699;color:white}#access-panel{display:flex;flex:1;flex-direction:column}#gymbrag-panel{width:100%;flex:1;min-height:65svh}#gymbrag-frame{display:block;width:100%;height:calc(100svh - 170px);min-height:480px;border:0;border-radius:14px;background:#111416}.gymbrag-selected .app{max-width:1440px;min-height:100svh;margin:0 auto;padding:12px}.gymbrag-selected header{margin:0 0 12px}.gymbrag-selected header img{width:120px}.gymbrag-selected .tabs314{margin:0 0 12px}.gymbrag-selected footer{padding-top:10px}.gymbrag-selected #message{margin-top:8px}
/* 314D: the embedded app uses the complete viewport; only the return control belongs to GYMWEB. */
.gymbrag-door-return314d{display:none}.gymbrag-selected{overflow:hidden}.gymbrag-selected .app{width:100vw;max-width:none!important;height:100vh;height:100dvh;min-height:0!important;margin:0!important;padding:0!important}.gymbrag-selected .app>header,.gymbrag-selected .app>nav,.gymbrag-selected .app>footer,.gymbrag-selected #message,.gymbrag-selected #access-panel{display:none!important}.gymbrag-selected #gymbrag-panel{position:fixed;inset:0;width:100vw;height:100vh;height:100dvh;min-height:0;margin:0;padding:0}.gymbrag-selected #gymbrag-frame{display:block;width:100%;height:100%;min-height:0;margin:0;padding:0;border:0;border-radius:0}.gymbrag-selected .gymbrag-door-return314d{display:block;position:fixed;z-index:100;top:calc(env(safe-area-inset-top,0px) + 7px);left:50%;transform:translateX(-50%);min-height:34px;padding:7px 12px;border:1px solid #ffffff38;border-radius:999px;background:#142431dc;color:#eff7ff;box-shadow:0 3px 14px #0004;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);font-size:12px;line-height:18px;font-weight:600;white-space:nowrap;cursor:pointer;touch-action:manipulation}.gymbrag-selected .gymbrag-door-return314d:focus-visible{outline:2px solid #ff914d;outline-offset:3px}@media(max-width:420px){.gymbrag-selected .gymbrag-door-return314d{min-height:32px;padding:6px 10px;font-size:11px}}
/* 314F: optional, session-bound contact selection before GymBrag starts. */
.contact-progress314f{position:fixed;inset:0;display:grid;place-items:center;margin:0;padding:24px;color:#c5d8e9;background:#101d29;font-size:14px;z-index:80}.contact-choice314f{position:fixed;inset:0;z-index:110;display:flex;align-items:center;justify-content:center;padding:calc(env(safe-area-inset-top,0px) + 20px) 18px calc(env(safe-area-inset-bottom,0px) + 20px);background:#07111cea;overflow:auto}.contact-card314f{width:100%;max-width:380px;max-height:100%;overflow:auto;border:1px solid #345065;border-radius:20px;background:#102332;padding:24px;box-shadow:0 18px 55px #0006}.contact-card314f h2{font-size:21px;line-height:1.35;margin:0 0 14px}.contact-card314f p{font-size:13px;line-height:1.6;color:#b5c8d8;margin:0 0 16px}.contact-card314f button{display:block;min-height:44px;width:100%;padding:12px;margin:9px 0 0;border:1px solid #39566d;border-radius:12px;color:#e6f2ff;background:#18374c;font:inherit;font-size:14px;cursor:pointer}.contact-options314f button{background:#0c7e87;border-color:#1b9ba5;font-size:17px;letter-spacing:.3px}.contact-card314f #gymbrag-contact-cancel{border:0;background:transparent;color:#b5c8d8}.contact-card314f #gymbrag-contact-error{color:#ffc391;margin:12px 0 0}.contact-card314f button:focus-visible{outline:2px solid #ff914d;outline-offset:3px}
