:root { color-scheme: dark; }
.orbunity-gate { min-height:100dvh; box-sizing:border-box; background:#050509; color:#F1F2FA; display:grid; place-items:center; padding: max(24px,env(safe-area-inset-top)) 20px max(24px,env(safe-area-inset-bottom)); font-family:"Exo 2",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:#E5C84A; font-size:clamp(28px,7vw,38px); margin:0 0 16px; }
.orbunity-login p { line-height:1.55; color:#BDC4DF; }
.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 #7883A8; background:#1C2949; color:#fff; margin-top:12px; cursor:pointer; }
.orbunity-security button[type=submit].op-grey-glass { color:#E5C84A; }
.orbunity-login button:disabled { opacity:.55; cursor:wait; }
.orbunity-login button:focus-visible,.orbunity-login input:focus-visible { outline:3px solid #E5C84A; outline-offset:3px; }
.orbunity-login input { color:#fff; background:#101A36; border:1px solid #7883A8; 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:#E5C84A; }
.orbunity-login small { display:block; line-height:1.5; color:#BDC4DF; 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 #E5C84A; outline-offset:3px; }
.orbunity-notice { background:#262619; border:2px solid #E5C84A; 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:#E5C84A; text-underline-offset:4px; }
.orbunity-gate a:focus-visible { outline:3px solid #E5C84A; outline-offset:4px; }
.orbunity-about { display:none; width:min(100%,580px); text-align:center; color:#BDC4DF; }
.orbunity-gate-welcome .orbunity-about { display:block; }
.orbunity-about h2 { font-size:20px; color:#F1F2FA; 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; inset:max(24px,env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) max(24px,env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px)); width:min(420px,calc(100vw - max(16px,env(safe-area-inset-left,0px)) - max(16px,env(safe-area-inset-right,0px)))); max-height:calc(100dvh - max(24px,env(safe-area-inset-top,0px)) - max(24px,env(safe-area-inset-bottom,0px))); overflow:auto; border:1px solid #7883A8; border-radius:18px; padding:22px; background:#101A36; color:#F1F2FA; font:16px/1.5 "Exo 2",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:#E5C84A; }
.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; }
/* Email sign-in has one unmistakable primary action; registration starts on
   its own next page. These rules never match account/security dialogs. */
#orbunity-gate .orbunity-login button.orbunity-auth-primary{background:#E5C84A;color:#11142B;border-color:#f4dc78;box-shadow:inset 0 1px 0 #fff5,0 2px 7px #0002;text-shadow:none}
#orbunity-gate .orbunity-login button.orbunity-auth-primary:disabled{opacity:1;background:#b9a448;color:#11142B;border-color:#c8b35c;cursor:wait}
.orbunity-gate.orbunity-gate-email{padding:max(24px,calc(env(safe-area-inset-top,0px) + 16px)) max(20px,env(safe-area-inset-right,0px)) max(24px,env(safe-area-inset-bottom,0px)) max(20px,env(safe-area-inset-left,0px));gap:26px}
.orbunity-login.orbunity-email-signin{padding:28px 22px 20px;border-radius:26px;min-width:0}
.orbunity-email-signin .orbunity-auth-brand{color:#E5C84A;font-size:25px;font-weight:650;line-height:1.25;margin:0 0 24px}
.orbunity-email-signin h1{font-size:clamp(24px,6.6vw,30px);line-height:1.15;letter-spacing:-.025em;color:#F1F2FA;margin:0 0 14px;font-weight:650}
.orbunity-email-signin h1:focus{outline:none}
.orbunity-email-signin .orbunity-auth-intro{font-size:16px;line-height:1.4;margin:0 auto 28px;max-width:29ch}
.orbunity-email-signin form{display:flex;flex-direction:column;min-width:0;text-align:left}
.orbunity-email-signin label{font-size:16px;line-height:1.35}
.orbunity-email-signin input{font-size:16px;min-height:48px;margin-top:8px}
.orbunity-email-signin input::placeholder{color:#BDC4DF;opacity:.75}
.orbunity-email-signin form label:not(:first-child){margin-top:20px}
.orbunity-password-field{position:relative;min-width:0}
.orbunity-email-signin .orbunity-password-field input{padding-right:52px}
.orbunity-email-signin .orbunity-password-reveal{position:absolute;right:3px;top:10px;display:grid;place-items:center;width:44px;min-height:44px;padding:0;margin:0;border:0;color:#BDC4DF;border-radius:10px}
.orbunity-password-reveal svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.orbunity-email-signin .orbunity-auth-forgot{align-self:flex-end;width:auto;margin:0 0 12px;padding:8px 0;min-height:44px;font-size:15px;line-height:1.3;text-align:right}
.orbunity-login.orbunity-email-signin button.orbunity-auth-primary{background:#E5C84A;color:#11142B;border:1px solid #f4dc78;box-shadow:inset 0 1px 0 #fff5,0 2px 7px #0002;font-size:20px;font-weight:650;line-height:1.2;min-height:52px;margin-top:0;text-shadow:none}
.orbunity-login.orbunity-email-signin button.orbunity-auth-primary:disabled{opacity:1;background:#b9a448;color:#11142B;border-color:#c8b35c;cursor:wait}
.orbunity-auth-registration{margin-top:30px}
.orbunity-email-signin .orbunity-auth-divider{display:flex;align-items:center;gap:12px;margin:0 0 18px;font-size:16px;line-height:1.35;white-space:nowrap}
.orbunity-auth-divider::before,.orbunity-auth-divider::after{content:"";height:1px;background:#7883A88c;flex:1;min-width:12px}
.orbunity-email-signin .orbunity-auth-create{display:flex;align-items:center;justify-content:center;gap:14px;margin:0;font-size:20px;font-weight:600;line-height:1.2;min-height:52px;color:#F1F2FA}
.orbunity-auth-create svg,.orbunity-auth-back svg{width:22px;height:22px;flex:none}
.orbunity-auth-help{margin-top:16px}
.orbunity-auth-help summary{display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;cursor:pointer;color:#F1F2FA;list-style:none;font-size:16px;line-height:1.35}
.orbunity-auth-help summary::-webkit-details-marker{display:none}
.orbunity-auth-help summary svg{width:20px;height:20px;flex:none;transition:transform .16s ease}
.orbunity-auth-help[open] summary svg{transform:rotate(180deg)}
.orbunity-auth-help summary:focus-visible{outline:3px solid #E5C84A;outline-offset:3px;border-radius:10px}
.orbunity-email-signin .orbunity-auth-help button{font-size:15px;line-height:1.4;margin-top:0}
.orbunity-email-signin .orbunity-auth-back{display:flex;align-items:center;justify-content:center;gap:10px;width:auto;min-width:100px;margin:14px auto 0;font-size:17px;padding:8px 14px}
.orbunity-gate-email footer a{display:inline-flex;align-items:center;min-height:44px;box-sizing:border-box}
.orbunity-email-signin [role=alert]:not(:empty){margin-bottom:0}
@media(max-width:359px),(max-height:900px){
 .orbunity-gate.orbunity-gate-email{gap:16px}
 .orbunity-login.orbunity-email-signin{padding:22px 18px 14px}
 .orbunity-email-signin .orbunity-auth-brand{font-size:23px;margin-bottom:18px}
 .orbunity-email-signin h1{font-size:clamp(23px,6.6vw,28px);margin-bottom:10px}
 .orbunity-email-signin .orbunity-auth-intro{margin-bottom:20px}
 .orbunity-email-signin form label:not(:first-child){margin-top:16px}
 .orbunity-email-signin .orbunity-auth-forgot{margin-bottom:8px}
 .orbunity-auth-registration{margin-top:22px}
 .orbunity-email-signin .orbunity-auth-divider{margin-bottom:14px}
 .orbunity-auth-help{margin-top:10px}
 .orbunity-email-signin .orbunity-auth-back{margin-top:8px}
 .orbunity-gate-email footer{font-size:12px;gap:0 14px}
 .orbunity-gate-email footer a{padding:6px 0}
}
@media(prefers-reduced-motion:reduce){.orbunity-auth-help summary svg{transition:none}}
@media(forced-colors:active){#orbunity-gate .orbunity-login button.orbunity-auth-primary,#orbunity-gate .orbunity-login button.orbunity-auth-primary:disabled{background:Highlight;color:HighlightText;border-color:ButtonText;box-shadow:none}}
