:root { color-scheme: dark; }
.orbunity-gate { min-height:100dvh; box-sizing:border-box; background:#000; color:#eff4ef; display:grid; place-items:center; padding: max(24px,env(safe-area-inset-top)) 20px max(24px,env(safe-area-inset-bottom)); font-family:system-ui,sans-serif; }
.orbunity-gate[hidden], #orbunity-content[hidden] { display:none!important; }
.orbunity-login { width:min(100%,420px); text-align:center; }
.orbunity-login h1 { color:#e2c86c; font-size:clamp(28px,7vw,38px); margin:0 0 16px; }
.orbunity-login p { line-height:1.55; color:#c5cec7; }
.orbunity-login button, .orbunity-login input { box-sizing:border-box; width:100%; min-height:48px; border-radius:14px; padding:12px 16px; font:inherit; }
.orbunity-login button { border:1px solid #637569; background:#2c3e32; color:#fff; margin-top:12px; cursor:pointer; }
.orbunity-login button:disabled { opacity:.55; cursor:wait; }
.orbunity-login button:focus-visible,.orbunity-login input:focus-visible { outline:3px solid #e2c86c; outline-offset:3px; }
.orbunity-login input { color:#fff; background:#1e2821; border:1px solid #637569; margin-top:10px; }
.orbunity-login label { display:block; text-align:left; }
.orbunity-login form label:not(:first-child) { margin-top:18px; }
.orbunity-login .orbunity-field-hint { font-size:13px; text-align:left; margin:8px 0 0; }
.orbunity-login .orbunity-text-button { border-color:transparent; background:transparent; margin-top:4px; color:#e2c86c; }
.orbunity-login small { display:block; line-height:1.5; color:#aebdb2; margin-top:22px; }
.orbunity-google { display:inline-block; margin-right:12px; font-weight:700; font-size:20px; }
.orbunity-login [role=alert]:not(:empty) { color:#ffe2de; background:#341b1a; border:2px solid #e79c91; border-radius:14px; padding:16px; text-align:left; line-height:1.55; overflow-wrap:anywhere; }
.orbunity-login [role=alert]:focus { outline:3px solid #e2c86c; outline-offset:3px; }
.orbunity-notice { background:#262619; border:2px solid #e2c86c; border-radius:14px; padding:16px; margin:20px 0; text-align:left; }
.orbunity-notice h2 { color:#f4dc89; font-size:18px; line-height:1.35; margin:0 0 8px; }
.orbunity-notice p { color:#f1eee0; margin:8px 0 0; }
.orbunity-notice-error h2,.orbunity-notice-error p { color:#ffe2de; }
/* Also hide dialogs and other app surfaces mounted outside the main content. */
.orbunity-session-locked body > :not(#orbunity-gate) { display: none !important; }
.orbunity-gate { align-content:center; gap:28px; }
.orbunity-gate a,.orbunity-app-links a { color:#e2c86c; text-underline-offset:4px; }
.orbunity-gate a:focus-visible { outline:3px solid #e2c86c; outline-offset:4px; }
.orbunity-about { display:none; width:min(100%,580px); text-align:center; color:#bdc8bf; }
.orbunity-gate-welcome .orbunity-about { display:block; }
.orbunity-about h2 { font-size:20px; color:#eef3ef; margin:0; }
.orbunity-about p { line-height:1.6; }
.orbunity-gate footer,.orbunity-app-links { display:flex; justify-content:center; flex-wrap:wrap; gap:4px 18px; font-size:13px; max-width:600px; margin:0 auto; }
.orbunity-gate footer a,.orbunity-app-links a { padding:10px 0; }
.orbunity-app-links { margin-top:28px; }
.orbunity-security { box-sizing:border-box; width:min(420px,calc(100vw - 32px)); max-height:calc(100dvh - 48px); overflow:auto; border:1px solid #637569; border-radius:18px; padding:22px; background:#17211a; color:#eff4ef; font:16px/1.5 system-ui,sans-serif; text-align:left; }
.orbunity-security::backdrop { background:#000b; }
.orbunity-security h2 { margin:0 0 16px; font-size:22px; line-height:1.3; color:#e2c86c; }
.orbunity-security p { overflow-wrap:anywhere; }
.orbunity-security .orbunity-notice h2 { font-size:18px; margin:0 0 8px; }
.orbunity-security .orbunity-danger-button { background:#542823; border-color:#e79c91; color:#ffe2de; }
