/* ADR-028: LeagueOrbit Modern Orbit tokens (kit r1, John's selection, October 9, 2026).
   Role names, so a later personal palette overrides roles, not colours.
   Status colours (success, warning, error, pending, conflict) are NOT here and never change with the brand. */
:root{
  --lo-surface-strong:#14243B;   /* navy: headers, footer, active navigation */
  --lo-action:#2454CC;           /* blue: primary buttons, links on light (white text 6.53:1) */
  --lo-action-hover:#1D44A8;
  --lo-accent-on-dark:#8AB4FF;   /* sky: accents and links on navy (7.47:1) */
  --lo-page:#F5F7FA;
  --lo-card:#FFFFFF;
  --lo-text:#15263C;
  --lo-text-soft:#4A5B70;
  --lo-text-on-dark-soft:#C9D6EA;
  --lo-divider:#D3DBE6;          /* decorative edges only; never a control's only edge */
  --lo-field:#6B7A90;            /* control borders, 3:1 or more on white and paper */
  --lo-tint:#E7EEFB;             /* light blue wash for selected/secondary areas (text stays --lo-text) */
  --lo-focus:#7B2CBF;            /* focus ring on light surfaces */
  --lo-focus-on-dark:#F2B8FF;    /* focus ring on navy */
}
/* Focus: always offset 3 px so the ring never touches a blue control (violet on blue is 1.09:1). */
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--lo-focus);outline-offset:3px}
:where(.lo-dark,header,.top,.foot) :where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline-color:var(--lo-focus-on-dark)}

/* Lockup: the full logo without its tagline. Clear space: the O's moon diameter around it. */
.lo-lockup{display:inline-flex;align-items:center;padding:.25em;line-height:1}
.lo-lockup .lo-logo{height:2.5em;width:auto;display:block}
.lo-lockup .lo-logo-dark{display:none}
/* On navy (landing .lo-dark areas and every organizer <header>) and in dark appearance: the logo drawn for dark backgrounds. */
:where(.lo-dark,header) .lo-lockup .lo-logo-light,.lo-lockup.on-dark .lo-logo-light,:root[data-theme=dark] .lo-lockup .lo-logo-light{display:none}
:where(.lo-dark,header) .lo-lockup .lo-logo-dark,.lo-lockup.on-dark .lo-logo-dark,:root[data-theme=dark] .lo-lockup .lo-logo-dark{display:block}
.lo-page-brand{display:block;margin:0 0 1.25rem;font-size:1.25rem;text-decoration:none}

/* Server-made pages (sign-in, account, invitation, links): colours only; each page keeps its own layout. */
body.lo-simple{background:var(--lo-page);color:var(--lo-text)}
.lo-simple a{color:var(--lo-action)}
.lo-simple .lo-page-brand{font-size:1.2rem;margin-bottom:1.5rem}
.lo-simple :where(input:not([type=checkbox],[type=radio]),select,textarea){border:1px solid var(--lo-field);border-radius:7px;background:#fff;color:inherit}
.lo-simple button{background:var(--lo-action);color:#fff;border:1px solid var(--lo-action);border-radius:7px;cursor:pointer}
.lo-simple button:hover{background:var(--lo-action-hover);border-color:var(--lo-action-hover)}
.lo-simple .muted,.lo-simple .org{color:var(--lo-text-soft)}

/* The logo links to leagueorbit.com everywhere (John, October 17, 2026): it keeps the lockup's look. */
a.lo-home { color: inherit; text-decoration: none; display: inline-flex; align-items: center; }
a.lo-home:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; border-radius: 4px; }
/* ADR-227 (John, October 21, 2026): the light/dark button in the header, as in the app (theme.js draws a sun or a moon).
   Hidden until theme.js has run, so a page without the script never shows an empty button. */
button.lo-theme-toggle[data-theme-toggle]{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;min-height:44px;padding:0;margin:0;flex:none;border-radius:8px;
  border:1px solid rgba(255,255,255,.55);background:transparent;color:#fff;cursor:pointer;font:inherit}
button.lo-theme-toggle[data-theme-toggle]:hover{background:rgba(255,255,255,.12)}
button.lo-theme-toggle[data-theme-toggle]:focus-visible{outline:3px solid var(--lo-focus-on-dark,#F2B8FF);outline-offset:2px}
.lo-theme-toggle svg{display:block}
:root:not([data-theme]) .lo-theme-toggle{display:none}
@media print{.lo-theme-toggle{display:none}}
/* THEME-DARK START (generated by tools/theme/build-dark.mjs; do not edit by hand) */
@media screen{:root[data-theme=dark]{color-scheme:dark;--lo-surface-strong:#0E1A2C;--lo-action:#2F62DB;--lo-action-hover:#3E70E6;--lo-page:#0B1422;--lo-card:#132033;--lo-text:#E6EDF6;--lo-text-soft:#A9B8CB;--lo-divider:#2A3A52;--lo-field:#7D8DA5;--lo-tint:#1B2B45;--lo-focus:#D9A6FF;--lo-link:#9CC0FF;--lo-ink-action:#9CC0FF;--lo-ink-strong:#F2F6FB;--lo-text-on-dark-soft:#C9D6EA;--lo-accent-on-dark:#8AB4FF;--d-bd-0b1424:#8994a9;--d-bg-b3ceff:#18263f;--d-bg-dcefe7:#24332c;--d-bg-eaeff6:#242a33;--d-bg-f6f9fd:#1f2a38;--d-bg-fdf0cc:#3d3419;--d-bg-ffffff:#142236;--d-fg-0d5a41:#baf5e2;--d-fg-6b5000:#ffebae}:root[data-theme=dark] main a:where(:not(.btn,.button)){color:var(--lo-link)}}
@media screen and (prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;--lo-surface-strong:#0E1A2C;--lo-action:#2F62DB;--lo-action-hover:#3E70E6;--lo-page:#0B1422;--lo-card:#132033;--lo-text:#E6EDF6;--lo-text-soft:#A9B8CB;--lo-divider:#2A3A52;--lo-field:#7D8DA5;--lo-tint:#1B2B45;--lo-focus:#D9A6FF;--lo-link:#9CC0FF;--lo-ink-action:#9CC0FF;--lo-ink-strong:#F2F6FB;--lo-text-on-dark-soft:#C9D6EA;--lo-accent-on-dark:#8AB4FF;--d-bd-0b1424:#8994a9;--d-bg-b3ceff:#18263f;--d-bg-dcefe7:#24332c;--d-bg-eaeff6:#242a33;--d-bg-f6f9fd:#1f2a38;--d-bg-fdf0cc:#3d3419;--d-bg-ffffff:#142236;--d-fg-0d5a41:#baf5e2;--d-fg-6b5000:#ffebae}:root:not([data-theme]) main a:where(:not(.btn,.button)){color:var(--lo-link)}}
/* THEME-DARK END */
.lo-pull-hint{position:fixed;top:8px;left:50%;transform:translateX(-50%);z-index:2000;background:#14243b;color:#fff;padding:.4rem .9rem;border-radius:999px;font:600 .9rem/1.2 system-ui,sans-serif;box-shadow:0 2px 8px rgba(0,0,0,.25)}
.lo-pull-hint[hidden]{display:none}
button.lo-reload{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;min-height:40px;padding:0;margin:0;flex:none;border-radius:8px;border:1px solid rgba(255,255,255,.55);background:transparent;color:#fff;cursor:pointer}button.lo-reload:focus-visible{outline:3px solid var(--lo-focus-on-dark,#F2B8FF);outline-offset:2px}button.lo-reload.on-page{color:var(--lo-text);border-color:var(--lo-field)}
