/* O₂Max dark mode (2.1): Portal, Screen results, results links, app layout and login screen.
   Loaded only when dark mode is on; everything is scoped under body.o2max-dark. */
body.o2max-dark{--o2d-bg:#000;--o2d-surface:#1C1C1E;--o2d-surface-2:#2C2C2E;--o2d-ink:#F5F5F7;--o2d-ink-2:#D2D2D7;--o2d-muted:#A1A1A6;--o2d-line:#38383A;--o2d-lime:#a3cd3c;--o2d-lime-text:#b9dc63}

/* Fonts: follow the theme (Raleway body, Gilda Display headings), then Kadence, then system. */
body .o2max-portal,body .o2max-results,body.o2max-app{font-family:var(--body,var(--global-body-font-family,system-ui,-apple-system,"Segoe UI",Arial,sans-serif))}
body .o2max-portal.o2max-portal :is(button,input,select,textarea,label,summary){font-family:var(--body,var(--global-body-font-family,inherit))}
body .o2max-portal.o2max-portal :is(h1,h2,h3,h4){font-family:var(--display,var(--global-heading-font-family,inherit))}
body.o2max-login{font-family:var(--body,-apple-system,"Segoe UI",Roboto,Arial,sans-serif)}

/* ---------- Portal (2.4: Apple-style dark palette; parts come from portal.css) ---------- */
body.o2max-dark .o2max-portal.o2max-portal{--bg:#000;--surface:#1C1C1E;--surface-2:#2C2C2E;--fill:rgba(255,255,255,.1);--ink:#F5F5F7;--ink-2:#D2D2D7;--muted:#A1A1A6;--line:#38383A;
  --lime:#A3CD3C;--lime-text:#B9DC63;--ring:#A3CD3C;--flag:#FF8F7A;--flag-bg:#3A1812;--shadow:none;
  --s0:#F5F5F7;--s0-ink:#0B0B0C;--s1:#8E8E93;--s1-ink:#0B0B0C;--s2:#3A3A3C;--s2-ink:#F5F5F7;--s3:#A3CD3C;--s3-ink:#0B0B0C;color-scheme:dark}
body.o2max-dark .o2max-portal.o2max-portal .op-req-status select{background:#3A3A3C}
body.o2max-dark .o2max-portal.o2max-portal .op-btn.op-ghost:hover{filter:none;background:rgba(255,255,255,.16)}
body.o2max-dark .o2max-portal input::placeholder{color:#8E8E93}

/* ---------- Screen results ---------- */
body.o2max-dark .o2max-results{--bg:#000;--surface:#1C1C1E;--surface-2:#2C2C2E;--ink:#F5F5F7;--ink-2:#D2D2D7;--muted:#A1A1A6;--line:#38383A;
  --brand:#2C2C2E;--brand-ink:#ffffff;--lime:#A3CD3C;--lime-ink:#B9DC63;--on-lime:#0b0b0c;
  --s0:#F5F5F7;--s0-ink:#0b0b0c;--s1:#8E8E93;--s1-ink:#0b0b0c;--s2:#3A3A3C;--s2-ink:#F5F5F7;--s3:#a3cd3c;--s3-ink:#0b0b0c;--flag:#ff8f7a;--flag-bg:#3a1812;color-scheme:dark}
body.o2max-dark .o2max-results :focus-visible{outline:3px solid #A3CD3C;box-shadow:none}
body.o2max-dark .o2max-results .modes{background:#000}
body.o2max-dark .o2max-results :is(.next,.callout,.entry-note,.retest){--lime-ink:#3b5008;--ink:#0b0b0c;--ink-2:#1e2a06;--muted:#33420f;color:#0b0b0c}
body.o2max-dark .o2max-results :is(.next,.callout,.entry-note,.retest) .eyebrow{color:#3b5008}
body.o2max-dark .o2max-results :is(input,select,textarea){color:var(--ink);background:var(--surface-2)}
body.o2max-dark .o2max-results.o2max-results input::placeholder{color:#8E8E93}
body.o2max-dark .o2max-portal .os-more .o2max-results{background:transparent}

/* ---------- App layout ---------- */
body.o2max-dark.o2max-app{background:#000;color:var(--o2d-ink)}
body.o2max-dark .o2app-top{background:rgba(22,22,23,.8);border-bottom-color:rgba(255,255,255,.1)}
body.o2max-dark .o2app-nav a{color:#F5F5F7}
body.o2max-dark .o2app-nav a:hover{background:rgba(255,255,255,.1);color:#fff}
body.o2max-dark .o2app-nav a[aria-current="page"]{background:#F5F5F7;color:#0B0B0C}
body.o2max-dark .o2app-nav .o2app-out{background:rgba(255,255,255,.1)}
body.o2max-dark .o2app-mark .o2app-logo{display:block}
body.o2max-dark .o2app-mark:has(.o2app-logo) .o2app-word{display:none}
body.o2max-dark .o2app-mark b{color:#A3CD3C}
body.o2max-dark .o2app-mark .o2app-word{color:#fff}
body.o2max-dark .o2app-top a:focus-visible,body.o2max-dark .o2app-foot a:focus-visible{outline:3px solid #A3CD3C;box-shadow:none}
body.o2max-dark .o2app-foot{border-top-color:rgba(255,255,255,.1);color:#A1A1A6}
body.o2max-dark .o2app-tag{color:#A3CD3C}

/* ---------- WordPress login screen ---------- */
body.login.o2max-dark{background:var(--o2d-bg);color:var(--o2d-ink);font-family:var(--body,system-ui,-apple-system,"Segoe UI",Arial,sans-serif)}
body.login.o2max-dark #login{padding-top:8vh}
body.login.o2max-dark #loginform,body.login.o2max-dark #lostpasswordform,body.login.o2max-dark #registerform,body.login.o2max-dark #resetpassform{background:var(--o2d-surface);border:0;border-radius:22px;box-shadow:none;padding:28px 26px}
body.login.o2max-dark label{color:var(--o2d-ink);font-weight:600}
body.login.o2max-dark input[type=text],body.login.o2max-dark input[type=password],body.login.o2max-dark input[type=email]{background:var(--o2d-surface-2);color:var(--o2d-ink);border:1px solid transparent;border-radius:12px;min-height:48px;box-shadow:none}
body.login.o2max-dark input[type=text]:focus,body.login.o2max-dark input[type=password]:focus{border-color:var(--o2d-lime);box-shadow:0 0 0 4px rgba(163,205,60,.3)}
body.login.o2max-dark .button.wp-hide-pw{color:var(--o2d-muted)}
body.login.o2max-dark .button-primary{background:var(--o2d-lime);border-color:var(--o2d-lime);color:#0b0b0c;font-weight:600;border-radius:999px;min-height:44px;padding:0 22px;text-shadow:none;box-shadow:none}
body.login.o2max-dark .button-primary:hover,body.login.o2max-dark .button-primary:focus{background:#8fb82d;border-color:#8fb82d;color:#0b0b0c}
body.login.o2max-dark input[type=checkbox]{background:var(--o2d-bg);border-color:#3a3d40}
body.login.o2max-dark input[type=checkbox]:checked::before{filter:invert(1) hue-rotate(180deg)}
body.login.o2max-dark #nav a,body.login.o2max-dark #backtoblog a,body.login.o2max-dark .privacy-policy-link,body.login.o2max-dark .o2max-login-alt a{color:var(--o2d-ink-2)}
body.login.o2max-dark #nav a:hover,body.login.o2max-dark #backtoblog a:hover,body.login.o2max-dark .o2max-login-alt a:hover{color:var(--o2d-lime)}
body.login.o2max-dark .message,body.login.o2max-dark .notice,body.login.o2max-dark #login_error{background:var(--o2d-surface);color:var(--o2d-ink);border-left-color:var(--o2d-lime);box-shadow:none}
body.login.o2max-dark #login_error{border-left-color:#ff8f7a}
body.login.o2max-dark .language-switcher{display:none}
body.login.o2max-dark :focus-visible{outline:2px solid var(--o2d-lime);outline-offset:2px}
body.o2max-dark .o2max-results :is(.next,.callout,.entry-note,.retest) .eyebrow{color:#3b5008}

/* ---------- Light / dark switch (styled in both schemes) ---------- */
.o2-scheme{appearance:none;display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 14px 0 8px;border-radius:999px;border:0;background:rgba(0,0,0,.05);color:#1D1D1F;font:inherit;font-weight:700;font-size:14.5px;line-height:1;cursor:pointer;box-shadow:none;text-transform:none;letter-spacing:normal;white-space:nowrap}
.o2-scheme:hover{background:rgba(0,0,0,.08)}
body.o2max-dark .o2-scheme{background:rgba(255,255,255,.1);color:#F5F5F7}
body.o2max-dark .o2-scheme:hover{background:rgba(255,255,255,.16)}
.o2-scheme:focus-visible{outline:2px solid #AFD15A;outline-offset:2px}
.o2-scheme-icon{position:relative;width:38px;height:22px;border-radius:999px;background:#C7C7CC;flex:none;transition:background .2s}
.o2-scheme-icon::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .2s}
.o2-scheme[aria-pressed="true"] .o2-scheme-icon{background:#a3cd3c}
.o2-scheme[aria-pressed="true"] .o2-scheme-icon::after{transform:translateX(16px);background:#0b0b0c}
@media (prefers-reduced-motion:reduce){.o2-scheme-icon,.o2-scheme-icon::after{transition:none}}
/* On light surfaces (portal bar, portal card, login) */
body.o2max-dark .o2-scheme:not([aria-pressed="true"]) .o2-scheme-icon{background:#48484A}
.o2max-portal .op-bar-end{display:inline-flex;align-items:center;gap:12px;flex-wrap:wrap}
.o2max-portal .o2-scheme-card{align-self:flex-end;margin-bottom:-8px}
.o2app-main .o2max-portal .op-bar .o2-scheme{display:none}
.o2-scheme-wrap{position:absolute;top:16px;right:16px}
@media (max-width:520px){.o2-scheme-wrap{position:static;display:flex;justify-content:center;padding-top:16px}
.o2app-nav .o2-scheme .o2-scheme-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.o2app-nav .o2-scheme{padding:0 8px}}
/* Light login: the logo is white-on-dark, so it sits on a black plate. */
body.o2max-login:not(.o2max-dark) #login h1 a{background-color:#0B0B0B;background-origin:content-box;background-clip:border-box;padding:12px 18px;border-radius:12px;box-sizing:content-box;width:204px;height:44px}
/* Light login, in brand colours */
body.o2max-login:not(.o2max-dark){background:#F5F5F7;color:#1D1D1F}
body.o2max-login:not(.o2max-dark) #loginform,body.o2max-login:not(.o2max-dark) #lostpasswordform{border:0;border-radius:22px;box-shadow:0 1px 2px rgba(0,0,0,.04),0 0 0 1px rgba(0,0,0,.04);padding:28px 26px}
body.o2max-login:not(.o2max-dark) input[type=text],body.o2max-login:not(.o2max-dark) input[type=password]{background:#F5F5F7;border:1px solid transparent;border-radius:12px;min-height:48px;box-shadow:none}
body.o2max-login:not(.o2max-dark) .button-primary{background:#A3CD3C;border-color:#A3CD3C;color:#0B0B0C;border-radius:999px;padding:0 22px;min-height:44px;font-weight:600;box-shadow:none;text-shadow:none}
body.o2max-login:not(.o2max-dark) .button-primary:hover,body.o2max-login:not(.o2max-dark) .button-primary:focus{background:#94BD30;border-color:#94BD30;color:#0B0B0C}
body.o2max-login:not(.o2max-dark) input[type=text]:focus,body.o2max-login:not(.o2max-dark) input[type=password]:focus{border-color:#4A6A0A;box-shadow:0 0 0 4px rgba(163,205,60,.3)}
body.o2max-login:not(.o2max-dark) .o2max-login-alt a,body.o2max-login:not(.o2max-dark) .privacy-policy-link{color:#0B0B0B}
body.o2max-login .button.wp-hide-pw .dashicons{color:#636366}
/* Dark (when chosen): no grey boxes inside dark cards; rows and fields are outlined instead. */
body.o2max-dark .o2max-portal.o2max-portal :is(.op-rows details,.op-req,.op-clinic,.op-empty,.op-demand div){background:transparent;box-shadow:inset 0 0 0 1px #38383A}
body.o2max-dark .o2max-portal.o2max-portal .op-rows details[open],body.o2max-dark .o2max-portal.o2max-portal .op-clinic:hover{box-shadow:inset 0 0 0 1.5px #A3CD3C}
body.o2max-dark .o2max-portal.o2max-portal .op-req-new{box-shadow:inset 0 0 0 1px #38383A,inset 4px 0 0 #A3CD3C}
body.o2max-dark .o2max-portal.o2max-portal :is(input[type="email"],input[type="text"],input[type="search"],select),body.o2max-dark .o2max-portal.o2max-portal .op-req-status select{background:transparent;border:1px solid #48484A}
body.o2max-dark .o2max-results.o2max-results .box,body.o2max-dark .o2max-results.o2max-results .inp{background:transparent;box-shadow:inset 0 0 0 1px #38383A}
body.o2max-dark .o2max-results.o2max-results .inp:focus-within{box-shadow:0 0 0 4px rgba(163,205,60,.3)}
body.o2max-dark .o2max-breath-check.o2max-breath-check :is(.opts,.test){background:transparent;box-shadow:inset 0 0 0 1px #38383A}
body.o2max-dark .o2max-breath-check.o2max-breath-check .test.hit{box-shadow:inset 0 0 0 1.5px #A3CD3C}
body.o2max-dark .o2max-breath-check.o2max-breath-check :is(.lead-form input[type="text"],.lead-form input[type="email"],.combo input){background:transparent;border:1px solid #48484A}
body.o2max-dark .o2max-breath-check.o2max-breath-check .chosen{background:transparent}
/* 2.6 settings: outlines instead of grey fills in dark */
body.o2max-dark .o2max-portal.o2max-portal :is(input[type="tel"],input[type="url"]){background:transparent;border:1px solid #48484A}
body.o2max-dark .o2max-portal.o2max-portal .op-field.is-error input{border-color:#FF6B57}
body.o2max-dark .o2max-portal.o2max-portal .op-checkline{background:transparent;box-shadow:inset 0 0 0 1px #38383A}
body.o2max-dark .o2max-portal.o2max-portal .op-fixed div{box-shadow:inset 0 0 0 1px #38383A}
body.o2max-dark .o2max-portal.o2max-portal .op-checkline input{accent-color:#A3CD3C}
body.o2max-dark .o2max-portal.o2max-portal :is(.op-link.op-danger,.op-field .op-error){color:#FF8A78}
