*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body,
#root {
  min-height: 100%;
}

body {
  margin: 0;
  color: var(--text);
  background:
    radial-gradient(circle at top, rgba(212, 255, 63, 0.08), transparent 18%),
    linear-gradient(180deg, #0a281d 0%, var(--bg) 100%);
}

a {
  color: inherit;
  text-decoration: none;
}

button,
input,
select,
textarea {
  font: inherit;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.marketing-layout,
.app-shell {
  min-height: 100vh;
}

.workspace-shell { --accent: var(--workspace-accent); --accent-strong: var(--workspace-accent-strong); --accent-soft: var(--workspace-accent-soft); min-height: 100vh; display: grid; grid-template-columns: 272px minmax(0, 1fr); background: var(--workspace-surface); }
.workspace-sidebar { position: sticky; top: 0; height: 100vh; overflow-y: auto; padding: 18px; background: #123524; color: #f7f7f0; }
.workspace-nav { min-height: 100%; display: flex; flex-direction: column; gap: 10px; }
.workspace-brand { display: grid; gap: 2px; color: inherit; text-decoration: none; padding: 10px 8px 18px; }
.workspace-brand strong { font-size: 1.1rem; }.workspace-brand span { font-size: .72rem; text-transform: uppercase; letter-spacing: .09em; color: #d6e7b4; }
.workspace-nav-primary,.workspace-nav-secondary { display: grid; gap: 4px; }.workspace-nav-divider { height: 1px; background: rgba(255,255,255,.2); margin: 10px 0; }
.workspace-nav-link,.workspace-membership-status { min-height: 44px; display: flex; align-items: center; padding: 0 12px; border-radius: 10px; color: #e8efe7; text-decoration: none; font-weight: 700; }
.workspace-nav-link:hover,.workspace-nav-link:focus-visible,.workspace-nav-link.is-active { background: var(--workspace-accent-strong); color: var(--workspace-accent-on-fill); outline: none; }
.workspace-preview-card { margin-top: auto; background: #f3f8e7; color: #123524; border: 1px solid var(--workspace-accent-border); }.workspace-membership-status { margin-top: auto; background: rgba(79,125,31,.28); color: #e4f0ce; }
.workspace-main { min-width: 0; }.workspace-mobile-header,.workspace-mobile-drawer { display: none; }
.workspace-main > .content-page { width: 100%; max-width: none; margin: 0; }
.workspace-main .session-workspace { display: block; width: 100%; }
.workspace-main .session-main-column { width: 100%; min-width: 0; }
.workspace-main .session-workspace-page { padding-bottom: 1.5rem; }
.workspace-main { --workspace-ink: var(--workspace-text); --workspace-surface: #fffdf7; color: var(--workspace-ink); font-size: 1rem; line-height: 1.5; }
.workspace-main ::selection { background: #d8ee82; color: #10281f; text-shadow: none; }
.workspace-main .section-header { gap: 0.45rem; }
.workspace-main .section-header h1 { color: #123524; font-size: clamp(2rem, 4vw, 3rem); font-weight: 800; line-height: 1.05; letter-spacing: -0.025em; }
.workspace-main h2 { color: #17392d; font-size: clamp(1.15rem, 2vw, 1.4rem); font-weight: 750; line-height: 1.2; }
.workspace-main h3 { color: #234638; font-size: 1rem; font-weight: 750; line-height: 1.3; }
.workspace-main p,.workspace-main li { color: var(--workspace-ink); }
.workspace-main .muted { color: var(--workspace-muted); }
.workspace-main .card:not(.app-intro-card):not(.upgrade-card) { background: var(--workspace-surface); color: var(--workspace-ink); }
.workspace-main .card:not(.app-intro-card):not(.upgrade-card) h1,.workspace-main .card:not(.app-intro-card):not(.upgrade-card) h2,.workspace-main .card:not(.app-intro-card):not(.upgrade-card) h3 { color: var(--workspace-ink); }
.workspace-main .session-library-view .section-header,.workspace-main .session-library-view .section-header h1,.workspace-main .session-library-view .section-header .eyebrow,.workspace-main .session-library-view .section-header .muted { color: #123524; }
.workspace-main .session-library-view .section-header .eyebrow { color: #456354; }
.workspace-main .app-intro-card,.workspace-main .app-intro-card h1,.workspace-main .app-intro-card h2,.workspace-main .app-intro-card h3,.workspace-main .app-intro-card p,.workspace-main .upgrade-card,.workspace-main .upgrade-card h2,.workspace-main .upgrade-card p { color: #f8fff9; }
.workspace-main .app-intro-card .muted,.workspace-main .upgrade-card .muted { color: rgba(248,255,249,.88); }
.workspace-shell .eyebrow,.workspace-main .session-library-view .section-header .eyebrow { color: var(--workspace-accent-strong); }
.workspace-shell .button-primary,.workspace-shell .ai-btn-primary { background: var(--workspace-accent-strong); border-color: var(--workspace-accent-strong); color: var(--workspace-accent-on-fill); }
.workspace-shell .button-primary:hover,.workspace-shell .button-primary:focus-visible,.workspace-shell .ai-btn-primary:hover,.workspace-shell .ai-btn-primary:focus-visible { background: var(--workspace-accent-hover); border-color: var(--workspace-accent-hover); }
.workspace-shell .button-ghost { color: var(--workspace-accent-strong); border-color: var(--workspace-accent-border); }
.workspace-main .drill-detail-close:focus-visible,.workspace-main .drill-detail-tabs button:focus-visible,.workspace-main .drill-favourite-toggle:focus-visible,.workspace-main .current-session-sidebar-card:focus-visible { outline-color: var(--workspace-accent); }
.workspace-main .drill-detail-tabs button.is-active { border-color: var(--workspace-accent); background: var(--workspace-accent-soft); color: var(--workspace-forest); }
.workspace-main .drill-action-primary { background: var(--workspace-accent-strong) !important; color: var(--workspace-accent-on-fill) !important; }
.workspace-main .drill-favourite-toggle.is-active { border-color: var(--workspace-accent-border); background: var(--workspace-accent-soft); color: var(--workspace-accent-strong); }

/* Coaching Workspace tablet shell */
.workspace-shell { grid-template-columns: 296px minmax(0, 1fr); background: #e9eee3; }
.workspace-sidebar { padding: 14px; background: linear-gradient(160deg, #0c3021 0%, #123d2a 52%, #174831 100%); box-shadow: inset -1px 0 rgba(255,255,255,.08); }
.workspace-nav { gap: 8px; }
.workspace-brand { align-items: center; grid-template-columns: auto 1fr; gap: 10px; padding: 10px 8px 20px; }
.workspace-brand > span:last-child { display: grid; gap: 2px; }.workspace-brand strong { font-size: 1.05rem; letter-spacing: -.02em; }.workspace-brand small { color: #c4dcad; font-size: .68rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.workspace-brand-mark { display: inline-grid; width: 38px; height: 38px; place-items: center; border: 1px solid rgba(218,241,165,.52); border-radius: 12px; background: rgba(211,238,145,.14); color: #eff9d5; font-size: .76rem; font-weight: 900; letter-spacing: .04em; }
.workspace-nav-label { margin: 4px 8px 3px; color: #9fbd92; font-size: .66rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.workspace-nav-primary,.workspace-nav-secondary { gap: 7px; }.workspace-nav-divider { margin: 12px 4px; background: rgba(221,243,202,.17); }
.workspace-nav-link { min-height: 48px; gap: 11px; padding: 8px 11px; border: 1px solid transparent; border-radius: 14px; color: #f8faef; font-size: .92rem; font-weight: 800; transition: background .16s ease, border-color .16s ease, transform .16s ease; }
.workspace-nav-link:hover { background: rgba(206,231,147,.12); border-color: rgba(223,245,185,.14); transform: translateX(2px); }.workspace-nav-link:focus-visible { outline: 3px solid #d9ef9f; outline-offset: 2px; }.workspace-nav-link.is-active { background: #3f6b16; border-color: rgba(224,246,184,.36); box-shadow: 0 6px 16px rgba(0,0,0,.17); color: #fffdf4; }
.workspace-nav-icon { width: 22px; color: #b8d88e; font-size: 1.08rem; line-height: 1; text-align: center; }.workspace-nav-link.is-active .workspace-nav-icon { color: #f2ffd6; }
.workspace-nav-secondary-link { min-height: 45px; color: #d9e7d2; font-size: .83rem; }.workspace-nav-secondary-link > span:last-child { display: grid; gap: 1px; }.workspace-nav-secondary-link small { color: #a9c49f; font-size: .66rem; font-weight: 600; }.workspace-nav-secondary-link strong { font-weight: 750; }
.workspace-preview-card { display: grid; gap: 9px; margin: auto 1px 0; padding: 13px; border: 1px solid rgba(207,237,148,.28); border-radius: 16px; background: rgba(6,35,23,.55); color: #f4f8e9; box-shadow: none; }.workspace-preview-title { color: #cee99b; font-size: .7rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }.workspace-preview-row { display: grid; grid-template-columns: 18px 1fr; gap: 7px; align-items: start; color: #c8dbbe; font-size: .73rem; }.workspace-preview-row > span:first-child { color: #d7eea8; }.workspace-preview-row span:last-child { display: grid; gap: 1px; }.workspace-preview-row strong { color: #fffdf3; font-size: .78rem; }.workspace-preview-upgrade { width: 100%; min-height: 36px; border: 1px solid #b9d976; border-radius: 10px; background: #d9ee9f; color: #173524; font-weight: 850; }.workspace-preview-upgrade:hover,.workspace-preview-upgrade:focus-visible { background: #edf9c8; color: #102b1d; }.workspace-membership-status { margin: auto 1px 0; border: 1px solid rgba(207,237,148,.2); border-radius: 12px; background: rgba(91,137,40,.2); color: #e7f4d0; font-size: .8rem; font-weight: 750; }
.workspace-main { background: radial-gradient(circle at 85% 0%, rgba(218,234,184,.48), transparent 28rem), #f8f7f1; }.workspace-main > .content-page { padding: clamp(1rem, 2vw, 2rem); }
.workspace-main .session-main-shell { box-shadow: 0 12px 32px rgba(18,61,42,.08); }.workspace-main .session-area-tabs { width: max-content; max-width: 100%; gap: 4px; padding: 4px; overflow-x: auto; border: 1px solid #264e39; border-radius: 15px; background: #123d2a; }.workspace-main .session-area-tab { flex: 0 0 auto; min-height: 40px; padding: .58rem .85rem; border-color: transparent; border-radius: 11px; background: transparent; color: #dce9d4; font-size: .82rem; }.workspace-main .session-area-tab:hover,.workspace-main .session-area-tab:focus-visible { background: rgba(255,255,255,.11); color: #fff; }.workspace-main .session-area-tab.is-active { background: #4f7d1f; border-color: rgba(233,250,201,.38); color: #fff; box-shadow: 0 3px 9px rgba(0,0,0,.2); }

.workspace-home { max-width: 1180px !important; margin: 0 auto !important; }.workspace-home-hero { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 1.25rem; align-items: end; padding: clamp(1.3rem,3vw,2.35rem); border: 1px solid #345d46; border-radius: 22px; background: linear-gradient(135deg, #103b29, #1e5839); color: #fffdf5; box-shadow: 0 14px 30px rgba(18,61,42,.16); }.workspace-home-hero .eyebrow { color: #d7eea8; }.workspace-home-hero h2 { max-width: 680px; margin: .15rem 0 .45rem; color: inherit; font-size: clamp(1.55rem,3vw,2.35rem); }.workspace-home-hero p { max-width: 650px; margin: 0; color: #d5e4cf; }.workspace-home-hero-actions { display: flex; flex-wrap: wrap; gap: .6rem; }.workspace-home-hero .ai-btn-primary { background: #d9ee9f; border-color: #d9ee9f; color: #123524; }.workspace-home-hero .ai-btn-secondary { border-color: rgba(255,255,255,.45); color: #fff; }
.workspace-home-quick { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .75rem; }.workspace-home-quick-action { display: flex; gap: .75rem; align-items: center; min-height: 84px; padding: .9rem 1rem; border: 1px solid #c9d8bf; border-radius: 16px; background: #fffdf7; color: #173524; text-decoration: none; box-shadow: 0 5px 14px rgba(18,61,42,.05); }.workspace-home-quick-action:hover,.workspace-home-quick-action:focus-visible { border-color: #4f7d1f; box-shadow: 0 7px 18px rgba(18,61,42,.11); outline: none; }.workspace-home-quick-action > span { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 10px; background: #e2efc4; color: #3f6b16; font-weight: 900; }.workspace-home-quick-action div { display: grid; gap: 2px; }.workspace-home-quick-action small { color: #5f6e64; }
.workspace-home-sections { display: grid; grid-template-columns: minmax(0,1.12fr) minmax(19rem,.88fr); gap: 1rem; }.workspace-home-section { min-width: 0; padding: 1rem; border: 1px solid #d1ddc8; border-radius: 18px; background: rgba(255,253,247,.8); }.workspace-home-section .section-row { margin-bottom: .8rem; }.workspace-home-section .section-row a { color: #3f6b16; font-weight: 800; }.workspace-home-session-list { display: grid; gap: .55rem; }.workspace-home-session-card { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .8rem; border: 1px solid #d7e2d0; border-radius: 12px; color: #173524; text-decoration: none; }.workspace-home-session-card:hover,.workspace-home-session-card:focus-visible { border-color: #4f7d1f; background: #f4f9e9; outline: none; }.workspace-home-session-card div { display: grid; gap: 2px; }.workspace-home-session-card span { color: #5f6e64; font-size: .8rem; }.workspace-home-session-card > span:last-child { color: #3f6b16; font-size: 1.2rem; }.workspace-home-empty { padding: 1rem; background: #f4f7ed; }.workspace-home-empty h3 { margin: 0; }.workspace-home-empty p { color: #5f6e64; }
.workspace-home-starters { display: grid; gap: .55rem; }.workspace-home-starter-card { display: grid; grid-template-columns: 32px 1fr; column-gap: .65rem; align-items: center; padding: .65rem; border: 1px solid #d7e2d0; border-radius: 12px; color: #173524; text-decoration: none; }.workspace-home-starter-card:hover,.workspace-home-starter-card:focus-visible { border-color: #4f7d1f; background: #f4f9e9; outline: none; }.workspace-home-starter-mark { grid-row: span 3; display: grid; width: 32px; height: 32px; place-items: center; border-radius: 9px; background: #dcecc0; color: #3f6b16; }.workspace-home-starter-card > span:not(.workspace-home-starter-mark),.workspace-home-starter-card small { color: #5f6e64; font-size: .76rem; }.workspace-home-preview { display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-color: #9ab56e; background: #e8f1d6; }.workspace-home-preview h2 { margin: .18rem 0; }.workspace-home-preview p { margin: 0; color: #4d6254; }
.workspace-home-starter-thumb { grid-row: span 3; display: block; width: 32px; height: 42px; overflow: hidden; border-radius: 8px; background: #e4eddc; }.workspace-home-starter-thumb img { width: 100%; height: 100%; object-fit: contain; }

@media (max-width: 820px) {
  .workspace-mobile-header { padding: 10px 14px; background: #123d2a; }.workspace-mobile-header a { grid-template-columns: auto 1fr; align-items: center; gap: 8px; }.workspace-mobile-header a > span:last-child { display: grid; gap: 1px; }.workspace-mobile-header small { color: #c4dcad; font-size: .62rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }.workspace-mobile-drawer { padding: 14px; background: linear-gradient(160deg, #0c3021, #123d2a); }.workspace-mobile-drawer .workspace-nav { min-height: calc(100vh - 92px); }.workspace-mobile-drawer .workspace-preview-card { margin-top: auto; }
  .workspace-main > .content-page { padding: 1rem; }.workspace-main .session-area-tabs { width: calc(100vw - 2rem); border-radius: 13px; }.workspace-main .session-area-tab { padding: .55rem .75rem; }
  .workspace-home-hero { grid-template-columns: 1fr; padding: 1.25rem; }.workspace-home-quick,.workspace-home-sections { grid-template-columns: 1fr; }.workspace-home-preview { align-items: flex-start; flex-direction: column; }.workspace-home-preview .button { width: 100%; }
}

/* Restored Session Builder-style layered navigation rail */
.workspace-shell { grid-template-columns: 304px minmax(0, 1fr); background: #e7ece2; }.workspace-sidebar { padding: 12px; background: linear-gradient(180deg, var(--workspace-rail), #103527); }.workspace-nav { gap: 10px; }.workspace-brand { display: block; padding: 12px 10px 10px; color: #fffdf4; }.workspace-brand strong { color: #fffdf4; font-size: 1.08rem; }.workspace-brand small { display: block; margin-top: 2px; color: #b9dd8c; font-size: .67rem; font-weight: 850; letter-spacing: .11em; text-transform: uppercase; }.workspace-nav-panel { padding: 8px; border: 1px solid var(--workspace-rail-border); border-radius: 16px; background: linear-gradient(150deg, rgba(36,74,53,.98), rgba(24,60,44,.98)); box-shadow: inset 0 1px rgba(255,255,255,.04), 0 7px 15px rgba(0,0,0,.14); }.workspace-nav-panel-secondary { background: rgba(24,60,44,.7); }.workspace-nav-label { display: block; margin: 2px 4px 8px; color: #bed9a5; }.workspace-nav-link { min-height: 48px; border-radius: 12px; background: rgba(6,35,23,.24); color: #f8f7ed; box-shadow: inset 0 1px rgba(255,255,255,.03); }.workspace-nav-link:hover { background: rgba(73,112,59,.65); transform: none; }.workspace-nav-link.is-active { border-color: rgba(216,239,179,.3); background: linear-gradient(135deg, #557f2e, #3d6523); box-shadow: inset 0 1px rgba(255,255,255,.14), 0 5px 12px rgba(0,0,0,.2); }.workspace-nav-icon { color: #c9ea94; font-weight: 900; }.workspace-nav-secondary-link { background: transparent; color: #dce9d5; }.workspace-nav-secondary-link:hover,.workspace-nav-secondary-link.is-active { background: rgba(66,104,77,.5); }.workspace-nav-divider { height: 1px; margin: 0 5px; background: rgba(213,237,185,.19); }
.workspace-brand-logo { display: block; width: min(100%, 238px); height: 50px; object-fit: contain; object-position: left center; }.workspace-brand > span { display: block; }.workspace-mobile-header .workspace-brand-logo { width: 176px; height: 36px; }.workspace-mobile-header a { display: flex; align-items: center; gap: 8px; }
.workspace-current-session { display: grid; gap: 4px; padding: 12px; border: 1px solid #bcdb83; border-radius: 15px; background: linear-gradient(145deg, #edf9d4, #f7f8e7); color: #163725; text-decoration: none; box-shadow: 0 7px 16px rgba(0,0,0,.16); }.workspace-current-session:hover,.workspace-current-session:focus-visible { border-color: #6f9a38; background: #f4fbdc; outline: 3px solid #c7ff00; outline-offset: 2px; }.workspace-current-session-label { color: #456f26; font-size: .66rem; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }.workspace-current-session strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.workspace-current-session > span:not(.workspace-current-session-label) { color: #49634f; font-size: .78rem; }.workspace-current-session em { margin-top: 2px; color: #284d2e; font-size: .78rem; font-style: normal; font-weight: 850; }.workspace-current-session em.is-unsaved { color: #9a3e20; }.workspace-current-session-action { color: #244a35 !important; font-size: .78rem !important; font-weight: 900; }
.workspace-recent-sessions { display: grid; gap: 5px; padding: 8px; border: 1px solid var(--workspace-rail-border); border-radius: 15px; background: rgba(24,60,44,.72); }.workspace-recent-sessions .workspace-nav-label { margin-bottom: 3px; }.workspace-recent-session { display: grid; gap: 2px; padding: 7px 8px; border-radius: 9px; color: #f5f7ed; text-decoration: none; }.workspace-recent-session:hover,.workspace-recent-session:focus-visible { background: rgba(101,141,70,.35); outline: none; }.workspace-recent-session strong { overflow: hidden; font-size: .79rem; text-overflow: ellipsis; white-space: nowrap; }.workspace-recent-session span { color: #bbd1b8; font-size: .68rem; }
.workspace-preview-card { padding: 11px; border-color: rgba(200,237,132,.3); border-radius: 15px; background: linear-gradient(155deg, #183c2c, #102f22); color: #f7f7ed; }.workspace-preview-title { color: #cbef91; }.workspace-preview-row { display: flex; grid-template-columns: none; align-items: baseline; justify-content: space-between; gap: 10px; color: #d1e1ca; }.workspace-preview-row strong { color: #fffdf4; font-size: .73rem; text-align: right; }.workspace-preview-upgrade { border-color: #c7ff00; background: #c7ff00; color: #183221; }.workspace-preview-upgrade:hover,.workspace-preview-upgrade:focus-visible { background: #dcff54; color: #102b1d; }.workspace-membership-status { background: #183c2c; border-color: rgba(200,237,132,.26); color: #e3f6c6; }

@media (max-width: 980px) and (min-width: 821px) { .workspace-shell { grid-template-columns: 274px minmax(0,1fr); }.workspace-recent-sessions { display: none; } }
@media (max-width: 820px) { .workspace-mobile-header a { display: block; }.workspace-mobile-header .workspace-brand-mark { display: none; }.workspace-mobile-drawer { background: linear-gradient(180deg, var(--workspace-rail), #103527); }.workspace-mobile-drawer .workspace-nav { min-height: calc(100vh - 92px); }.workspace-mobile-drawer .workspace-recent-sessions { display: none; }.workspace-mobile-drawer .workspace-preview-card { margin-top: auto; } }

/* Continuous Coaching Workspace application surface */
.workspace-shell { background: var(--workspace-app-bottom); }.workspace-main { --workspace-surface: var(--workspace-card); --workspace-ink: var(--workspace-text); background: linear-gradient(160deg, var(--workspace-app-top) 0%, var(--workspace-app-bottom) 72%); color: var(--workspace-on-dark); }.workspace-main > .content-page { min-height: 100%; }.workspace-main > .content-page > .section-header h1,.workspace-main > .content-page > .section-header h2,.workspace-main > .content-page > .section-header .eyebrow { color: var(--workspace-on-dark); }.workspace-main > .content-page > .section-header p,.workspace-main > .content-page > .section-header .muted { color: var(--workspace-on-dark-muted); }.workspace-main .section-header .eyebrow { color: #cce69c; }
.workspace-main .card:not(.app-intro-card):not(.upgrade-card) { border-color: rgba(20,58,42,.14); background: var(--workspace-card); box-shadow: 0 12px 25px rgba(3,27,18,.2); }.workspace-main .app-intro-card { padding: 0; border: 0; background: transparent; box-shadow: none; }.workspace-main .app-intro-card > .section-row { padding: clamp(.3rem,1vw,.7rem) 0 0; }.workspace-main .app-intro-card .section-header h1,.workspace-main .app-intro-card .section-header h2 { color: var(--workspace-on-dark); }.workspace-main .app-intro-card .section-header p,.workspace-main .app-intro-card .section-header .muted { color: var(--workspace-on-dark-muted); }.workspace-main .app-intro-card .eyebrow { color: #cce69c; }.workspace-main .app-intro-card > .current-session-indicator,.workspace-main .app-intro-card > .session-content-area { margin-top: 1rem; }
.workspace-main .session-library-view .section-header,.workspace-main .session-library-view .section-header h1,.workspace-main .session-library-view .section-header .eyebrow,.workspace-main .session-library-view .section-header .muted { color: var(--workspace-on-dark); }.workspace-main .session-library-view .section-header .eyebrow { color: #cce69c; }
.workspace-main .create-card,.workspace-main .planning-card,.workspace-main .session-library-folder-card,.workspace-main .session-result-card,.workspace-main .drill-result-card { background: var(--workspace-card); }.workspace-main .planning-card { background-image: radial-gradient(circle at top right, rgba(123,157,67,.14), transparent 34%); }.workspace-main .current-session-indicator { border-color: rgba(211,238,145,.28); background: linear-gradient(135deg, #183c2c, #244a35); color: #f7f5ec; box-shadow: 0 9px 18px rgba(3,27,18,.22); }.workspace-main .current-session-indicator .button { border-color: rgba(227,245,190,.38); color: #f7f5ec; }.workspace-main .current-session-indicator .button:hover,.workspace-main .current-session-indicator .button:focus-visible { background: rgba(255,255,255,.12); color: #fff; }
.workspace-main .session-draft-tray { border-color: rgba(211,238,145,.28); background: linear-gradient(135deg, #183c2c, #244a35); color: #f7f5ec; }.workspace-main .session-draft-tray strong,.workspace-main .session-draft-tray span { color: inherit; }.workspace-main .session-draft-tray .button { background: #c7ff00; border-color: #c7ff00; color: #143a2a; }
.workspace-home-hero { border-color: rgba(214,240,178,.18); background: linear-gradient(135deg, #1d4a34, #143a2a); box-shadow: 0 16px 30px rgba(3,27,18,.25); }.workspace-home-quick-action { border-color: rgba(221,235,207,.16); background: linear-gradient(145deg, #183c2c, #244a35); color: #f7f5ec; box-shadow: 0 10px 18px rgba(3,27,18,.2); }.workspace-home-quick-action:hover,.workspace-home-quick-action:focus-visible { border-color: #a4ca67; background: #2b563d; }.workspace-home-quick-action > span { background: rgba(199,255,0,.14); color: #d7f28f; }.workspace-home-quick-action small { color: #cfddc9; }.workspace-home-section { border-color: rgba(20,58,42,.14); background: var(--workspace-card); box-shadow: 0 12px 25px rgba(3,27,18,.2); }.workspace-home-preview { background: var(--workspace-card-muted); }
.workspace-main .session-area-tabs { border-color: rgba(220,240,190,.18); background: #102f22; box-shadow: inset 0 1px rgba(255,255,255,.04), 0 7px 16px rgba(3,27,18,.2); }.workspace-main .session-area-tab { color: #e7f1dc; }.workspace-main .session-area-tab.is-active { background: #557f2e; border-color: rgba(232,247,205,.35); }.workspace-main .session-area-tab:hover,.workspace-main .session-area-tab:focus-visible { background: #244a35; }
.workspace-main .button-primary,.workspace-main .ai-btn-primary { background: #4f7d1f; border-color: #4f7d1f; color: #fff; }.workspace-main .button-primary:hover,.workspace-main .button-primary:focus-visible,.workspace-main .ai-btn-primary:hover,.workspace-main .ai-btn-primary:focus-visible { background: #3f6b16; border-color: #3f6b16; }.workspace-main .button-secondary,.workspace-main .ai-btn-secondary { border-color: #557b62; color: #1c462f; }.workspace-main .button-secondary:hover,.workspace-main .button-secondary:focus-visible,.workspace-main .ai-btn-secondary:hover,.workspace-main .ai-btn-secondary:focus-visible { background: #e6eddc; }

@media (max-width: 820px) { .workspace-main { background: linear-gradient(160deg, var(--workspace-app-top), var(--workspace-app-bottom)); }.workspace-main > .content-page { padding-bottom: 1.75rem; }.workspace-main .app-intro-card > .section-row { padding-top: 0; } }
@media (max-width: 820px) { .workspace-shell { display: block; }.workspace-sidebar { display: none; }.workspace-mobile-header { min-height: 64px; display:flex; align-items:center; justify-content:space-between; padding: 10px 16px; background:#123524; color:#fff; }.workspace-mobile-header a { color: inherit; text-decoration:none; display:grid; }.workspace-mobile-header span { font-size:.7rem; color:#d6e7b4; text-transform:uppercase; }.workspace-mobile-drawer { display:block; position:fixed; z-index:30; inset:64px 0 0; overflow:auto; padding:16px; background:#123524; }.workspace-mobile-drawer .workspace-nav { min-height:auto; }.workspace-main { padding-bottom: 20px; } }

.page-shell,
.app-main {
  width: min(100%, var(--max-width));
  margin: 0 auto;
  padding: 1rem;
}

.app-shell {
  padding-bottom: 5rem;
  background:
    radial-gradient(circle at top, rgba(212, 255, 63, 0.06), transparent 24%),
    linear-gradient(180deg, #0a281d 0%, var(--bg) 100%);
}

.app-header {
  position: sticky;
  top: 0;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.9rem 1rem;
  background: rgba(6, 24, 18, 0.92);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--border);
}

.app-brand-lockup {
  display: inline-flex;
  align-items: center;
  min-width: 0;
}

.app-logo {
  display: block;
  height: 2.7rem;
  width: auto;
  object-fit: contain;
}

.status-chip,
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.eyebrow {
  color: var(--accent);
}

.menu-toggle {
  width: 3rem;
  height: 3rem;
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.28rem;
  padding: 0;
  border: 1px solid rgba(212, 255, 63, 0.2);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.04);
  flex-shrink: 0;
}

.menu-toggle span {
  width: 1.05rem;
  height: 2px;
  margin: 0 auto;
  border-radius: 999px;
  background: var(--text-on-dark);
}

.app-menu-sheet {
  width: min(100%, var(--max-width));
  margin: 0 auto;
  padding: 0 1rem;
}

.app-menu-links {
  display: grid;
  gap: 0.55rem;
  padding: 0.8rem;
  margin-top: 0.45rem;
  border: 1px solid var(--border);
  border-radius: 1rem;
  background: rgba(12, 45, 34, 0.96);
  box-shadow: var(--shadow);
}

.app-menu-link {
  min-height: 3rem;
  display: flex;
  align-items: center;
  padding: 0.8rem 0.95rem;
  border-radius: 0.9rem;
  color: var(--text-on-dark);
  font-weight: 600;
}

.app-menu-link.is-active {
  background: rgba(212, 255, 63, 0.12);
  color: var(--accent);
}

.marketing-page,
.content-page,
.auth-page {
  display: grid;
  gap: 1rem;
  padding: 1rem 0 2rem;
}

.hero-card,
.card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow);
}

.hero-card {
  padding: 1.5rem;
  background:
    radial-gradient(circle at top right, rgba(212, 255, 63, 0.22), transparent 30%),
    linear-gradient(180deg, #134936 0%, var(--bg-strong) 100%);
  border-color: rgba(255, 255, 255, 0.08);
  box-shadow: var(--shadow-strong);
  color: var(--text-on-dark);
}

.hero-card h1,
.section-header h1,
.card h1,
.card h2 {
  margin: 0;
}

.hero-copy {
  margin: 0;
  font-size: clamp(2.4rem, 12vw, 4rem);
  line-height: 1;
  font-weight: 800;
  max-width: 12ch;
}

.hero-card .eyebrow,
.hero-card h1,
.hero-card .hero-copy {
  color: var(--text-on-dark);
}

.hero-card .muted {
  color: rgba(248, 255, 249, 0.8);
  max-width: 34rem;
}

.hero-actions,
.feature-grid,
.stack-sm,
.stack-md,
.stack-lg {
  display: grid;
  gap: 0.9rem;
}

.landing-page {
  gap: 1.5rem;
}

.landing-hero-card {
  padding: 1.75rem;
  background:
    radial-gradient(circle at top right, rgba(212, 255, 63, 0.2), transparent 28%),
    linear-gradient(180deg, #134936 0%, #0d2b20 100%);
}

.landing-hero-card h1 {
  font-size: clamp(2.4rem, 11vw, 4.5rem);
  line-height: 0.95;
  letter-spacing: -0.05em;
}

.landing-hero-copy {
  max-width: 18ch;
  font-size: 1.1rem;
  line-height: 1.55;
  font-weight: 600;
}

.landing-trust-line {
  margin: 0;
  color: var(--accent);
  font-size: 0.98rem;
  font-weight: 800;
  letter-spacing: 0.01em;
}

.landing-login-hint {
  margin: -0.15rem 0 0;
  color: rgba(234, 247, 239, 0.78);
  font-size: 0.92rem;
  font-weight: 600;
}

.landing-hero-actions .button {
  width: 100%;
}

.landing-hero-actions .button-secondary {
  color: #f8fff9;
  border-color: rgba(248, 255, 249, 0.36);
  background: rgba(255, 255, 255, 0.08);
}

.marketing-section {
  display: grid;
  gap: 1rem;
}

.section-copy {
  display: grid;
  gap: 0.45rem;
}

.section-copy h2 {
  margin: 0;
  font-size: clamp(1.8rem, 7vw, 3rem);
  line-height: 1;
  color: #102018;
}

.marketing-kicker {
  color: #c7f36b;
  letter-spacing: 0.1em;
}

.mock-kicker {
  color: #2f6b4f;
  letter-spacing: 0.1em;
}

.landing-page .section-copy h2 {
  color: #ffffff;
  line-height: 0.96;
  text-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
}

.landing-page .section-copy .muted {
  color: rgba(234, 247, 239, 0.85);
}

.app-visual-section {
  padding: 1.2rem;
  border-radius: var(--radius-md);
  background:
    radial-gradient(circle at top right, rgba(212, 255, 63, 0.1), transparent 30%),
    linear-gradient(180deg, #102f24 0%, #071d16 100%);
  box-shadow: var(--shadow);
}

.app-visual-copy h2 {
  color: #ffffff;
  line-height: 0.96;
  text-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
}

.app-visual-copy .muted {
  color: rgba(248, 255, 249, 0.82);
}

.product-visual-grid,
.pain-solution-grid,
.how-it-works-grid,
.pricing-grid {
  display: grid;
  gap: 1rem;
}

.phone-mockup {
  position: relative;
  padding: 0.65rem;
  border-radius: 2rem;
  background: linear-gradient(180deg, #18231d 0%, #090f0c 100%);
  box-shadow: 0 20px 40px rgba(3, 12, 9, 0.22);
}

.phone-notch {
  width: 6rem;
  height: 0.7rem;
  margin: 0 auto 0.7rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.18);
}

.phone-screen {
  min-height: 31rem;
  padding: 1rem;
  border-radius: 1.45rem;
  background: linear-gradient(180deg, #f8fbf8 0%, #eef6ef 100%);
  display: grid;
  gap: 0.9rem;
}

.mock-screen-header {
  display: grid;
  gap: 0.2rem;
}

.mock-screen-header strong {
  color: #102018;
  font-size: 1.05rem;
}

.mock-pitch {
  position: relative;
  min-height: 24rem;
  border-radius: 1.2rem;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.04) 0%, rgba(255,255,255,0.02) 100%),
    repeating-linear-gradient(
      180deg,
      #184634 0,
      #184634 4rem,
      #143b2c 4rem,
      #143b2c 8rem
    );
  overflow: hidden;
}

.mock-pitch::before {
  content: "";
  position: absolute;
  inset: 50% 0 auto;
  height: 3px;
  background: rgba(248, 255, 249, 0.15);
}

.mock-pitch::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 8rem;
  height: 8rem;
  border: 4px solid rgba(248, 255, 249, 0.14);
  border-radius: 999px;
  transform: translate(-50%, -50%);
}

.mock-jersey-slot {
  position: absolute;
  display: grid;
  justify-items: center;
  gap: 0.35rem;
  width: 5rem;
  color: #f8fff9;
  font-size: 0.78rem;
  font-weight: 700;
  text-align: center;
}

.landing-jersey-svg {
  width: 3.9rem;
  height: 3.95rem;
  filter: drop-shadow(0 10px 18px rgba(3, 12, 9, 0.16));
}

.slot-1 { top: 1.1rem; left: calc(50% - 2.25rem); }
.slot-2 { top: 6rem; left: 1.25rem; }
.slot-3 { top: 6rem; right: 1.25rem; }
.slot-4 { top: 11.3rem; left: 2.8rem; }
.slot-5 { top: 11.3rem; right: 2.8rem; }
.slot-6 { top: 11.8rem; left: calc(50% - 2.25rem); }
.slot-7 { bottom: 1.25rem; left: calc(50% - 2.25rem); }

.live-screen,
.stats-screen {
  align-content: start;
}

.live-score-mock {
  padding: 1rem;
  border-radius: 1.1rem;
  background: linear-gradient(180deg, #11392b 0%, #0c2a1f 100%);
  color: #f8fff9;
  display: grid;
  gap: 0.35rem;
  text-align: center;
}

.live-score-mock span {
  color: rgba(248, 255, 249, 0.78);
  font-weight: 700;
}

.live-score-mock strong {
  font-size: 2.3rem;
  line-height: 1;
}

.live-score-mock p {
  margin: 0;
  color: rgba(248, 255, 249, 0.82);
}

.live-events-list {
  display: grid;
  gap: 0.6rem;
}

.live-event-pill {
  padding: 0.8rem 0.95rem;
  border-radius: 1rem;
  background: #ffffff;
  border: 1px solid rgba(15, 61, 46, 0.1);
  color: #102018;
  font-weight: 700;
}

.live-event-pill.is-accent {
  background: rgba(212, 255, 63, 0.22);
}

.mock-stats-table {
  display: grid;
  gap: 0.5rem;
  padding: 0.85rem;
  border-radius: 1.1rem;
  background: #ffffff;
  border: 1px solid rgba(15, 61, 46, 0.1);
}

.mock-stats-head,
.mock-stats-row {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) 0.6fr 1fr;
  gap: 0.5rem;
  align-items: center;
}

.mock-stats-head {
  color: rgba(7, 24, 18, 0.72);
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.mock-stats-row {
  padding: 0.6rem 0;
  border-top: 1px solid rgba(15, 61, 46, 0.08);
  color: #102018;
  font-size: 0.88rem;
  font-weight: 700;
}

.mock-fairness-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 1.8rem;
  padding: 0.3rem 0.55rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 800;
}

.mock-fairness-pill.is-green { background: rgba(159, 231, 171, 0.58); }
.mock-fairness-pill.is-yellow { background: rgba(255, 229, 138, 0.78); }
.mock-fairness-pill.is-red { background: rgba(255, 173, 173, 0.82); }

.marketing-feature-card {
  background: #ffffff;
}

.step-card {
  display: grid;
  gap: 0.7rem;
}

.step-number,
.pricing-kicker {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  min-height: 2rem;
  padding: 0.35rem 0.7rem;
  border-radius: 999px;
  background: rgba(212, 255, 63, 0.18);
  color: #0f3d2e;
  font-size: 0.8rem;
  font-weight: 800;
}

.pricing-card {
  display: grid;
  gap: 0.9rem;
}

.pricing-card-free {
  border-color: rgba(212, 255, 63, 0.42);
  box-shadow:
    0 18px 42px rgba(3, 14, 10, 0.16),
    0 0 0 2px rgba(212, 255, 63, 0.14);
}

.pricing-card-premium {
  border-color: rgba(15, 61, 46, 0.18);
}

.pricing-price {
  margin: 0;
  color: #102018;
  font-size: 2.6rem;
  font-weight: 900;
  line-height: 1;
}

.pricing-note {
  margin: -0.35rem 0 0;
  color: #587061;
  font-weight: 600;
}

.pricing-list {
  margin: 0;
  padding-left: 1.1rem;
  display: grid;
  gap: 0.45rem;
  color: #102018;
  font-weight: 600;
}

.stack-lg {
  gap: 1.25rem;
}

.section-header {
  display: grid;
  gap: 0.55rem;
}

.section-header h1 {
  font-size: clamp(2rem, 7vw, 3rem);
  line-height: 1;
  font-weight: 800;
  letter-spacing: -0.03em;
}

.muted {
  margin: 0;
  color: #587061;
  line-height: 1.55;
}

.card {
  padding: 1.35rem;
  background: #fbfdfb;
  color: var(--text-strong);
  border-color: rgba(15, 61, 46, 0.1);
  box-shadow:
    0 18px 42px rgba(3, 14, 10, 0.16),
    0 2px 0 rgba(255, 255, 255, 0.85) inset;
}

.card h2 {
  font-size: 1.2rem;
  line-height: 1.15;
  margin-bottom: 0.3rem;
  color: #11251b;
}

.card h3 {
  margin: 0;
  font-size: 1rem;
}

.auth-card {
  max-width: 32rem;
  margin: 0 auto;
}

.auth-switch {
  margin: 0;
  color: var(--text-muted);
}

.auth-switch a {
  color: var(--brand);
  font-weight: 600;
}

.auth-inline-link {
  margin-top: -0.2rem;
  text-align: right;
}

.auth-inline-link a {
  color: var(--brand);
  font-size: 0.95rem;
  font-weight: 600;
}

.field {
  display: grid;
  gap: 0.45rem;
  min-width: 0;
}

.field-label {
  font-size: 0.95rem;
  font-weight: 600;
}

.team-color-field-header,
.team-list-heading,
.team-summary-meta,
.team-list-title,
.team-color-custom-input {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.team-color-field-header {
  justify-content: space-between;
}

.team-color-preview,
.team-color-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
}

.team-color-preview {
  width: 2.25rem;
  height: 2.25rem;
  border: 2px solid rgba(255, 255, 255, 0.85);
  box-shadow: 0 0 0 1px rgba(15, 61, 46, 0.18);
}

.team-color-swatch-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.65rem;
}

.team-color-swatch {
  min-height: 3rem;
  border: 2px solid rgba(255, 255, 255, 0.7);
  border-radius: 1rem;
  box-shadow: inset 0 0 0 1px rgba(15, 61, 46, 0.16);
  cursor: pointer;
}

.team-color-swatch.is-selected {
  box-shadow:
    inset 0 0 0 2px rgba(248, 255, 249, 0.92),
    0 0 0 3px rgba(15, 61, 46, 0.18);
}

.team-color-custom {
  display: grid;
  gap: 0.45rem;
}

.team-color-picker {
  width: 3.75rem;
  height: 3rem;
  padding: 0.2rem;
  border: 1px solid rgba(15, 61, 46, 0.18);
  border-radius: 0.9rem;
  background: #ffffff;
  cursor: pointer;
}

.team-color-chip {
  gap: 0.5rem;
  border: 1px solid rgba(15, 61, 46, 0.12);
}

.team-color-chip-dot {
  width: 0.75rem;
  height: 0.75rem;
  border-radius: 999px;
  box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.9);
}

.team-list-title {
  min-width: 0;
}

.team-list-title h2,
.team-list-title h3 {
  margin: 0;
}

.team-card,
.team-summary-card,
.team-setup-card {
  position: relative;
  overflow: hidden;
}

.team-card::before,
.team-summary-card::before,
.team-setup-card::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 0.35rem;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.2) 0%, rgba(15, 61, 46, 0.08) 100%);
}

.team-list-heading {
  justify-content: space-between;
}

.team-summary-meta {
  justify-content: flex-end;
}

.team-summary-pills,
.team-summary-actions {
  justify-content: flex-start;
}

.team-jersey-icon {
  width: 2.2rem;
  height: 2.2rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  flex-shrink: 0;
}

.team-jersey-icon svg {
  width: 1.35rem;
  height: 1.35rem;
  display: block;
}

.calculator-format-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
}

.calculator-format-card {
  display: grid;
  gap: 0.3rem;
  min-height: 7rem;
  padding: 0.95rem;
  text-align: left;
  border: 1px solid rgba(15, 61, 46, 0.14);
  border-radius: var(--radius-sm);
  background: linear-gradient(180deg, #ffffff 0%, #f7fbf7 100%);
  color: var(--text-strong);
  cursor: pointer;
  transition: border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.calculator-format-card.is-selected-choice {
  border-color: rgba(15, 61, 46, 0.32);
  box-shadow: 0 0 0 3px rgba(15, 61, 46, 0.12);
  background: linear-gradient(180deg, #fbfff0 0%, #ffffff 100%);
}

.calculator-format-title,
.calculator-format-meta {
  font-weight: 700;
}

.calculator-format-title {
  font-size: 1rem;
}

.calculator-format-meta {
  color: var(--brand);
  font-size: 0.9rem;
}

.calculator-format-note {
  color: var(--text-muted);
  font-size: 0.88rem;
  line-height: 1.45;
}

.input {
  width: 100%;
  max-width: 100%;
  min-height: 3.5rem;
  padding: 0.95rem 1rem;
  border: 1px solid rgba(15, 61, 46, 0.18);
  border-radius: var(--radius-sm);
  background: var(--surface-strong);
  color: var(--text-strong);
  box-sizing: border-box;
}

.input:focus {
  outline: 2px solid rgba(18, 53, 36, 0.16);
  border-color: var(--brand);
}

.textarea {
  min-height: 6.75rem;
  resize: vertical;
}

.player-form-grid {
  display: grid;
  gap: 0.8rem;
}

.player-form-grid > .field,
.section-row > .stack-sm,
.section-row > .button-row {
  min-width: 0;
}

input[type="date"].input,
input[type="time"].input {
  appearance: none;
  -webkit-appearance: none;
}

.stats-input-grid,
.stats-grid {
  display: grid;
  gap: 0.8rem;
}

.stats-card {
  display: grid;
  gap: 0.35rem;
  padding: 1rem;
  border: 1px solid rgba(15, 61, 46, 0.12);
  border-radius: var(--radius-sm);
  background: linear-gradient(180deg, #ffffff 0%, #f7fbf7 100%);
}

.stats-card strong {
  font-size: 1.4rem;
  color: var(--brand);
}

.stats-inline {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.stats-table-wrap {
  position: relative;
  isolation: isolate;
  overflow-x: auto;
  overflow-y: hidden;
  border: 1px solid rgba(15, 61, 46, 0.14);
  border-radius: var(--radius-sm);
  background: #ffffff;
  box-shadow: 0 10px 24px rgba(8, 24, 18, 0.05);
}

.stats-completed-matches {
  max-height: 26rem;
  overflow-y: auto;
  padding-right: 0.2rem;
}

.matches-completed-matches {
  max-height: 17.75rem;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

.stats-table {
  width: 100%;
  min-width: 42rem;
  border-collapse: collapse;
  background: #ffffff;
}

.stats-table th,
.stats-table td {
  padding: 0.9rem 0.85rem;
  border-bottom: 1px solid rgba(15, 61, 46, 0.1);
  font-size: 0.95rem;
}

.stats-table thead th {
  color: rgba(7, 24, 18, 0.9);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-align: center;
  background: rgba(224, 240, 228, 0.9);
  border-bottom: 1px solid rgba(15, 61, 46, 0.16);
  white-space: nowrap;
}

.stats-table thead th:first-child,
.stats-table tbody th {
  text-align: left;
}

.stats-table thead th:first-child {
  position: sticky;
  left: 0;
  z-index: 3;
  width: 8.75rem;
  min-width: 8.75rem;
  max-width: 8.75rem;
  background: rgba(224, 240, 228, 0.98);
  box-shadow: 1px 0 0 rgba(15, 61, 46, 0.12), 10px 0 18px rgba(8, 24, 18, 0.04);
}

.stats-sort-button {
  width: 100%;
  min-height: 2.35rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
}

.stats-sort-indicator {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 0.9rem;
  color: rgba(7, 24, 18, 0.6);
  font-size: 0.82rem;
  line-height: 1;
}

.stats-table tbody th,
.stats-table tbody td {
  color: #102018;
  font-variant-numeric: tabular-nums;
}

.stats-table tbody th {
  width: 8.75rem;
  min-width: 8.75rem;
  max-width: 8.75rem;
  font-weight: 800;
  position: sticky;
  left: 0;
  z-index: 2;
  background: #ffffff;
  box-shadow: 1px 0 0 rgba(15, 61, 46, 0.08), 10px 0 18px rgba(8, 24, 18, 0.04);
  overflow: hidden;
}

.stats-table tbody tr:nth-child(even) th,
.stats-table tbody tr:nth-child(even) td {
  background: rgba(248, 250, 248, 0.92);
}

.stats-table tbody tr:nth-child(even) th {
  background: rgba(248, 250, 248, 0.98);
}

.stats-table-player {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.stats-table tbody td {
  text-align: center;
  white-space: nowrap;
  font-weight: 650;
}

.stats-table tbody tr:last-child th,
.stats-table tbody tr:last-child td {
  border-bottom: none;
}

.stats-table-value {
  font-weight: 700;
  color: #102018;
}

.stats-table-value.is-standout {
  color: #102018;
  background: rgba(212, 255, 63, 0.46);
  box-shadow: inset 0 0 0 1px rgba(15, 61, 46, 0.08);
}

.stats-fairness-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2rem;
  padding: 0.4rem 0.7rem;
  border-radius: 999px;
  font-size: 0.84rem;
  font-weight: 800;
  line-height: 1.1;
  color: #102018;
  white-space: nowrap;
}

.stats-fairness-pill.is-on-track {
  background: rgba(159, 231, 171, 0.58);
}

.stats-fairness-pill.is-watch {
  background: rgba(255, 229, 138, 0.78);
}

.stats-fairness-pill.is-underplayed {
  background: rgba(255, 173, 173, 0.82);
}

.toggle-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 3.5rem;
  padding: 0.85rem 1rem;
  border: 1px solid rgba(15, 61, 46, 0.12);
  border-radius: var(--radius-sm);
  background: rgba(244, 250, 243, 0.9);
}

.toggle-row span {
  display: grid;
  gap: 0.25rem;
}

.toggle-row input {
  width: 1.25rem;
  height: 1.25rem;
  accent-color: var(--brand);
  flex-shrink: 0;
}

.button {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-height: 3.4rem;
  padding: 1rem 1.25rem;
  border: 1px solid transparent;
  border-radius: 999px;
  cursor: pointer;
  font-weight: 700;
  letter-spacing: 0.01em;
  transition: opacity 0.18s ease, background 0.18s ease, border-color 0.18s ease;
}

.button:disabled {
  cursor: not-allowed;
  opacity: 0.6;
}

.button-primary {
  background: var(--accent);
  color: #0f1d15;
  box-shadow: inset 0 -2px 0 rgba(0, 0, 0, 0.18);
}

.button-secondary {
  background: rgba(7, 31, 23, 0.04);
  color: #102018;
  border-color: rgba(15, 61, 46, 0.18);
}

.button-ghost {
  background: transparent;
  color: var(--brand-strong);
  border-color: rgba(15, 61, 46, 0.12);
}

.button-danger {
  background: #b43f32;
  color: #fffaf8;
  border-color: #9f3327;
  box-shadow: inset 0 -2px 0 rgba(0, 0, 0, 0.14);
}

.ai-btn-primary {
  background: var(--accent);
  color: #102018;
  border-color: rgba(15, 61, 46, 0.2);
  box-shadow: inset 0 -2px 0 rgba(0, 0, 0, 0.14);
}

.ai-btn-secondary {
  background: #123524;
  color: #f8fff9;
  border-color: #123524;
}

.ai-btn-tertiary {
  background: #ffffff;
  color: #123524;
  border-color: rgba(15, 61, 46, 0.22);
}

.ai-btn-disabled,
.ai-btn-disabled:disabled {
  background: #dfe3df;
  color: #43584d;
  border-color: #c4cdc7;
  opacity: 1;
}

.ai-heading-light-card,
.ai-heading-light-card h1,
.ai-heading-light-card h2,
.ai-heading-light-card .eyebrow,
.ai-heading-light-card .muted {
  color: #123524;
  opacity: 1;
  text-shadow: none;
  filter: none;
  mix-blend-mode: normal;
}

.ai-heading-dark-bg,
.ai-heading-dark-bg h1,
.ai-heading-dark-bg h2,
.ai-heading-dark-bg .eyebrow,
.ai-heading-dark-bg .muted {
  color: #f8fff9;
  opacity: 1;
  text-shadow: none;
  filter: none;
  mix-blend-mode: normal;
}

.button-full {
  width: 100%;
}

.button-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
}

.form-error {
  margin: 0;
  color: var(--danger);
  font-size: 0.95rem;
}

.form-success {
  margin: 0;
  color: #1f6a45;
  font-size: 0.98rem;
  font-weight: 600;
}

.card-link {
  display: block;
}

.dashboard-card,
.empty-state {
  min-height: 11rem;
}

.dashboard-card {
  display: grid;
  align-content: space-between;
  background: linear-gradient(180deg, #ffffff 0%, #fbfdfb 100%);
}

.notice-card {
  border-color: rgba(15, 61, 46, 0.18);
}

.notice-success {
  background: linear-gradient(180deg, #f5fff2 0%, #ffffff 100%);
}

.notice-warning {
  background: linear-gradient(180deg, #fffbea 0%, #ffffff 100%);
}

.session-content-area .notice-card,
.session-content-area .session-empty-state {
  border-color: rgba(15, 61, 46, 0.2);
  background: linear-gradient(180deg, #f7fbf5 0%, #ffffff 100%);
  color: #17392d;
}

.session-content-area .notice-card .eyebrow,
.session-content-area .session-empty-state .eyebrow {
  color: #315b48;
}

.session-content-area .notice-card h2,
.session-content-area .session-empty-state h2,
.session-content-area .notice-card p,
.session-content-area .session-empty-state p {
  color: #17392d;
}

.starter-session-welcome {
  border-color: rgba(100, 139, 20, 0.28);
  background: linear-gradient(180deg, #f7ffe8 0%, #ffffff 100%);
  color: #17392d;
}

.starter-session-welcome p {
  margin: 0;
  color: #355246;
}

.upgrade-card {
  border-color: rgba(212, 255, 63, 0.4);
  background: linear-gradient(180deg, #142f24 0%, #0f281f 100%);
  color: var(--text-on-dark);
}

.upgrade-card .muted,
.upgrade-card h2 {
  color: rgba(248, 255, 249, 0.84);
}

.danger-card {
  border-color: rgba(170, 74, 60, 0.18);
}

.section-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}

.app-intro-card {
  background:
    radial-gradient(circle at top right, rgba(212, 255, 63, 0.14), transparent 34%),
    linear-gradient(180deg, #14392c 0%, #0a1f18 100%);
  color: var(--text-on-dark);
  border-color: rgba(255, 255, 255, 0.1);
  box-shadow:
    0 24px 48px rgba(1, 10, 7, 0.28),
    inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.app-intro-card .muted,
.app-intro-card h2 {
  color: rgba(248, 255, 249, 0.94);
}

.app-intro-card .button-ghost,
.app-intro-card .button-secondary {
  color: var(--text-on-dark);
  border-color: rgba(255, 255, 255, 0.22);
  background: rgba(255, 255, 255, 0.08);
}

.create-card {
  border-color: rgba(15, 61, 46, 0.16);
  background: linear-gradient(180deg, #ffffff 0%, #f7fbf6 100%);
}

.season-switcher-card {
  border-color: rgba(15, 61, 46, 0.16);
}

.season-switcher-grid {
  display: grid;
  gap: 0.8rem;
}

.season-switcher-summary {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 0.5rem;
}

.format-selector .button,
.planning-chips .pill-count,
.squad-actions .button {
  flex: 1 1 8rem;
}

.format-selector .button.is-selected-choice,
.goalkeeper-mode-row .button.is-selected-choice,
.app-intro-card .button.is-selected-choice {
  box-shadow: 0 0 0 3px rgba(15, 61, 46, 0.16);
}

.planning-card {
  background:
    radial-gradient(circle at top right, rgba(212, 255, 63, 0.16), transparent 34%),
    linear-gradient(180deg, #f7fff0 0%, #ffffff 100%);
  border-color: rgba(15, 61, 46, 0.14);
}

.planning-card h2,
.planning-card strong,
.planning-card .dashboard-panel-label {
  color: #123524;
}

.planning-card,
.planning-card li,
.setup-summary-card,
.setup-summary-card li,
.session-practice-card,
.session-practice-card li {
  color: #17392d;
}

.planning-card .muted,
.setup-summary-card .muted,
.session-empty-state .muted {
  color: #1f3b30;
}

.planning-card .eyebrow {
  color: #1f5a43;
}

.setup-summary-card {
  border-color: rgba(15, 61, 46, 0.14);
  background: linear-gradient(180deg, #ffffff 0%, #f7fbf7 100%);
}

.session-builder-grid,
.session-plan-grid {
  display: grid;
  gap: 0.9rem;
}

.session-workspace-page {
  min-height: 100%;
  padding-bottom: calc(6rem + env(safe-area-inset-bottom));
}

.session-workspace {
  display: grid;
  gap: 1rem;
}

.session-sidebar,
.session-main-column,
.session-content-area,
.session-main-shell {
  min-width: 0;
}

.session-sidebar-card {
  background:
    radial-gradient(circle at top right, rgba(212, 255, 63, 0.08), transparent 30%),
    linear-gradient(180deg, #14372b 0%, #10281f 100%);
  border-color: rgba(255, 255, 255, 0.08);
  color: var(--text-on-dark);
}

.session-sidebar-actions {
  gap: 0.6rem;
}

.session-search-input {
  min-height: 3.15rem;
  background: rgba(255, 255, 255, 0.96);
  color: #123524;
}

.session-sidebar-empty-state {
  border-color: rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.05);
  color: var(--text-on-dark);
}

.session-sidebar-empty-state h3,
.session-sidebar-empty-state .muted {
  color: rgba(248, 255, 249, 0.9);
}

.session-history-item {
  width: 100%;
  display: grid;
  gap: 0.2rem;
  padding: 0.95rem 1rem;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--radius-sm);
  background: rgba(255, 255, 255, 0.04);
  color: var(--text-on-dark);
  text-align: left;
  cursor: pointer;
  font: inherit;
  transition: background 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
}

.session-history-item strong {
  font-size: 0.98rem;
}

.session-history-item span {
  color: rgba(248, 255, 249, 0.72);
  font-size: 0.88rem;
}

.session-history-item.is-selected {
  background: rgba(212, 255, 63, 0.12);
  border-color: rgba(212, 255, 63, 0.34);
  transform: translateY(-1px);
}

.session-sidebar-section-label {
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(248, 255, 249, 0.72);
}

.session-folder-item {
  width: 100%;
  display: grid;
  gap: 0.25rem;
  padding: 0.9rem 1rem;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--radius-sm);
  background: rgba(255, 255, 255, 0.03);
  color: var(--text-on-dark);
  text-align: left;
  cursor: pointer;
  font: inherit;
}

.session-folder-item strong {
  font-size: 0.96rem;
}

.session-folder-item span {
  color: rgba(248, 255, 249, 0.72);
  font-size: 0.86rem;
  line-height: 1.4;
}

.session-folder-item.is-selected {
  background: rgba(212, 255, 63, 0.1);
  border-color: rgba(212, 255, 63, 0.3);
}

.session-library-folder-grid {
  display: grid;
  gap: 0.85rem;
}

.session-library-header-row {
  align-items: flex-start;
}

.session-folder-create-form {
  display: grid;
  gap: 0.9rem;
}

.session-library-folder-card {
  display: grid;
  gap: 0.3rem;
  padding: 1rem;
  border: 1px solid rgba(15, 61, 46, 0.14);
  border-radius: var(--radius-sm);
  background: linear-gradient(180deg, #ffffff 0%, #f7fbf7 100%);
  color: #17392d;
  text-align: left;
  cursor: pointer;
  font: inherit;
}

.session-library-folder-card strong {
  font-size: 0.98rem;
}

.session-library-folder-card span {
  color: #355246;
  font-size: 0.9rem;
  line-height: 1.45;
}

.session-library-folder-card.is-selected {
  border-color: rgba(15, 61, 46, 0.28);
  box-shadow: 0 0 0 3px rgba(15, 61, 46, 0.08);
  background: linear-gradient(180deg, #fbfff0 0%, #ffffff 100%);
}

.session-area-tabs {
  gap: 0.65rem;
}

.session-area-tab,
.session-favourite-button {
  padding: 0.72rem 1rem;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 999px;
  background: rgba(9, 33, 24, 0.88);
  color: #f8fff9;
  cursor: pointer;
  font: inherit;
  font-weight: 700;
}

.session-area-tab.is-active,
.session-filter-chip.is-active {
  background: rgba(212, 255, 63, 0.18);
  border-color: rgba(212, 255, 63, 0.34);
  color: #102018;
}

.session-content-area {
  display: grid;
  gap: 1rem;
  min-height: 16rem;
}

.session-empty-state {
  min-height: 14rem;
  align-content: center;
}

/* The new-session introduction is informational rather than an empty-state action panel. */
.session-empty-state h2,
.session-empty-state .muted {
  max-width: 42rem;
}

.session-composer-shell {
  margin-top: auto;
  padding-bottom: 2rem;
}

.session-builder-flow {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.session-builder-flow > .session-composer-shell {
  order: -1;
  margin-top: 0;
  padding-bottom: 0;
}

.session-builder-flow > .session-content-area.is-empty {
  display: none;
}

.session-request-card {
  border-color: rgba(15, 61, 46, 0.18);
}

.session-builder-manual-divider {
  display: flex;
  align-items: center;
  gap: .75rem;
  color: var(--workspace-on-dark-muted);
  font-size: .7rem;
  font-weight: 850;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.session-builder-manual-divider::before,
.session-builder-manual-divider::after {
  height: 1px;
  flex: 1;
  background: rgba(220, 240, 190, .3);
  content: "";
}

.session-composer-card {
  border-color: rgba(255, 255, 255, 0.12);
  background: rgba(248, 255, 249, 0.98);
  box-shadow:
    0 18px 36px rgba(6, 22, 16, 0.16),
    inset 0 1px 0 rgba(255, 255, 255, 0.45);
}

.session-composer-controls {
  display: grid;
  gap: 0.9rem;
}

.session-request-input {
  min-height: 8.5rem;
  font-size: 1rem;
  line-height: 1.55;
}

.session-prompt-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.session-prompt-chip {
  padding: 0.8rem 1rem;
  border: 1px solid rgba(15, 61, 46, 0.14);
  border-radius: 1rem;
  background: linear-gradient(180deg, #ffffff 0%, #f8fcf7 100%);
  color: #17392d;
  text-align: left;
  cursor: pointer;
  font: inherit;
  transition: border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.session-prompt-chip:hover,
.session-prompt-chip:focus-visible {
  border-color: rgba(15, 61, 46, 0.28);
  box-shadow: 0 0 0 3px rgba(15, 61, 46, 0.08);
  background: linear-gradient(180deg, #fbfff0 0%, #ffffff 100%);
}

.session-composer-footer {
  align-items: center;
}

.session-generation-lock-title { color: var(--text-on-light, #153d32); font-size: .86rem; }
/* The active message is rendered in the composer card, not the old request-card shell. */
.workspace-main .session-composer-card p.session-generation-progress {
  margin: 0;
  color: var(--text-on-light, #153d32) !important;
  opacity: 1;
  font-weight: 850;
  text-shadow: none;
}
/* The transparent app-intro wrapper sets all paragraphs light; generation errors live on this cream card. */
.workspace-main .app-intro-card .session-composer-card p.session-generation-error {
  margin: 0;
  color: var(--text-on-light, #153d32) !important;
  opacity: 1;
  font-size: .86rem;
  font-weight: 700;
  text-shadow: none;
}

@media (max-width: 620px) {
  .session-composer-footer { align-items: stretch; }
  .session-composer-footer > .button { width: 100%; }
}

.session-result-actions,
.session-practice-actions,
.session-library-actions {
  justify-content: flex-start;
}

.session-result-actions .button,
.session-library-actions .button,
.session-practice-actions .button,
.session-sidebar-actions .button {
  font-weight: 700;
}

.session-advanced-card {
  border-color: rgba(15, 61, 46, 0.14);
  background: linear-gradient(180deg, #fbfdf9 0%, #ffffff 100%);
}

.session-advanced-toggle {
  width: 100%;
  display: grid;
  gap: 0.2rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--text-strong);
  text-align: left;
  cursor: pointer;
  font: inherit;
}

.session-advanced-toggle span:first-child {
  font-size: 1rem;
  font-weight: 700;
}

.session-equipment-grid {
  display: grid;
  gap: 0.75rem;
}

.session-equipment-chip {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  min-height: 3.4rem;
  padding: 0.85rem 1rem;
  border: 1px solid rgba(15, 61, 46, 0.14);
  border-radius: var(--radius-sm);
  background: linear-gradient(180deg, #ffffff 0%, #f7fbf7 100%);
  cursor: pointer;
  transition: border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.session-equipment-chip input {
  margin: 0;
}

.session-equipment-chip.is-selected {
  border-color: rgba(15, 61, 46, 0.28);
  box-shadow: 0 0 0 3px rgba(15, 61, 46, 0.1);
  background: linear-gradient(180deg, #fbfff0 0%, #ffffff 100%);
}

.session-coaching-points {
  margin: 0;
  padding-left: 1.2rem;
  color: #17392d;
}

.session-coaching-points li::marker {
  color: #123524;
}

.session-coaching-points li + li {
  margin-top: 0.55rem;
}

.session-status-pill {
  background: rgba(212, 255, 63, 0.18);
  border-color: rgba(15, 61, 46, 0.16);
  color: var(--brand);
  font-weight: 700;
}

.session-practice-card h2 {
  font-size: 1.35rem;
}

.session-practice-layout {
  display: grid;
  gap: 0.9rem;
}

.session-practice-diagram {
  min-height: 10rem;
  display: grid;
  place-items: center;
  padding: 1rem;
  border: 1px dashed rgba(15, 61, 46, 0.2);
  border-radius: var(--radius-sm);
  background:
    radial-gradient(circle at center, rgba(212, 255, 63, 0.1), transparent 52%),
    linear-gradient(180deg, #f6fff1 0%, #ffffff 100%);
  color: #355246;
  text-align: center;
}

.drill-result-media {
  overflow: hidden;
  border-radius: var(--radius-sm);
  border: 1px solid rgba(15, 61, 46, 0.12);
  background: #f7fbf5;
}

.drill-result-image {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 10rem;
  object-fit: contain;
}

.drill-image-placeholder {
  display: grid;
  width: 100%;
  height: 100%;
  min-height: 8rem;
  place-content: center;
  gap: 0.35rem;
  padding: 1rem;
  background: #eef5eb;
  color: #28503e;
  text-align: center;
}

.drill-image-placeholder span { font-size: 1.7rem; }
.drill-image-placeholder strong { font-size: 0.85rem; }

.drill-result-link {
  color: #0f5a3c;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 0.14em;
}

.drill-results-grid {
  display: grid;
  gap: 1rem;
}

.drill-result-card {
  height: 100%;
}

.drill-card-media {
  overflow: hidden;
  border-radius: var(--radius-sm);
  border: 1px solid rgba(15, 61, 46, 0.12);
  background: #f7fbf5;
}

.drill-card-media .drill-result-image {
  height: 10rem;
  min-height: 0;
}

.drill-card-meta,
.drill-detail-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.drill-card-meta span {
  padding: 0.35rem 0.55rem;
  border-radius: 999px;
  background: #eef6ed;
  color: #17392d;
  font-size: 0.8rem;
  font-weight: 700;
}

.drill-card-summary {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.drill-modal-backdrop {
  position: fixed;
  z-index: 1000;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 1rem;
  background: rgba(7, 28, 20, 0.62);
}

.drill-modal {
  width: min(100%, 52rem);
  max-height: calc(100vh - 2rem);
  overflow-y: auto;
  padding: clamp(1rem, 3vw, 2rem);
  border-radius: var(--radius-md);
  background: #fff;
  box-shadow: 0 1.5rem 4rem rgba(0, 0, 0, 0.25);
}

.drill-detail-meta p {
  flex: 1 1 14rem;
  margin: 0;
  padding: 0.6rem;
  border-radius: var(--radius-sm);
  background: #f5f9f3;
}

.drill-detail-content p {
  margin: 0;
  white-space: pre-line;
}

.workspace-main .card:not(.app-intro-card):not(.upgrade-card),
.workspace-main .drill-modal,
.workspace-main .session-overflow-popover {
  color: var(--workspace-text-on-light);
}

.workspace-main .card:not(.app-intro-card):not(.upgrade-card) .muted,
.workspace-main .drill-modal .muted {
  color: var(--workspace-muted-on-light);
}

.drill-detail-tabs { display: flex; gap: .45rem; overflow-x: auto; padding-bottom: .25rem; }
.drill-detail-tabs button { flex: 0 0 auto; }
.drill-video-frame { width: 100%; overflow: hidden; border-radius: var(--radius-sm); background: #102f22; aspect-ratio: 16 / 9; }
.drill-video-frame video,.drill-video-frame iframe { width: 100%; height: 100%; border: 0; display: block; }
.drill-video-fallback { display: grid; gap: .55rem; padding: 1rem; border: 1px solid var(--workspace-border-light); border-radius: var(--radius-sm); background: var(--workspace-surface-light); color: var(--workspace-text-on-light); }

.session-library-toast {
  position: sticky;
  top: 1rem;
  z-index: 5;
  padding: 0.75rem 1rem;
  border-radius: var(--radius-sm);
  background: #143f2e;
  color: #fff;
  box-shadow: 0 0.5rem 1rem rgba(7, 28, 20, 0.18);
}

.session-overflow-menu {
  position: relative;
}

.session-overflow-popover {
  position: absolute;
  z-index: 10;
  right: 0;
  top: calc(100% + 0.25rem);
  min-width: 9rem;
  padding: 0.35rem;
  border: 1px solid rgba(15, 61, 46, 0.14);
  border-radius: var(--radius-sm);
  background: #fff;
  box-shadow: 0 0.6rem 1.2rem rgba(7, 28, 20, 0.16);
}

.session-overflow-popover button {
  width: 100%;
  padding: 0.55rem;
  border: 0;
  border-radius: 0.35rem;
  background: transparent;
  color: #17392d;
  font: inherit;
  font-weight: 700;
  text-align: left;
  cursor: pointer;
}

.session-overflow-popover button:hover {
  background: #edf5ec;
}

.session-overflow-popover button.is-danger { color: #812c23; }
.session-overflow-popover button.is-danger:hover { background: #fff0f0; }
.session-overflow-popover button:disabled { cursor: wait; opacity: .6; }
.session-overflow-mobile-action { display: none; }

.session-library-modal .session-folder-create-form {
  margin-top: 1rem;
}

.session-draft-tray {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.8rem 1rem;
  border: 1px solid #b6d2ba;
  border-radius: var(--radius-sm);
  background: #f3faee;
  color: #10281f;
}

.session-draft-tray div { display: grid; gap: 0.2rem; }
.session-draft-tray span { color: #345247; font-size: 0.9rem; }
.section-picker-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.6rem; margin: 1rem 0; }
.section-picker-options button { min-height: 3rem; padding: 0.7rem; border: 1px solid #b8c7ba; border-radius: 0.55rem; background: #fff; color: #10281f; font: inherit; font-weight: 700; text-align: left; cursor: pointer; }
.section-picker-options button:hover, .section-picker-options button.is-selected { border-color: #94ca27; background: #eaffc8; }

@media (max-width: 560px) {
  .session-draft-tray { align-items: stretch; flex-direction: column; }
  .session-draft-tray .button { width: 100%; }
  .section-picker-options { grid-template-columns: 1fr; }
}

.current-session-indicator { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; padding: 0.65rem 0.8rem; border: 1px solid #b8d1bc; border-radius: var(--radius-sm); background: #f2faed; color: #10281f; font-weight: 750; }
.current-session-sidebar-card { display: grid; gap: 0.38rem; width: 100%; padding: 0.9rem; border: 1px solid #9edb2d; border-radius: var(--radius-sm); background: linear-gradient(145deg, #ecffc9, #f8fff0); color: #10281f; box-shadow: 0 0.4rem 1rem rgba(101, 150, 28, 0.13); font: inherit; text-align: left; cursor: pointer; }
.current-session-sidebar-card:hover { border-color: #5c8f12; background: #e7ffc0; }
.current-session-sidebar-card:focus-visible { outline: 3px solid #b6ff2e; outline-offset: 3px; }
.current-session-sidebar-label { color: #245b3f; font-size: 0.7rem; font-weight: 850; letter-spacing: 0.09em; text-transform: uppercase; }
.current-session-sidebar-card strong { overflow: hidden; color: #10281f; font-size: 1rem; text-overflow: ellipsis; white-space: nowrap; }
.current-session-sidebar-card > span:not(.current-session-sidebar-label):not(.current-session-sidebar-action) { color: #385447; font-size: 0.83rem; }
.current-session-sidebar-card em { color: #315645; font-size: 0.8rem; font-style: normal; font-weight: 750; }
.current-session-sidebar-card em.is-unsaved { color: #a64620; }
.current-session-sidebar-action { margin-top: 0.2rem; color: #10281f; font-size: 0.85rem; font-weight: 850; }
.manual-session-builder { display: grid; grid-template-columns: minmax(18.75rem, 21.25rem) minmax(0, 1fr); gap: 1.5rem; align-items: start; min-width: 0; }
.manual-session-details { position: sticky; top: 1rem; }
.session-post-save-pro { border: 1px solid #9fbd72; background: linear-gradient(135deg, #f7fbe9 0%, #fffdf7 72%); box-shadow: 0 12px 30px rgba(25, 61, 42, .1); }
.session-post-save-pro h3,.session-post-save-pro p { margin: 0; }
.session-post-save-pro .button-row { align-items: center; flex-wrap: wrap; }
.pro-trial-offer-backdrop { background: rgba(5, 25, 17, .76); backdrop-filter: blur(3px); }
.workspace-main .pro-trial-offer-modal { width: min(100%, 34rem); max-height: min(calc(100dvh - 2rem), 42rem); border: 1px solid rgba(190, 220, 89, .65); background: linear-gradient(155deg, #fffdf7 0%, #f4f7e8 100%); box-shadow: 0 1.5rem 4rem rgba(0, 0, 0, .35); }
.pro-trial-offer-modal h2,.pro-trial-offer-modal p { margin: 0; }
.pro-trial-offer-modal .eyebrow { color: #416316; }
.pro-trial-offer-terms { padding: .85rem 1rem; border-left: 4px solid #a2bf2f; border-radius: 0 9px 9px 0; background: #e9f0d8; color: #173526; }
.pro-trial-payment-note { font-size: .88rem; line-height: 1.45; }
.pro-trial-offer-actions { display: grid; gap: .6rem; }
.pro-trial-offer-actions .button { width: 100%; min-height: 46px; white-space: normal; }
.manual-save-status { color: #4a6659; font-size: 0.85rem; font-weight: 750; }
.manual-save-status.is-unsaved, .manual-duration-summary .is-over { color: #9a3c24; }
.manual-duration-summary { display: grid; gap: 0.25rem; padding: 0.8rem; border-radius: var(--radius-sm); background: #f3f7f1; color: #18352a; }
.manual-session-timeline { display: grid; gap: 1.25rem; min-width: 0; width: 100%; }
.manual-session-phase { min-width: 0; width: 100%; box-sizing: border-box; border-color: #d3e0d4; padding: 1.25rem; }
.manual-session-phase > .section-row strong { color: #174c36; }
.manual-phase-empty { margin: 0; padding: 0.5rem 0; color: #587064; font-size: 0.92rem; }
.manual-draft-drill-card { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; width: 100%; max-width: 100%; min-width: 0; box-sizing: border-box; padding: 1.1rem; border: 1px solid #dce5dc; border-radius: 0.8rem; background: #fff; box-shadow: 0 0.3rem 0.8rem rgba(10, 48, 33, 0.04); }
.manual-draft-thumb { display: grid; width: 100%; min-width: 0; min-height: 12rem; max-height: 17.5rem; aspect-ratio: 16 / 9; place-items: center; overflow: hidden; border-radius: 0.6rem; background: #edf4eb; font-size: 1.35rem; }
.manual-draft-thumb img, .manual-draft-thumb .drill-image-placeholder { width: 100%; height: 100%; min-height: 0; object-fit: contain; }
.manual-draft-main { display: grid; align-content: start; gap: 0.65rem; min-width: 0; overflow-wrap: break-word; word-break: normal; color: #10281f; }
.manual-draft-main strong { font-size: 1.08rem; line-height: 1.3; }
.manual-draft-main span { color: #496558; font-size: 0.88rem; line-height: 1.55; overflow-wrap: break-word; word-break: normal; }
.manual-draft-controls { display: flex; flex-flow: row wrap; align-items: center; gap: 0.45rem; min-width: 0; margin-top: 0.2rem; }
.manual-draft-controls .button { min-height: 2.25rem; padding: 0.4rem 0.65rem; font-size: 0.78rem; }
.manual-remove-button { border-color: #b85a49 !important; background: #fff1ee !important; color: #812c23 !important; }
.manual-draft-fields { grid-column: auto; display: grid; grid-template-columns: minmax(6.25rem, 8.75rem) minmax(11.25rem, 1fr); gap: 0.85rem; min-width: 0; padding-top: 0.9rem; border-top: 1px solid #e1e9e1; }
.manual-draft-fields label { display: grid; gap: 0.2rem; color: #365446; font-size: 0.75rem; font-weight: 700; }
.manual-draft-fields label:last-child { grid-column: 1 / -1; }
.manual-draft-fields .input { width: 100%; min-width: 0; max-width: 100%; min-height: 2.2rem; box-sizing: border-box; padding: 0.4rem 0.5rem; }
.manual-draft-fields textarea { min-height: 5rem; resize: vertical; }
@media (max-width: 980px) { .manual-session-builder { grid-template-columns: minmax(18rem, 20rem) minmax(0, 1fr); } .manual-draft-controls { margin-top: 0.35rem; } }
@media (max-width: 780px) { .manual-session-builder { grid-template-columns: 1fr; } .manual-session-details { position: static; } .manual-draft-thumb { min-height: 11rem; max-height: 15rem; } .manual-draft-fields { grid-template-columns: 1fr; } .manual-draft-fields label:last-child { grid-column: auto; } }
@media (max-width: 600px) { .session-post-save-pro .button-row { display: grid; grid-template-columns: 1fr; } .session-post-save-pro .button { width: 100%; min-height: 44px; white-space: normal; } }
@media (max-width: 600px) { .pro-trial-offer-backdrop { align-items: end; padding: max(.5rem, env(safe-area-inset-top)) .5rem max(.5rem, env(safe-area-inset-bottom)); }.workspace-main .pro-trial-offer-modal { width: 100%; max-height: calc(100dvh - max(1rem, env(safe-area-inset-top))); padding: 1.1rem; border-radius: 16px 16px 10px 10px; } }
@media (max-width: 680px) { .manual-session-phase { padding: 1rem; } .manual-draft-drill-card { padding: 1rem; } .manual-draft-controls .button { flex: 0 1 auto; } .current-session-indicator { align-items: stretch; flex-direction: column; } .current-session-indicator .button { width: 100%; } }

.saved-session-route-header { display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.saved-session-route-header > span { color: var(--workspace-on-dark-muted); font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }

@media (max-width: 600px) {
  .session-library-card .session-library-actions { display: grid; grid-template-columns: minmax(0, 1fr) auto; }
  .session-library-card .session-library-actions > .button { width: 100%; min-height: 44px; }
  .session-library-card .session-library-actions .session-library-secondary-action { display: none; }
  .session-library-card .session-library-actions .session-overflow-menu { display: block; }
  .session-library-card .session-library-actions .session-overflow-menu > .button { min-width: 44px; min-height: 44px; }
  .session-overflow-popover { min-width: min(15rem, calc(100vw - 3rem)); }
  .session-overflow-popover button { min-height: 44px; padding: .7rem; }
  .session-overflow-mobile-action { display: block; }
  .manual-session-details > .button-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .manual-session-details > .button-row .button { min-height: 44px; min-width: 0; padding-inline: .55rem; white-space: normal; line-height: 1.25; text-align: center; }
  .manual-draft-controls { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .manual-draft-controls .button { min-height: 44px; min-width: 0; white-space: normal; line-height: 1.25; }
  .manual-draft-controls .manual-remove-button { grid-column: 1 / -1; }
  .manual-draft-main span { line-height: 1.6; }
  .saved-session-route-header { align-items: stretch; flex-direction: column-reverse; }
  .saved-session-route-header .button { width: 100%; min-height: 44px; }
}

@media (min-width: 601px) { .session-overflow-menu.is-mobile-only { display: none; } }

.drill-detail-modal {
  width: min(94vw, 82rem);
  max-height: 90vh;
  padding: 0;
  color: #10281f;
  background: #fcfdfb;
}

.drill-detail-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.5rem;
  border-bottom: 1px solid #dce5dc;
}

.drill-detail-header > span {
  color: #17613f;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.12em;
}

.drill-detail-close,
.drill-action-secondary {
  min-height: 2.75rem;
  border: 1px solid #a9bab0 !important;
  background: #fff !important;
  color: #10281f !important;
  font-weight: 750;
}

.drill-detail-close:hover,
.drill-action-secondary:hover {
  border-color: #17613f !important;
  background: #eff7ef !important;
}

.drill-detail-close:focus-visible,
.drill-detail-tabs button:focus-visible,
.drill-favourite-toggle:focus-visible {
  outline: 3px solid #b6ff2e;
  outline-offset: 2px;
}

.drill-detail-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(21rem, 0.8fr);
  gap: 1.5rem;
  padding: 1.5rem;
}

.drill-title-row {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
}

.drill-title-row h2 {
  margin: 0;
  color: #10281f;
  font-size: clamp(1.7rem, 3.4vw, 2.6rem);
  line-height: 1.12;
}

.drill-favourite-toggle {
  flex: 0 0 auto;
  display: grid;
  width: 2.6rem;
  height: 2.6rem;
  place-items: center;
  border: 1px solid #c5d2c8;
  border-radius: 50%;
  background: #fff;
  color: #26543f;
  font-size: 1.35rem;
  cursor: pointer;
}

.drill-favourite-toggle.is-active {
  border-color: #9edc27;
  background: #e9ffc2;
}

.drill-detail-summary {
  margin: 0.85rem 0 1.25rem;
  color: #345247;
  font-size: 1rem;
  line-height: 1.6;
}

.drill-detail-meta-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
}

.drill-detail-meta-card {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  min-width: 0;
  padding: 0.75rem;
  border: 1px solid #dce5dc;
  border-radius: 0.7rem;
  background: #f4f7f3;
}

.drill-detail-meta-card.is-full-width { grid-column: 1 / -1; }
.drill-detail-meta-icon { color: #17613f; font-weight: 800; }
.drill-detail-meta-card div { display: grid; gap: 0.15rem; min-width: 0; }
.drill-detail-meta-card strong { color: #375449; font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.04em; }
.drill-detail-meta-card span:last-child { color: #10281f; font-size: 0.92rem; font-weight: 700; overflow-wrap: anywhere; }

.drill-diagram-panel {
  display: grid;
  grid-template-rows: auto minmax(17rem, 1fr);
  min-height: 22rem;
  overflow: hidden;
  border: 1px solid #bdcfc1;
  border-radius: 0.8rem;
  background: #edf4eb;
}

.drill-diagram-heading { padding: 0.7rem 0.9rem; background: #123f2d; color: #fff; font-size: 0.75rem; font-weight: 800; letter-spacing: 0.09em; }
.drill-diagram-panel img { width: 100%; height: 100%; min-height: 0; object-fit: contain; background: #f7fbf5; }
.drill-diagram-placeholder { display: grid; place-content: center; gap: 0.45rem; padding: 1.5rem; color: #254b3b; text-align: center; }
.drill-diagram-placeholder span { font-size: 2.25rem; }
.drill-diagram-placeholder p { margin: 0; color: #567064; }

.drill-detail-tabs { display: flex; gap: 0.5rem; overflow-x: auto; padding: 0 1.5rem 1rem; border-bottom: 1px solid #dce5dc; }
.drill-detail-tabs button { flex: 0 0 auto; min-height: 2.7rem; padding: 0.55rem 0.85rem; border: 1px solid #b8c7ba; border-radius: 0.55rem; background: #fff; color: #10281f; font: inherit; font-weight: 750; cursor: pointer; }
.drill-detail-tabs button:hover { background: #f1f7ee; }
.drill-detail-tabs button.is-active { border-color: #b6ff2e; background: #b6ff2e; color: #10281f; }
.drill-detail-tab-panel { padding: 1.25rem 1.5rem; }
.drill-instructions-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.drill-content-section { padding: 0 0 1rem; margin-bottom: 1rem; border-bottom: 1px solid #e0e8e1; }
.drill-content-section h3 { margin: 0 0 0.45rem; color: #10281f; font-size: 1rem; }
.drill-content-section p { margin: 0; color: #18352a; font-size: 0.96rem; line-height: 1.62; white-space: pre-line; }
.drill-video-card { display: flex; align-items: center; justify-content: space-between; min-height: 5rem; padding: 1rem 1.15rem; border: 1px solid #b8c7ba; border-radius: 0.7rem; background: #f4f8f2; color: #10281f; font-weight: 800; text-decoration: none; }
.drill-detail-actions { display: flex; justify-content: space-between; gap: 0.75rem; padding: 1rem 1.5rem; border-top: 1px solid #dce5dc; background: #fff; }
.drill-action-primary { min-height: 2.75rem; background: #b6ff2e !important; color: #10281f !important; font-weight: 800; }

@media (max-width: 760px) {
  .drill-modal-backdrop { padding: 0.5rem; }
  .drill-detail-modal { width: 100%; max-height: 94vh; }
  .drill-detail-header, .drill-detail-hero, .drill-detail-tab-panel, .drill-detail-actions { padding-left: 1rem; padding-right: 1rem; }
  .drill-detail-hero, .drill-instructions-grid { grid-template-columns: 1fr; }
  .drill-diagram-panel { min-height: 17rem; }
  .drill-detail-actions { flex-direction: column; }
  .drill-detail-actions .button { width: 100%; }
}

@media (max-width: 420px) {
  .drill-detail-meta-grid { grid-template-columns: 1fr; }
  .drill-detail-meta-card.is-full-width { grid-column: auto; }
}

.drill-alternative-card {
  margin-top: 0.25rem;
}

.session-practice-card p,
.setup-summary-card p,
.planning-card p,
.planning-card ul {
  color: #17392d;
}

.session-library-search {
  flex: 1 1 18rem;
}

.session-library-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 1rem;
}

.session-library-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 100%;
  padding: 1.15rem;
}

.session-library-card-content {
  display: grid;
  flex: 1 1 auto;
  gap: 0.75rem;
  min-width: 0;
}

.session-library-card-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 0.75rem;
}

.session-library-card h2 {
  display: -webkit-box;
  overflow: hidden;
  margin: 0;
  color: #17392d;
  font-size: clamp(1.125rem, 1vw + 0.9rem, 1.35rem);
  line-height: 1.2;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.session-library-card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  color: #486257;
  font-size: 0.88rem;
  line-height: 1.35;
}

.session-library-card-meta span + span::before {
  content: "/";
  margin-right: 0.35rem;
  color: #7b9185;
}

.session-library-card-description {
  display: -webkit-box;
  overflow: hidden;
  margin: 0;
  color: #355246;
  font-size: 0.9rem;
  line-height: 1.45;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.session-library-card-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.session-library-card .pill-count {
  width: fit-content;
  max-width: 100%;
  padding: 0.28rem 0.55rem;
  overflow: hidden;
  font-size: 0.75rem;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.session-library-card .session-favourite-button {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  min-height: 2.25rem;
  padding: 0.45rem 0.6rem;
  border: 1px solid rgba(15, 61, 46, 0.14);
  border-radius: 999px;
  background: #f7fbf7;
  color: #355246;
  font-size: 0.78rem;
  font-weight: 750;
  white-space: nowrap;
}

.session-library-card .session-favourite-button.is-favourited {
  border-color: rgba(100, 139, 20, 0.35);
  background: #efffd2;
  color: #315b11;
}

.session-favourite-icon {
  width: 1rem;
  height: 1rem;
  flex: 0 0 auto;
}

.session-library-card .session-library-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin-top: 1rem;
  padding-top: 0.9rem;
  border-top: 1px solid rgba(15, 61, 46, 0.1);
}

.session-library-card .session-library-actions .button {
  flex: 1 1 7rem;
  min-height: 2.6rem;
}

.session-library-card .session-library-actions .session-overflow-menu {
  flex: 0 0 auto;
}

.session-library-card,
.session-library-card .muted,
.session-library-card h2,
.session-library-card .pill-count,
.session-library-view .muted,
.session-library-view h1,
.session-library-view h2,
.session-library-view p,
.session-library-view li {
  color: #17392d;
}

.session-library-card .pill-count {
  background: rgba(15, 61, 46, 0.08);
  border-color: rgba(15, 61, 46, 0.14);
}

.session-library-card .session-favourite-button,
.session-library-view .session-filter-chip {
  border-color: rgba(15, 61, 46, 0.14);
  background: linear-gradient(180deg, #ffffff 0%, #f7fbf7 100%);
  color: #17392d;
}

.session-library-card .session-favourite-button {
  white-space: nowrap;
}

.session-library-view .session-filter-chip.is-active {
  background: rgba(15, 61, 46, 0.14);
  border-color: rgba(15, 61, 46, 0.2);
  color: #123524;
}

.session-library-view .planning-card {
  background: linear-gradient(180deg, #f8fcf7 0%, #ffffff 100%);
}

.session-library-view {
  color: #123524;
}

.workspace-main .card:not(.app-intro-card):not(.upgrade-card),
.workspace-main .app-intro-card .starter-session-welcome,
.workspace-main .app-intro-card .session-library-card,
.workspace-main .app-intro-card .session-library-folder-card,
.workspace-main .app-intro-card .setup-summary-card,
.workspace-main .drill-modal,
.workspace-main .session-overflow-popover {
  color: var(--text-on-light);
}

.workspace-main .app-intro-card .starter-session-welcome p,
.workspace-main .app-intro-card .session-library-view .muted,
.workspace-main .app-intro-card .session-library-view .session-library-card-description,
.workspace-main .drill-modal .muted {
  color: var(--text-muted-on-light);
}

.workspace-main .session-library-view .section-header,
.workspace-main .session-library-view .section-header h1,
.workspace-main .session-library-view .section-header .eyebrow,
.workspace-main .session-library-view .section-header .muted {
  color: var(--text-on-dark);
  opacity: 1;
  text-shadow: none;
  filter: none;
  mix-blend-mode: normal;
}

.workspace-main .session-library-view .section-header .eyebrow { color: #cce69c; }
.workspace-main .session-library-view .section-header .muted { color: var(--text-muted-on-dark); }

.session-library-folder-trigger {
  flex-shrink: 0;
}

.session-folder-picker {
  border-color: rgba(15, 61, 46, 0.14);
  background: linear-gradient(180deg, #fcfdfb 0%, #ffffff 100%);
}

.session-folder-confirmation {
  margin: 0;
  color: #1f5a43;
  font-weight: 700;
}

.session-folder-confirmation.is-delete-session {
  border-color: rgba(129, 44, 35, 0.26);
  background: linear-gradient(180deg, #fffdf6 0%, #f7f3e8 100%);
  color: #18352a;
}

.session-delete-warning-label {
  display: inline-flex;
  width: fit-content;
  padding: 0.28rem 0.55rem;
  border-radius: 999px;
  background: #f8e1dc;
  color: #812c23;
  font-size: 0.72rem;
  font-weight: 850;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.session-folder-confirmation.is-delete-session h2 {
  margin: 0;
  color: #17392d;
  font-size: 1.45rem;
  line-height: 1.2;
}

.session-folder-confirmation.is-delete-session p {
  margin: 0;
  color: #355246;
  line-height: 1.5;
}

.session-folder-confirmation.is-delete-session .ai-btn-tertiary {
  background: transparent;
  color: #17392d;
  border-color: #17392d;
}

.session-folder-confirmation.is-delete-session .button-danger {
  background: #b43f32;
  border-color: #9f3327;
  color: #fffaf8;
}

.session-export-card {
  border-color: rgba(15, 61, 46, 0.14);
  background:
    radial-gradient(circle at top right, rgba(212, 255, 63, 0.12), transparent 32%),
    linear-gradient(180deg, #f4f8f2 0%, #e9efe7 100%);
}

.session-export-card .button[disabled] {
  opacity: 0.8;
}

.session-main-shell > .section-row .section-header {
  min-width: 0;
}

.planning-target {
  margin: 0;
  font-size: clamp(1.5rem, 6vw, 2.1rem);
  line-height: 1.05;
  font-weight: 800;
  color: var(--brand);
}

.compact-form {
  gap: 0.8rem;
}

.live-timer-card {
  background:
    radial-gradient(circle at top, rgba(212, 255, 63, 0.16), transparent 30%),
    linear-gradient(180deg, #123f30 0%, #0f3d2e 100%);
  color: var(--text-on-dark);
}

.live-timer-card .muted,
.live-timer-card h2 {
  color: rgba(248, 255, 249, 0.84);
}

.live-timer-card .status-chip,
.live-timer-card .pill-count {
  background: rgba(255, 255, 255, 0.12);
  color: var(--text-on-dark);
  border-color: rgba(255, 255, 255, 0.14);
}

.live-clock {
  font-size: clamp(3.4rem, 17vw, 5.6rem);
  line-height: 0.95;
  font-weight: 800;
  letter-spacing: 0.04em;
}

.live-scoreboard {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  gap: 0.75rem;
  align-items: center;
}

.live-scoreboard-team,
.live-scoreboard-clock {
  display: grid;
  justify-items: center;
  gap: 0.2rem;
  text-align: center;
}

.live-scoreboard-team strong {
  font-size: clamp(2rem, 10vw, 3rem);
  line-height: 1;
}

.live-scoreboard-team span,
.live-scoreboard-clock span {
  color: rgba(248, 255, 249, 0.82);
}

.live-scoreboard-team span {
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.live-scoreboard-clock {
  min-width: 0;
  padding-inline: 0.2rem;
}

.pill-count,
.list-item-meta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2rem;
  padding: 0.4rem 0.7rem;
  border-radius: 999px;
  background: var(--surface-muted);
  color: var(--brand);
  font-size: 0.85rem;
  font-weight: 700;
}

.list-item-card {
  display: grid;
  gap: 0.85rem;
  padding: 1rem;
  border: 1px solid rgba(15, 61, 46, 0.12);
  border-radius: var(--radius-sm);
  background: linear-gradient(180deg, #ffffff 0%, #f7fbf7 100%);
}

.squad-player-card {
  background: linear-gradient(180deg, #ffffff 0%, #f9fcf9 100%);
}

.squad-player-card.is-editing {
  border-color: rgba(15, 61, 46, 0.22);
}

.squad-player-card.is-most-played,
.player-status-card.is-most-played {
  border-color: rgba(15, 61, 46, 0.28);
  box-shadow: 0 0 0 2px rgba(15, 61, 46, 0.08);
}

.squad-player-card.is-least-played,
.is-bench-player.is-least-played {
  border-color: rgba(212, 255, 63, 0.48);
}

.squad-selector-card {
  align-items: start;
}

.squad-selector-card.is-selected {
  border-color: rgba(15, 61, 46, 0.24);
}

.squad-selector-card.is-starter {
  background: linear-gradient(180deg, #fbfff0 0%, #ffffff 100%);
}

.availability-accordion-trigger {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 0.9rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  text-align: left;
  cursor: pointer;
}

.availability-accordion-meta {
  display: grid;
  justify-items: end;
  gap: 0.6rem;
  flex-shrink: 0;
  min-width: 0;
}

.availability-summary {
  margin: 0;
  font-size: 0.92rem;
  color: rgba(15, 61, 46, 0.72);
}

.availability-chevron {
  width: 0.8rem;
  height: 0.8rem;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0;
  transition: transform 140ms ease;
}

.availability-chevron::before {
  content: "";
  width: 0.5rem;
  height: 0.5rem;
  border-right: 2px solid rgba(15, 61, 46, 0.68);
  border-bottom: 2px solid rgba(15, 61, 46, 0.68);
  transform: rotate(45deg);
}

.availability-chevron.is-open {
  transform: rotate(180deg);
}

.availability-accordion-panel {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 160ms ease;
}

.availability-accordion-panel.is-open {
  grid-template-rows: 1fr;
}

.availability-accordion-inner {
  overflow: hidden;
  padding-top: 0;
}

.availability-accordion-panel.is-open .availability-accordion-inner {
  padding-top: 0.35rem;
}

.lineup-group-heading {
  margin: 0;
  color: rgba(15, 61, 46, 0.72);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.formation-picker-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
  gap: 0.75rem;
}

.formation-picker-field {
  max-width: 14rem;
}

.formation-picker-note {
  margin: 0;
  max-width: 26rem;
}

.formation-picker-card {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3rem;
  padding: 0.7rem 0.9rem;
  text-align: center;
  border: 1px solid rgba(15, 61, 46, 0.12);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  color: inherit;
}

.lineup-planner-card {
  overflow: hidden;
}

.formation-pitch {
  display: grid;
  gap: 1.25rem;
  padding: 1.2rem 0.75rem 1rem;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  border-radius: calc(var(--radius-sm) + 0.35rem);
  background:
    radial-gradient(circle at center, transparent 0 13%, rgba(248, 255, 249, 0.16) 13% 14%, transparent 14% 100%),
    linear-gradient(180deg, transparent 49.4%, rgba(248, 255, 249, 0.14) 49.4% 50.6%, transparent 50.6%),
    repeating-linear-gradient(
      180deg,
      rgba(255, 255, 255, 0.03) 0 14%,
      rgba(255, 255, 255, 0) 14% 28%
    ),
    linear-gradient(180deg, #173c2f 0%, #0e2f24 100%);
  border: 1px solid rgba(212, 255, 63, 0.1);
  position: relative;
  overflow: hidden;
}

.formation-row {
  display: grid;
  align-items: start;
  justify-content: center;
  justify-items: center;
  gap: 0.9rem;
  grid-auto-flow: column;
}

.formation-slot-wrap {
  display: grid;
  justify-items: center;
  gap: 0.38rem;
  width: 6.55rem;
  will-change: transform;
}

.formation-marker {
  width: 4.7rem;
  height: 4.75rem;
  display: grid;
  place-items: center;
  border: 0;
  background: transparent;
  color: #f8fff9;
  padding: 0;
}

.formation-marker.is-ready {
  filter: drop-shadow(0 0 10px rgba(212, 255, 63, 0.26));
}

.formation-marker.is-filled {
  transform: translateY(-1px);
}

.formation-jersey-svg {
  width: 4.8rem;
  height: 4.78rem;
}

.formation-player-name {
  text-align: center;
  color: #f8fff9;
  font-size: 0.73rem;
  font-weight: 700;
  line-height: 1.1;
  max-width: 5.7rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  opacity: 0.92;
  text-shadow: 0 1px 2px rgba(3, 12, 8, 0.22);
}

.team-badge-jersey-svg {
  width: 1.35rem;
  height: 1.35rem;
}

.lineup-side-panel {
  gap: 0.8rem;
}

.lineup-list {
  display: grid;
  gap: 0.4rem;
  max-height: 15rem;
  overflow-y: auto;
}

.lineup-list-row {
  width: 100%;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 0.7rem;
  align-items: center;
  padding: 0.75rem 0;
  text-align: left;
  border: 0;
  border-bottom: 1px solid rgba(15, 61, 46, 0.08);
  border-radius: 0;
  background: transparent;
  color: inherit;
}

.lineup-list-row.is-selected {
  outline: 2px solid rgba(212, 255, 63, 0.42);
  outline-offset: 0.18rem;
  border-bottom-color: transparent;
  border-radius: 0.75rem;
}

.lineup-list-number {
  min-width: 2.9rem;
  color: var(--brand);
  font-weight: 800;
}

.lineup-list-name {
  min-width: 0;
  color: #102018;
  font-weight: 700;
}

.lineup-list-meta {
  color: #53695c;
  font-size: 0.84rem;
  font-weight: 700;
}

@media (max-width: 640px) {
  .lineup-planner-card {
    padding-inline: 0.95rem;
  }

  .availability-accordion-trigger {
    grid-template-columns: minmax(0, 1fr);
    gap: 0.75rem;
  }

  .availability-accordion-meta {
    grid-template-columns: minmax(0, 1fr) auto;
    width: 100%;
    gap: 0.55rem;
    align-items: center;
    justify-items: stretch;
  }

  .availability-accordion-meta .stats-inline {
    min-width: 0;
    justify-content: flex-start;
  }

  .availability-summary {
    font-size: 0.86rem;
  }

  .formation-picker-field {
    max-width: 100%;
  }

  .formation-row {
    display: flex;
    justify-content: space-evenly;
    width: 100%;
    gap: 0.18rem;
  }

  .formation-slot-wrap {
    flex: 1 1 0;
    min-width: 0;
    max-width: 4.2rem;
    width: auto;
  }

  .formation-marker {
    width: 3.15rem;
    height: 3.2rem;
  }

  .formation-jersey-svg {
    width: 3.2rem;
    height: 3.18rem;
  }

  .formation-player-name {
    font-size: 0.62rem;
    max-width: 100%;
  }

  .formation-pitch {
    gap: 0.9rem;
    padding: 0.9rem 0.18rem 0.82rem;
  }

  .live-scoreboard {
    gap: 0.45rem;
  }

  .live-clock {
    font-size: clamp(2.8rem, 15vw, 3.85rem);
    letter-spacing: 0.02em;
  }

  .live-scoreboard-team strong {
    font-size: clamp(1.8rem, 9vw, 2.5rem);
  }

  .live-scoreboard-team span,
  .live-scoreboard-clock span {
    font-size: 0.82rem;
  }

  .live-event-type-grid,
  .matches-card-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  }

.player-status-card {
  width: 100%;
  display: grid;
  gap: 0.85rem;
  padding: 1rem;
  text-align: left;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: linear-gradient(180deg, #ffffff 0%, #f5fbf5 100%);
  color: inherit;
}

.player-status-card.is-selected {
  border-color: rgba(212, 255, 63, 0.52);
  box-shadow: 0 0 0 3px rgba(212, 255, 63, 0.18);
}

.is-active-player {
  background: linear-gradient(180deg, #ffffff 0%, #eff9ef 100%);
}

.is-bench-player {
  background: linear-gradient(180deg, #ffffff 0%, #f8faf8 100%);
}

.player-status-meta {
  justify-items: start;
}

.list-item-copy {
  display: grid;
  gap: 0.35rem;
}

.back-link {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  min-height: 2.5rem;
  padding: 0.45rem 0.85rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.88);
  border: 1px solid var(--border);
  color: var(--brand);
  font-weight: 700;
}

.skeleton-card {
  min-height: 5.5rem;
  background:
    linear-gradient(90deg, #173c2f 25%, #214e3e 50%, #173c2f 75%);
  background-size: 200% 100%;
  animation: shimmer 1.2s linear infinite;
  border-color: rgba(212, 255, 63, 0.08);
}

.empty-icon {
  width: 2.6rem;
  height: 2.6rem;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--accent) 0%, var(--brand) 100%);
}

.app-bottom-nav {
  position: fixed;
  left: 50%;
  bottom: 1rem;
  z-index: 20;
  transform: translateX(-50%);
  width: calc(100% - 2rem);
  max-width: 32rem;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0.35rem;
  padding: 0.4rem;
  background: rgba(8, 28, 21, 0.92);
  border: 1px solid rgba(212, 255, 63, 0.1);
  border-radius: 999px;
  box-shadow: var(--shadow);
  backdrop-filter: blur(16px);
}

.app-bottom-nav-link {
  padding: 0.8rem 0.45rem;
  border-radius: 999px;
  text-align: center;
  color: rgba(248, 255, 249, 0.68);
  font-size: 0.9rem;
  font-weight: 600;
}

.app-bottom-nav-link.is-active {
  background: var(--accent);
  color: #102018;
}

.dashboard-page {
  gap: 1.5rem;
}

.dashboard-hero {
  padding: 1.45rem;
  gap: 1rem;
}

.dashboard-kicker,
.dashboard-panel-label {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  min-height: 1.75rem;
  padding: 0.25rem 0.65rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.dashboard-kicker {
  background: rgba(212, 255, 63, 0.16);
  color: #f3ffb8;
}

.dashboard-hero h2 {
  font-size: clamp(1.8rem, 7vw, 2.8rem);
  line-height: 0.98;
  letter-spacing: -0.04em;
  margin: 0;
}

.dashboard-hero .muted {
  color: rgba(248, 255, 249, 0.86);
  max-width: 34rem;
  font-size: 1rem;
}

.dashboard-hero-actions {
  display: grid;
  gap: 0.9rem;
}

.dashboard-grid,
.dashboard-stats-row {
  display: grid;
  gap: 0.9rem;
}

.dashboard-grid {
  grid-template-columns: repeat(1, minmax(0, 1fr));
}

.dashboard-grid-single {
  grid-template-columns: repeat(1, minmax(0, 1fr));
}

.dashboard-section {
  gap: 0.9rem;
}

.dashboard-section-header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 0.9rem;
  flex-wrap: wrap;
}

.dashboard-section-header h2 {
  margin: 0.15rem 0 0;
  color: #f8fff9;
  font-size: 1.45rem;
}

.dashboard-section-header .muted {
  color: rgba(248, 255, 249, 0.76);
}

.dashboard-stats-row {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.dashboard-stat-card {
  display: grid;
  gap: 0.2rem;
  min-height: auto;
  padding: 1rem 1.05rem;
  background: rgba(255, 255, 255, 0.96);
}

.dashboard-stat-card strong {
  color: #102018;
  font-size: 1.2rem;
  line-height: 1;
}

.dashboard-stat-card span {
  color: #53695c;
  font-size: 0.86rem;
  line-height: 1.35;
}

.dashboard-panel {
  display: grid;
  gap: 1rem;
  align-content: space-between;
  min-height: 13rem;
  padding: 1.35rem;
  background: linear-gradient(180deg, #ffffff 0%, #fcfdfc 100%);
}

.dashboard-panel-emphasis {
  background:
    radial-gradient(circle at top right, rgba(212, 255, 63, 0.12), transparent 34%),
    linear-gradient(180deg, #ffffff 0%, #f9fcfa 100%);
}

.dashboard-panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
  flex-wrap: wrap;
}

.dashboard-panel-label {
  background: rgba(15, 61, 46, 0.08);
  color: #0f3d2e;
}

.dashboard-panel .muted {
  color: #53695c;
}

.dashboard-panel .button {
  width: 100%;
}

.dashboard-upgrade-prompt {
  display: grid;
  gap: 0.9rem;
  align-items: center;
  padding: 1.15rem 1.35rem;
  border-color: rgba(212, 255, 63, 0.36);
  background: linear-gradient(180deg, #fffef7 0%, #ffffff 100%);
}

.upgrade-locked-button {
  width: 100%;
}

.modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 30;
  display: grid;
  align-items: end;
  padding: 1rem;
  background: rgba(4, 17, 12, 0.62);
  backdrop-filter: blur(6px);
}

.modal-card {
  width: min(100%, 32rem);
  margin: 0 auto;
  padding: 1.35rem;
  border: 1px solid rgba(15, 61, 46, 0.12);
  border-radius: var(--radius-md);
  background: #ffffff;
  color: var(--text-strong);
  box-shadow: 0 22px 48px rgba(1, 10, 7, 0.28);
}

.bottom-sheet-backdrop {
  align-items: end;
  overscroll-behavior: contain;
}

.bottom-sheet-card {
  width: min(100%, 32rem);
  max-height: min(82vh, calc(100dvh - 1rem));
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-bottom-left-radius: 1rem;
  border-bottom-right-radius: 1rem;
  padding: 0;
  animation: bottom-sheet-enter 160ms ease;
}

.bottom-sheet-header {
  position: sticky;
  top: 0;
  z-index: 1;
  padding: 0.25rem 1rem 0.85rem;
  background: #ffffff;
  border-bottom: 1px solid rgba(15, 61, 46, 0.08);
}

.bottom-sheet-header-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.bottom-sheet-header-button {
  min-height: auto;
  padding: 0.35rem 0;
  color: var(--accent-strong);
}

.bottom-sheet-spacer {
  display: block;
  width: 3.25rem;
}

.bottom-sheet-body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
  padding: 0.9rem 1rem max(1.1rem, env(safe-area-inset-bottom));
}

.bottom-sheet-body > .stack-sm {
  min-height: 0;
}

.bottom-sheet-scroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  padding-bottom: max(1rem, env(safe-area-inset-bottom));
  padding-right: 0.15rem;
}

.bottom-sheet-handle {
  width: 3rem;
  height: 0.3rem;
  margin: 0.7rem auto 0.35rem;
  border-radius: 999px;
  background: rgba(15, 61, 46, 0.16);
}

.bottom-sheet-divider {
  height: 1px;
  background: rgba(15, 61, 46, 0.08);
  margin: 0.1rem 0 0.3rem;
}

.bottom-sheet-body .button-full {
  min-height: 3.35rem;
}

.live-goal-actions {
  display: grid;
  gap: 0.75rem;
}

.live-match-controls {
  display: grid;
  gap: 0.75rem;
}

.live-event-type-grid,
.matches-card-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
}

.live-primary-control {
  min-height: 3.35rem;
  font-size: 1rem;
  font-weight: 800;
}

.live-opponent-goal-button {
  min-height: 3rem;
}

.live-pill {
  background: rgba(212, 255, 63, 0.2);
  color: #f8fff9;
  border-color: rgba(212, 255, 63, 0.28);
}

@keyframes bottom-sheet-enter {
  from {
    opacity: 0;
    transform: translateY(16px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.empty-state {
  display: grid;
  justify-items: start;
  gap: 0.75rem;
  padding: 1.4rem;
}

.empty-action {
  display: inline-flex;
}

.match-report-hero {
  gap: 1rem;
}

.match-report-score {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  color: #f8fff9;
}

.match-report-score strong {
  font-size: clamp(2rem, 10vw, 3.2rem);
  line-height: 1;
}

.match-report-score span {
  font-size: 1.3rem;
  font-weight: 800;
  color: rgba(248, 255, 249, 0.85);
}

.score-adjust-button {
  width: 2.35rem;
  height: 2.35rem;
  border-radius: 999px;
  border: 1px solid rgba(212, 255, 63, 0.28);
  background: rgba(255, 255, 255, 0.08);
  color: #f8fff9;
  font-size: 1.3rem;
  font-weight: 800;
}

.match-report-meta-grid {
  display: grid;
  gap: 1rem;
}

.match-detail-card {
  display: grid;
  gap: 0.75rem;
  padding: 1rem;
  background: linear-gradient(180deg, #ffffff 0%, #fcfdfc 100%);
}

.match-detail-card .eyebrow {
  color: #7fa500;
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.player-report-card {
  width: 100%;
  display: grid;
  gap: 0.9rem;
  padding: 1rem;
  text-align: left;
  border: 1px solid rgba(15, 61, 46, 0.12);
  border-radius: var(--radius-sm);
  background: linear-gradient(180deg, #ffffff 0%, #f8fbf8 100%);
  color: inherit;
  box-shadow: 0 10px 24px rgba(1, 10, 7, 0.06);
}

.player-report-card.is-potm {
  border-color: rgba(212, 255, 63, 0.5);
  box-shadow: 0 0 0 3px rgba(212, 255, 63, 0.12);
}

.player-report-main {
  display: grid;
  gap: 0.8rem;
}

.player-report-badges {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  justify-content: end;
}

.player-inline-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5rem;
}

.summary-stat-pill {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  min-height: 2.4rem;
  padding: 0.55rem 0.8rem;
  border-radius: 0.9rem;
  background: rgba(15, 61, 46, 0.06);
  color: #173c2f;
  font-weight: 700;
}

.summary-stat-pill strong {
  font-size: 1rem;
}

.quick-stat-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
  padding: 0.8rem 0;
  border-top: 1px solid rgba(15, 61, 46, 0.08);
}

.quick-stat-row:first-child {
  border-top: 0;
}

.quick-stat-label {
  color: #173c2f;
  font-weight: 700;
}

.quick-stat-controls {
  display: flex;
  align-items: center;
  gap: 0.6rem;
}

@media (min-width: 720px) {
  .match-report-meta-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .player-inline-stats {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.screen-loader {
  min-height: 100vh;
  display: grid;
  place-items: center;
  gap: 1rem;
  text-align: center;
  padding: 2rem;
}

.loader-mark {
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  border: 4px solid rgba(18, 53, 36, 0.14);
  border-top-color: var(--brand);
  animation: spin 1s linear infinite;
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

@keyframes shimmer {
  0% {
    background-position: 200% 0;
  }
  100% {
    background-position: -200% 0;
  }
}

@media (min-width: 768px) {
  .page-shell,
  .app-main {
    padding: 1.5rem;
  }

  .hero-card {
    padding: 2rem;
  }

  .hero-actions {
    grid-template-columns: repeat(2, minmax(0, max-content));
    align-items: start;
  }

  .landing-hero-actions {
    grid-template-columns: repeat(2, minmax(0, max-content));
  }

  .product-visual-grid,
  .pain-solution-grid,
  .how-it-works-grid,
  .pricing-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .list-item-card {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
  }

  .format-selector .button,
  .planning-chips .pill-count,
  .squad-actions .button {
    flex: 0 0 auto;
  }

  .player-status-card {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
  }

  .stats-table th,
  .stats-table td {
    padding-inline: 1rem;
  }

  .stats-table thead th:first-child,
  .stats-table tbody th {
    width: 11rem;
    min-width: 11rem;
    max-width: 11rem;
  }

  .team-color-swatch-grid {
    grid-template-columns: repeat(8, minmax(0, 1fr));
  }

  .calculator-format-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .feature-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .dashboard-hero {
    padding: 1.8rem;
  }

  .dashboard-stats-row {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .dashboard-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .dashboard-grid-setup {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .dashboard-upgrade-prompt {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .season-switcher-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .season-switcher-summary {
    justify-content: flex-end;
  }

  .modal-backdrop {
    align-items: center;
  }

  .player-form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .stats-input-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .stats-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .session-builder-grid,
  .session-plan-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .session-library-folder-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .session-library-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .drill-results-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .session-composer-controls {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .session-sidebar-actions .button {
    flex: 1 1 10rem;
  }

  .session-library-header-row .button {
    align-self: flex-start;
  }

  .session-equipment-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .session-practice-layout {
    grid-template-columns: minmax(15rem, 0.9fr) minmax(0, 1.1fr);
    align-items: center;
  }
}

@media (min-width: 1024px) {
  .session-workspace {
    grid-template-columns: minmax(17rem, 20rem) minmax(0, 1fr);
    align-items: start;
  }

  .drill-results-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .session-sidebar {
    position: sticky;
    top: 1rem;
  }

  .feature-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .dashboard-hero {
    grid-template-columns: minmax(0, 1.3fr) auto;
    align-items: center;
  }

  .session-equipment-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .dashboard-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .session-library-folder-grid,
  .session-library-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .dashboard-panel-emphasis {
    grid-column: auto;
  }

  .dashboard-grid-single {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Football Hub platform entry pages */
.platform-page, .public-platform-page, .pricing-page { max-width: 1180px; margin: 0 auto; padding: clamp(1.25rem, 4vw, 3rem); }
.platform-page { min-height: 100vh; background: #123d32; color: #fff8e9; }
.platform-hero { padding: clamp(1.5rem, 4vw, 3rem) 0; max-width: 760px; }
.platform-hero h1 { margin: .35rem 0 .75rem; font-size: clamp(2rem, 5vw, 4rem); line-height: 1; }
.platform-hero p { font-size: 1.08rem; margin: 0; opacity: .9; }
.platform-products { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.platform-product-card { min-height: 360px; display: flex; flex-direction: column; align-items: flex-start; background: #fff8e9; color: #153d32; border: 1px solid rgba(23, 70, 57, .18); }
.platform-product-card h2 { margin: .6rem 0; font-size: clamp(1.55rem, 3vw, 2.35rem); }
.platform-product-card p { margin: 0 0 1rem; line-height: 1.55; }
.platform-product-card ul, .platform-price-card ul { padding-left: 1.2rem; line-height: 1.7; margin: 0 0 1.25rem; }
.platform-product-card .button { margin-top: auto; }
.platform-product-kicker { color: #b4502d; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; font-size: .78rem; }
.platform-coaching-card { border-top: 6px solid #b4502d; }
.platform-playtracker-card { border-top: 6px solid #2c7562; }
.platform-membership, .platform-public-summary { margin-top: 1.25rem; display: flex; gap: 1.25rem; justify-content: space-between; align-items: center; background: #e9dec4; color: #153d32; }
.platform-membership h2, .platform-public-summary h2 { margin: .2rem 0; }
.platform-footer-actions { display: flex; gap: 1rem; padding: 1.5rem 0; }
.legal-page { max-width: 920px; margin-inline: auto; padding-block: clamp(2rem, 5vw, 4rem); }
.legal-page-header { color: var(--text-on-dark); max-width: 720px; margin-bottom: 1.5rem; }
.legal-page-header h1 { margin: .65rem 0; }
.legal-page-header p { color: var(--text-muted-on-dark); line-height: 1.65; }
.legal-page-header .marketing-back-link { display: inline-block; margin-bottom: 1.5rem; color: var(--text-on-dark); }
.legal-last-updated { font-size: .9rem; }
.legal-document { background: #fff8e9; color: var(--text-on-light); padding: clamp(1.25rem, 4vw, 3rem); }
.legal-section + .legal-section { border-top: 1px solid rgba(21, 61, 50, .15); margin-top: 1.5rem; padding-top: 1.5rem; }
.legal-section h2 { color: var(--text-on-light); font-size: clamp(1.15rem, 2vw, 1.4rem); }
.legal-section p, .legal-section li { color: var(--text-muted-on-light); line-height: 1.68; }
.legal-section a { color: #245e4e; font-weight: 750; }
.public-legal-footer { display: flex; flex-wrap: wrap; gap: .55rem 1rem; justify-content: center; padding: 1.5rem 0 .5rem; color: var(--text-muted-on-dark); font-size: .8rem; }
.public-legal-footer a { color: var(--text-on-dark); text-decoration: none; }
.public-legal-footer a:hover, .public-legal-footer a:focus-visible { text-decoration: underline; }
@media (max-width: 640px) { .legal-page { padding-inline: 1.25rem; }.legal-document { padding: 1.25rem; }.public-legal-footer { justify-content: flex-start; } }
.platform-footer-actions a, .platform-footer-actions button { color: inherit; background: none; border: 0; padding: 0; font: inherit; text-decoration: underline; cursor: pointer; }
.public-platform-page .platform-hero, .pricing-page .platform-hero { color: #153d32; }
.platform-pricing-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.platform-price-card { background: #fff8e9; color: #153d32; display: flex; flex-direction: column; align-items: flex-start; }
.platform-price-card h2 { font-size: 1.35rem; margin: 0 0 .75rem; }
.platform-price-card > strong { font-size: 1.7rem; }
.platform-price-card .button { margin-top: auto; }
.platform-pricing-note { margin: 1.25rem 0; }
@media (max-width: 760px) { .platform-products, .platform-pricing-grid { grid-template-columns: 1fr; } .platform-membership { align-items: flex-start; flex-direction: column; } .platform-product-card { min-height: 0; } }

/* Mobile interaction safeguards shared by the Platform and Workspace shells. */
@media (max-width: 820px) {
  body.workspace-drawer-open { overflow: hidden; }
  .workspace-mobile-header { position: sticky; top: 0; z-index: 31; padding-top: max(10px, env(safe-area-inset-top)); }
  .workspace-mobile-drawer { inset: calc(64px + env(safe-area-inset-top)) 0 0; max-height: calc(100dvh - 64px - env(safe-area-inset-top)); padding: 14px 16px max(20px, env(safe-area-inset-bottom)); overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
  .workspace-mobile-drawer .workspace-nav { min-height: 100%; }
  .workspace-main, .platform-page, .public-platform-page, .pricing-page { min-width: 0; overflow-x: clip; }
  .workspace-main .session-area-tabs { width: 100%; min-height: 48px; scroll-padding-inline: .5rem; }
  .workspace-main .session-area-tab { min-height: 44px; }
  .platform-product-card .button, .platform-membership .button { min-height: 44px; }
  .platform-product-card .button { width: 100%; }
}
@media (max-width: 420px) {
  .platform-page, .public-platform-page, .pricing-page { padding-inline: 1rem; }
  .platform-hero h1 { font-size: clamp(1.9rem, 10vw, 2.5rem); }
  .platform-product-card, .platform-price-card { padding: 1rem; }
  .platform-membership .button-row { width: 100%; display: grid; grid-template-columns: 1fr; }
.platform-membership .button-row a, .platform-membership .button-row .button { width: 100%; }
}

/* Compact Preview membership overview: dark page copy never leaks into light cards. */
.membership-page { max-width: 1160px !important; margin-inline: auto !important; }
.membership-test-label { display: inline-block; margin-bottom: -.5rem; }
.membership-preview-layout { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr); gap: 1rem; align-items: start; }
.membership-preview-card,.membership-upgrade-card,.membership-paid-card { color: var(--text-on-light, #153d32); background: #fffdf7; }
.membership-preview-card h2,.membership-upgrade-card h2,.membership-paid-card h2 { color: var(--text-on-light, #153d32); margin: .2rem 0 .8rem; }
.membership-preview-card .muted,.membership-upgrade-card li,.membership-paid-card .muted { color: var(--text-muted-on-light, #526459); }
.membership-preview-allowances { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; margin: .9rem 0; }
.membership-preview-allowances > div { display: grid; gap: .15rem; min-height: 88px; padding: .8rem; border: 1px solid #d8e4cc; border-radius: 12px; background: #f5f8ee; color: var(--text-on-light, #153d32); }
.membership-preview-allowances strong { color: #183f2d; font-size: 1.35rem; line-height: 1; }
.membership-preview-allowances span { color: var(--text-muted-on-light, #526459); font-size: .82rem; line-height: 1.3; }
.membership-upgrade-card ul { display: grid; gap: .45rem; margin: .9rem 0 1.2rem; padding-left: 1.1rem; }
.membership-confirmation-card { position: relative; padding-left: 3.5rem; }.membership-confirmation-spinner { position: absolute; top: 1.25rem; left: 1.15rem; width: 1.25rem; height: 1.25rem; border: 3px solid #d6e5c9; border-top-color: #2f6a3e; border-radius: 50%; animation: membership-spin .75s linear infinite; }.membership-welcome-card { align-self: start; min-height: 0; max-width: 760px; padding: 1.05rem 1.15rem 1.15rem; }.membership-welcome-card h2 { margin-bottom: .2rem; }.membership-welcome-card .eyebrow { color: #315b48; }.membership-welcome-features { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .42rem .85rem; margin: .7rem 0 .9rem; padding: 0; list-style: none; }.membership-welcome-features li { color: var(--text-on-light, #153d32); font-size: .9rem; line-height: 1.3; }.membership-welcome-features li::before { content: "✓"; margin-right: .45rem; color: #2f6a3e; font-weight: 850; }.membership-welcome-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; margin: 0; }.membership-welcome-actions > a { display: flex; }.membership-welcome-action { width: 100%; min-height: 42px; padding-block: .62rem; }.membership-welcome-actions > a .membership-welcome-action { height: 100%; } .membership-cancellation-card { border-color: rgba(154, 112, 28, .38); background: #fffaf0; }.membership-cancellation-card h2 { font-size: 1.05rem; line-height: 1.35; }.membership-cancellation-card p { margin: 0; }.membership-lifetime-note { padding-top: .75rem; border-top: 1px solid #eadbb7; } @media (max-width: 560px) { .membership-welcome-features { grid-template-columns: 1fr; }.membership-welcome-actions { grid-template-columns: 1fr; }.membership-welcome-actions > a,.membership-welcome-action { width: 100%; } } @keyframes membership-spin { to { transform: rotate(360deg); } }
.membership-current-plan-card,.membership-included-card,.membership-value-card,.membership-playtracker-card { color: var(--text-on-light, #153d32); background: #fffdf7; }
.membership-payment-warning { display: grid; gap: .55rem; padding: 1.05rem 1.15rem; border-color: rgba(154, 112, 28, .48); background: #fff8e8; color: var(--text-on-light, #153d32); }.membership-payment-warning .eyebrow { color: #855b12; }.membership-payment-warning h2 { margin: 0; color: var(--text-on-light, #153d32); font-size: 1.05rem; line-height: 1.35; }.membership-payment-warning p { margin: 0; color: var(--text-muted-on-light, #526459); }.membership-payment-warning .button { justify-self: start; margin-top: .15rem; }
.membership-current-plan-card h2,.membership-included-card h2,.membership-value-card h2 { margin: .18rem 0 .32rem; color: var(--text-on-light, #153d32); }
.membership-scheduled-change { border-color: rgba(47, 106, 62, .3); }.membership-scheduled-change p { margin: .45rem 0; color: var(--text-muted-on-light, #526459); }.membership-scheduled-change strong { color: var(--text-on-light, #153d32); }
.membership-current-plan-card { display: grid; grid-template-columns: minmax(180px, .8fr) minmax(300px, 1.4fr) auto; align-items: center; gap: 1.25rem; padding: 1.25rem; }
.membership-price { margin: 0; color: #1b4a31; font-size: 1.15rem; font-weight: 800; }
.membership-plan-facts,.membership-value-card dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem; margin: 0; }
.membership-plan-facts div,.membership-value-card dl div { display: grid; gap: .12rem; }.membership-plan-facts dt,.membership-value-card dt { color: var(--text-muted-on-light, #526459); font-size: .75rem; font-weight: 700; }.membership-plan-facts dd,.membership-value-card dd { margin: 0; color: var(--text-on-light, #153d32); font-weight: 800; }
.membership-manage-button { white-space: nowrap; }.membership-dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.16fr) minmax(300px, .84fr); gap: 1rem; align-items: start; }.membership-included-card { padding: 1.25rem; }.membership-feature-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem .9rem; margin: .9rem 0 1rem; padding: 0; list-style: none; }.membership-feature-list li { position: relative; padding-left: 1.2rem; color: var(--text-on-light, #153d32); font-size: .9rem; }.membership-feature-list li::before { position: absolute; left: 0; color: #4d7e27; content: "✓"; font-weight: 900; }.membership-exclusion-note,.membership-playtracker-note { margin: 0; padding-top: .8rem; border-top: 1px solid #dce6d4; color: var(--text-muted-on-light, #526459); font-size: .86rem; }.membership-value-stack { display: grid; gap: 1rem; }.membership-value-card { display: grid; gap: .8rem; padding: 1.15rem; }.membership-value-card p { margin: 0; color: var(--text-muted-on-light, #526459); }.membership-value-card dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }.membership-value-card .membership-saving { padding-top: .45rem; border-top: 1px solid #dce6d4; }.membership-saving dd { color: #376d20; }.membership-pro-card ul { display: grid; gap: .38rem; margin: 0; padding-left: 1.05rem; color: var(--text-muted-on-light, #526459); font-size: .88rem; }.membership-playtracker-card { display: grid; gap: .28rem; padding: .9rem 1.15rem; }.membership-playtracker-card strong { color: var(--text-on-light, #153d32); }.membership-playtracker-card span { color: var(--text-muted-on-light, #526459); font-size: .85rem; }.membership-playtracker-card a { color: #295f3e; font-size: .84rem; font-weight: 750; }
@media (max-width: 760px) { .membership-preview-layout { grid-template-columns: 1fr; } .membership-preview-allowances { grid-template-columns: 1fr; } .membership-preview-card .button,.membership-upgrade-card .button { width: 100%; min-height: 44px; } }
@media (max-width: 760px) { .membership-current-plan-card,.membership-dashboard-grid { grid-template-columns: 1fr; }.membership-current-plan-card { gap: .9rem; }.membership-plan-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); }.membership-current-plan-card .button,.membership-value-card .button { width: 100%; min-height: 44px; }.membership-feature-list { grid-template-columns: 1fr; }.membership-value-card dl { grid-template-columns: 1fr 1fr; } }
@media (max-width: 360px) { .membership-plan-facts { grid-template-columns: 1fr; }.membership-current-plan-card,.membership-included-card,.membership-value-card { padding: 1rem; } }
.settings-page { max-width: 1000px !important; margin-inline: auto !important; }.settings-test-label { display: inline-block; margin-bottom: -.55rem; }.settings-card { display: grid; gap: 1rem; padding: 1.2rem; color: var(--text-on-light, #153d32); background: #fffdf7; }.settings-card h2 { margin: 0; color: var(--text-on-light, #153d32); }.settings-details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; margin: 0; }.settings-details div { display: grid; gap: .16rem; }.settings-details dt { color: var(--text-muted-on-light, #526459); font-size: .76rem; font-weight: 750; }.settings-details dd { margin: 0; color: var(--text-on-light, #153d32); font-weight: 750; }.settings-details a { color: #295f3e; text-decoration: none; }.settings-details a:hover,.settings-details a:focus-visible { text-decoration: underline; }.settings-card-heading p { margin: .35rem 0 0; color: var(--text-muted-on-light, #526459); }.settings-preferences-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .9rem; }.settings-preferences-grid label { display: grid; gap: .35rem; color: var(--text-on-light, #153d32); font-size: .86rem; font-weight: 750; }.settings-preferences-grid input,.settings-preferences-grid select { width: 100%; min-height: 42px; border: 1px solid #bfd0bd; border-radius: 9px; padding: .55rem .65rem; background: #fff; color: var(--text-on-light, #153d32); font: inherit; }.settings-preferences-grid input:focus,.settings-preferences-grid select:focus { outline: 3px solid rgba(126, 183, 71, .3); border-color: #4d7e27; }.settings-actions-row { display: flex; justify-content: flex-start; }.settings-notice { margin: 0; color: var(--text-muted-on-light, #526459); font-size: .88rem; }.settings-account-actions { grid-template-columns: 1fr auto; align-items: center; }.settings-account-actions .button { min-width: 110px; }
.settings-support-card { gap: .8rem; }.settings-support-actions { display: flex; flex-wrap: wrap; gap: .65rem; }.settings-support-actions .button { min-height: 40px; text-decoration: none; }.settings-support-email { margin: -.1rem 0 0; color: var(--text-muted-on-light, #526459); font-size: .84rem; line-height: 1.45; overflow-wrap: anywhere; }.settings-support-email a { color: #295f3e; font-weight: 750; }
@media (max-width: 760px) { .settings-preferences-grid,.settings-details,.settings-account-actions { grid-template-columns: 1fr; }.settings-actions-row .button,.settings-account-actions .button,.settings-support-actions .button { width: 100%; min-height: 44px; }.settings-support-actions { display: grid; grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; } }

/* Public Football Hub shell: intentionally scoped away from product interiors. */
.marketing-header { display: flex; align-items: center; gap: 1rem; max-width: 1180px; margin: 0 auto; padding: .85rem clamp(1rem, 3vw, 2rem); color: #f7f5ec; }
.marketing-brand { display: grid; margin-right: auto; color: inherit; text-decoration: none; font-weight: 900; line-height: 1; }
.marketing-brand span { font-size: 1.05rem; letter-spacing: -.02em; }.marketing-brand small { margin-top: .25rem; color: #c7ff00; font-size: .62rem; letter-spacing: .12em; text-transform: uppercase; }
.marketing-header nav { display: flex; align-items: center; gap: .85rem; }.marketing-header nav a { color: #e2ebd8; font-size: .82rem; font-weight: 750; text-decoration: none; }.marketing-header nav a:hover,.marketing-header nav a:focus-visible,.marketing-header nav a.active { color: #c7ff00; }
.marketing-header-actions { display: flex; gap: .5rem; }.marketing-header-actions .button { min-height: 40px; padding-inline: .75rem; font-size: .78rem; }
.public-platform-page { padding-top: clamp(1rem, 3vw, 2rem); }.public-platform-page .platform-hero { color: #f7f5ec; }.public-platform-page .platform-hero .eyebrow { color: #c7ff00; }
.public-platform-page .platform-hero .button-row { margin-top: 1.35rem; }.platform-public-overview { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; margin-top: 1.25rem; }.platform-public-overview .card { background: #fff8e9; color: #153d32; }.platform-public-overview h2 { margin: .45rem 0; }.platform-final-cta { margin: 1.25rem 0 2rem; padding: clamp(1.25rem, 4vw, 2.5rem); border-radius: 1rem; background: #193f30; color: #fff8e9; }.platform-final-cta h2 { margin: 0 0 .5rem; }.platform-final-cta p { margin: 0 0 1rem; color: #dbe7d2; }
@media (max-width: 820px) { .marketing-header nav { display: none; }.marketing-header-actions .button { min-height: 44px; }.platform-public-overview { grid-template-columns: 1fr; }.public-platform-page .button-row { align-items: stretch; }.public-platform-page .button-row > a { flex: 1 1 11rem; }.public-platform-page .button-row .button { min-height: 44px; width: 100%; } }
@media (max-width: 420px) { .marketing-header { gap: .45rem; padding-inline: 1rem; }.marketing-header-actions { gap: .35rem; }.marketing-header-actions .button { padding-inline: .55rem; font-size: .72rem; }.marketing-brand { max-width: 6.2rem; } }

/* Shared public CTA variants; scoped to marketing so product shells retain their controls. */
.marketing-button { min-height: 44px; font-weight: 800; }.marketing-button--primary { border-color: #c7ff00 !important; background: #c7ff00 !important; color: #102d20 !important; box-shadow: 0 4px 0 #719924; }.marketing-button--primary:hover,.marketing-button--primary:focus-visible { border-color: #dcff52 !important; background: #dcff52 !important; color: #102d20 !important; }
.marketing-button--secondary-dark { border-color: rgba(222,239,197,.56) !important; background: rgba(8,45,32,.45) !important; color: #fffdf4 !important; }.marketing-button--secondary-dark:hover,.marketing-button--secondary-dark:focus-visible { border-color: #c7ff00 !important; background: rgba(255,255,255,.12) !important; color: #fff !important; }
.marketing-button--secondary-light { border-color: #52715d !important; background: #fffdf4 !important; color: #123d2a !important; }.marketing-button--secondary-light:hover,.marketing-button--secondary-light:focus-visible { border-color: #3f6b16 !important; background: #edf5e6 !important; color: #102d20 !important; }
.marketing-link { display: inline-flex; align-items: center; min-height: 44px; color: #164d35; font-weight: 800; text-decoration: underline; text-underline-offset: .2em; }.marketing-link:hover,.marketing-link:focus-visible { color: #204f18; outline: 3px solid #9fc958; outline-offset: 3px; border-radius: .25rem; }.marketing-link--light { color: #174d35; }
.marketing-brand img { display: block; width: 190px; max-width: 100%; height: 40px; object-fit: contain; object-position: left center; }.marketing-menu-toggle,.marketing-mobile-menu { display: none; }
.platform-product-card .platform-product-kicker,.platform-public-overview .eyebrow { color: #3f6b16; }
@media (max-width: 820px) { body.marketing-menu-open { overflow: hidden; }.marketing-header { position: sticky; top: 0; z-index: 40; background: #071f17; padding-top: max(.85rem, env(safe-area-inset-top)); }.marketing-header-actions { display: none; }.marketing-menu-toggle { display: grid; width: 44px; height: 44px; margin-left: auto; place-content: center; gap: 4px; border: 1px solid rgba(222,239,197,.56); border-radius: 12px; background: #123d2a; }.marketing-menu-toggle span { display: block; width: 20px; height: 2px; background: #fffdf4; }.marketing-mobile-menu { position: fixed; z-index: 39; inset: calc(70px + env(safe-area-inset-top)) 0 0; display: grid; align-content: start; gap: .75rem; overflow-y: auto; padding: 1rem max(1rem, env(safe-area-inset-right)) max(1.5rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left)); background: #071f17; }.marketing-mobile-menu > a { min-height: 44px; display: flex; align-items: center; color: #fffdf4; font-weight: 800; text-decoration: none; }.marketing-mobile-menu .button { width: 100%; }.marketing-brand img { width: 166px; height: 36px; } }

/* Wider desktop marketing canvas, with readable text measures retained inside it. */
.public-platform-page, .pricing-page { max-width: 1400px; padding-inline: clamp(1.25rem, 4vw, 4rem); }.marketing-header { max-width: 1400px; }.public-platform-page .platform-hero, .pricing-page .platform-hero { max-width: 780px; }.pricing-page .platform-hero { color: #fff8e9; padding-top: clamp(2.5rem, 6vw, 5rem); }.pricing-page .platform-hero .eyebrow { color: #c7ff00; }.pricing-page .platform-hero p { color: #dbe7d2; opacity: 1; }.platform-public-overview .card { display: flex; flex-direction: column; align-items: flex-start; }.platform-public-overview .card small { margin-top: .85rem; color: #496558; font-weight: 650; }.platform-public-overview .card strong { margin: .25rem 0 1rem; color: #204f18; }.platform-public-overview .card ul { margin: 0 0 1.2rem; padding-left: 1.2rem; line-height: 1.7; }.platform-price-card { min-height: 455px; position: relative; }.platform-price-card.is-featured { border: 2px solid #7ba83d; box-shadow: 0 14px 30px rgba(80,121,31,.2); }.platform-plan-badge { align-self: flex-start; margin-bottom: .65rem; padding: .28rem .55rem; border-radius: 999px; background: #3f6b16; color: #fffdf4; font-size: .7rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }.platform-price-card > p:not(.muted) { margin: 0 0 1rem; line-height: 1.5; }.platform-price-card .button[disabled] { opacity: 1; border-color: #9aab9b !important; background: #e4e9e0 !important; color: #526459 !important; cursor: not-allowed; }
.platform-testimonials { margin-top: clamp(2rem, 5vw, 4rem); padding: clamp(1.5rem, 4vw, 3rem); border-radius: 1rem; background: #193f30; color: #fff8e9; }.platform-testimonials-heading { max-width: 46rem; }.platform-testimonials-heading h2 { margin: 0; }.platform-testimonials-heading p { margin: .65rem 0 0; color: #dbe7d2; line-height: 1.6; }.platform-testimonials-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; gap: 1rem; margin-top: clamp(1.25rem, 3vw, 2rem); }.platform-testimonial-card { padding: clamp(1rem, 2vw, 1.35rem); background: #fff8e9; color: #153d32; }.platform-testimonial-quote-mark { display: block; height: 1.45rem; color: #5b7f1f; font-family: Georgia, serif; font-size: 2.8rem; font-weight: 800; line-height: 1; }.platform-testimonial-card blockquote { margin: .25rem 0 .9rem; color: var(--text-on-light); font-size: 1rem; line-height: 1.6; }.platform-testimonial-card footer { color: var(--text-muted-on-light); font-size: .875rem; font-weight: 800; }
@media (min-width: 1200px) { .platform-products { gap: 1.75rem; }.platform-product-card { min-height: 410px; padding: clamp(1.5rem, 2.5vw, 2.25rem); }.platform-pricing-grid { gap: 1.25rem; } }
@media (max-width: 960px) { .platform-testimonials-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .platform-testimonials { padding: 1.25rem; }.platform-testimonials-grid { grid-template-columns: 1fr; } }

.platform-price-card.is-primary { background: #f1f8e6; border-color: #5c8d28; box-shadow: 0 18px 38px rgba(65,109,25,.28); transform: translateY(-.35rem); }.platform-price-card.is-primary .platform-plan-badge { background: #234e2f; }.platform-price-card.is-primary .button { margin-top: .3rem; }

/* Launch landing page: public marketing surfaces only. */
.public-platform-page { display: grid; gap: clamp(2.5rem, 6vw, 5rem); padding-bottom: clamp(2.5rem, 6vw, 5rem); scroll-behavior: smooth; }
.public-platform-page .platform-hero { max-width: none; padding: clamp(1rem, 3vw, 2rem) 0 0; }
.platform-hero--product-led { display: grid; grid-template-columns: minmax(0, .88fr) minmax(360px, 1.12fr); align-items: center; gap: clamp(1.5rem, 5vw, 5rem); }
.platform-hero-copy { max-width: 44rem; }.platform-hero-copy > p { max-width: 38rem; color: #dbe7d2; line-height: 1.6; opacity: 1; }
.platform-hero-product-image,.platform-product-screenshot { display: block; width: 100%; height: auto; border: 1px solid rgba(235,244,219,.38); border-radius: 1rem; background: #fff8e9; box-shadow: 0 20px 44px rgba(0,0,0,.24); }.platform-hero-product-image { max-height: 420px; object-fit: cover; object-position: center top; }
.platform-section-heading { max-width: 46rem; }.platform-section-heading h2 { margin: .32rem 0 .6rem; color: #fff8e9; font-size: clamp(1.75rem, 3vw, 2.65rem); line-height: 1.12; }.platform-section-heading p { margin: 0; color: #dbe7d2; line-height: 1.6; }
.platform-section-kicker { display: inline-block; color: #c7ff00; font-size: .76rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.platform-workspace-section { scroll-margin-top: 1rem; }.platform-tool-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; gap: 1rem; margin-top: clamp(1.25rem, 3vw, 2rem); }.platform-tool-card { display: grid; gap: .7rem; padding: clamp(1.1rem, 2vw, 1.5rem); background: #fff8e9; color: var(--text-on-light, #153d32); }.platform-tool-card h3,.platform-more-card h3,.platform-plan-teaser-card h3 { margin: 0; color: var(--text-on-light, #153d32); font-size: 1.15rem; }.platform-tool-card p,.platform-more-card p,.platform-plan-teaser-card p { margin: 0; color: var(--text-muted-on-light, #496558); line-height: 1.55; }.platform-tool-card > span:not(.platform-plan-label) { color: #315b48; font-size: .82rem; font-weight: 800; line-height: 1.45; }.platform-tool-card--pro { background: #eef6df; border-color: #a9c977; }.platform-plan-label { color: #315b1d; font-size: .72rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.platform-showcase { display: grid; grid-template-columns: minmax(260px, .78fr) minmax(0, 1.22fr); align-items: center; gap: clamp(1.5rem, 5vw, 5rem); }.platform-showcase--reverse { grid-template-columns: minmax(0, 1.22fr) minmax(260px, .78fr); }.platform-showcase-copy { max-width: 34rem; }.platform-showcase-copy h2 { margin: .35rem 0 .7rem; color: #fff8e9; font-size: clamp(1.7rem, 3vw, 2.55rem); line-height: 1.12; }.platform-showcase-copy p,.platform-showcase-copy li { color: #dbe7d2; line-height: 1.6; }.platform-showcase-copy p { margin: 0; }.platform-showcase-copy ul { display: grid; gap: .4rem; margin: 1rem 0; padding-left: 1.2rem; }
.platform-testimonials { margin-top: 0; }.platform-workflow { display: grid; gap: 1.3rem; }.platform-workflow ol { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .85rem; margin: 0; padding: 0; list-style: none; }.platform-workflow li { padding: 1rem 0 0; border-top: 1px solid rgba(226,239,210,.38); }.platform-workflow li > span { color: #c7ff00; font-size: .75rem; font-weight: 900; letter-spacing: .08em; }.platform-workflow h3 { margin: .55rem 0 .35rem; color: #fff8e9; font-size: 1rem; text-transform: uppercase; }.platform-workflow p { margin: 0; color: #dbe7d2; font-size: .92rem; line-height: 1.55; }
.platform-playtracker-companion { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: clamp(1.25rem, 3vw, 2.25rem); border: 1px solid rgba(226,239,210,.28); border-radius: 1rem; background: #123d2a; }.platform-playtracker-companion > div { max-width: 46rem; }.platform-playtracker-companion h2 { margin: .35rem 0 .55rem; color: #fff8e9; }.platform-playtracker-companion p { margin: 0; color: #dbe7d2; line-height: 1.6; }.platform-playtracker-companion a { flex: 0 0 auto; }
.platform-public-overview { grid-template-columns: 1fr; margin-top: 0; }.platform-preview-card { display: flex !important; align-items: center !important; justify-content: space-between; gap: clamp(1.25rem, 4vw, 3rem); padding: clamp(1.25rem, 3vw, 2rem); }.platform-preview-card > div:first-child { max-width: 48rem; }.platform-preview-card h2 { margin: .35rem 0; }.platform-preview-card .muted { margin-bottom: .75rem; }.platform-preview-allowances { margin: 0 0 .75rem; color: var(--text-on-light, #153d32); font-weight: 800; line-height: 1.5; }.platform-preview-allowances span { color: #5b7f1f; padding-inline: .25rem; }.platform-preview-price { margin: 0 0 .65rem; color: var(--text-on-light, #153d32); font-size: 1.8rem; font-weight: 900; }.platform-preview-price small { margin-left: .3rem; color: var(--text-muted-on-light, #496558); font-size: .85rem; font-weight: 700; }.platform-preview-action { flex: 0 0 auto; }.platform-preview-card .button { margin-top: 0; white-space: nowrap; }
.platform-more { display: grid; gap: 1.25rem; }.platform-more-grid,.platform-plan-teaser-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 1rem; }.platform-more-card,.platform-plan-teaser-card { display: grid; align-items: start; gap: .75rem; padding: clamp(1.1rem, 2.5vw, 1.6rem); background: #fff8e9; color: var(--text-on-light, #153d32); }.platform-more-card .marketing-link { min-height: 0; justify-self: start; }.platform-plan-teaser { display: grid; gap: 1.25rem; padding: clamp(1.25rem, 4vw, 2.5rem); border-radius: 1rem; background: #193f30; }.platform-plan-teaser-card strong { color: #315b1d; font-size: 1.2rem; }.platform-plan-teaser-card--pro { border-color: #a9c977; background: #eef6df; }.platform-plan-teaser > a { justify-self: start; }
.marketing-link--on-dark { color: #f7f5ec; }.marketing-link--on-dark:hover,.marketing-link--on-dark:focus-visible { color: #c7ff00; }
.marketing-header nav { gap: .72rem; }.marketing-header nav a { white-space: nowrap; }
@media (max-width: 1080px) { .platform-hero--product-led { grid-template-columns: minmax(0, 1fr) minmax(340px, 1fr); gap: 2rem; }.platform-tool-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }.platform-tool-card--pro { grid-column: span 2; }.platform-workflow ol { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 820px) { .public-platform-page { gap: 2.5rem; }.platform-hero--product-led,.platform-showcase,.platform-showcase--reverse { grid-template-columns: 1fr; }.platform-showcase--reverse .platform-product-screenshot { order: 2; }.platform-showcase--reverse .platform-showcase-copy { order: 1; }.platform-playtracker-companion { align-items: flex-start; flex-direction: column; }.platform-playtracker-companion .button { min-height: 44px; }.marketing-header nav { gap: .85rem; } }
@media (max-width: 640px) { .platform-tool-grid,.platform-more-grid,.platform-plan-teaser-grid,.platform-workflow ol { grid-template-columns: 1fr; }.platform-tool-card--pro { grid-column: auto; }.platform-hero-product-image { max-height: none; border-radius: .75rem; }.platform-showcase-copy .marketing-link { min-height: 44px; }.platform-preview-card { align-items: flex-start !important; flex-direction: column; }.platform-preview-action { width: 100%; }.platform-preview-action .button { width: 100%; min-height: 44px; }.platform-preview-price { font-size: 1.6rem; } }
@media (min-width: 641px) { .platform-tool-grid,.platform-testimonials-grid,.platform-more-grid,.platform-plan-teaser-grid { align-items: stretch; }.platform-tool-card,.platform-testimonial-card,.platform-more-card,.platform-plan-teaser-card { display: flex; flex-direction: column; height: 100%; }.platform-tool-card > span:not(.platform-plan-label),.platform-testimonial-card footer,.platform-more-card .marketing-link { margin-top: auto; }.platform-tool-card h3,.platform-more-card h3,.platform-plan-teaser-card h3 { line-height: 1.3; }.platform-testimonial-card blockquote { margin-bottom: 1rem; } }

/* Authoritative public-marketing width: override the app's 72rem page shell only here. */
.page-shell.marketing-container { width: 100%; max-width: none; margin: 0; padding: 0; }
.marketing-container > .marketing-header, .marketing-container > .marketing-page { width: min(calc(100% - 48px), 1400px); max-width: none; margin-inline: auto; box-sizing: border-box; }
.marketing-container > .public-platform-page, .marketing-container > .pricing-page { max-width: none; padding-inline: 0; }
@media (max-width: 767px) { .marketing-container > .marketing-header, .marketing-container > .marketing-page { width: min(calc(100% - 32px), 1400px); } }

/* Benefit-led public homepage */
.public-platform-page--benefit-led { gap: clamp(2rem, 5vw, 4rem); }
.platform-hero-microcopy { display: block; margin-top: .85rem; color: #dbe7d2; font-size: .85rem; font-weight: 700; }
.platform-hero-microcopy span { color: #c7ff00; padding-inline: .25rem; }
.platform-patterns { display: grid; gap: clamp(1.3rem, 3vw, 2rem); padding: clamp(1.25rem, 3vw, 2.25rem); border: 1px solid rgba(226,239,210,.28); border-radius: 1rem; background: #123d2a; }
.platform-pattern-workflow { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .75rem; margin: 0; padding: 0; list-style: none; }
.platform-pattern-workflow li { position: relative; padding: 1rem 1rem 1rem 0; border-top: 1px solid rgba(226,239,210,.38); }
.platform-pattern-workflow li:not(:last-child)::after { position: absolute; top: 1rem; right: -.2rem; color: #c7ff00; content: "→"; font-weight: 900; }
.platform-pattern-workflow span { color: #c7ff00; font-size: .75rem; font-weight: 900; letter-spacing: .08em; }
.platform-pattern-workflow h3 { margin: .45rem 0 .35rem; color: #fff8e9; font-size: 1rem; }
.platform-pattern-workflow p { margin: 0; color: #dbe7d2; font-size: .9rem; line-height: 1.5; }
.platform-outcomes-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.platform-session-showcase { display: grid; grid-template-columns: minmax(280px, .7fr) minmax(0, 1.3fr); align-items: center; gap: clamp(1.5rem, 5vw, 4rem); padding: clamp(1.25rem, 3vw, 2.25rem); border: 1px solid rgba(226,239,210,.28); border-radius: 1rem; background: #123d2a; }
.platform-session-showcase-copy { max-width: 34rem; }.platform-session-showcase-copy h2 { margin: .35rem 0 .7rem; color: #fff8e9; font-size: clamp(1.7rem, 3vw, 2.55rem); line-height: 1.12; }.platform-session-showcase-copy p { margin: 0; color: #dbe7d2; line-height: 1.6; }.platform-session-showcase-copy strong { display: block; margin-top: 1rem; color: #c7ff00; font-size: 1.04rem; }
.platform-session-showcase-image { display: block; width: 100%; border: 1px solid rgba(235,244,219,.38); border-radius: .75rem; background: #fff8e9; box-shadow: 0 16px 36px rgba(0,0,0,.25); }
.platform-secondary-copy { margin-top: .8rem !important; font-size: .92rem; font-weight: 700; }
.platform-preview-allowances { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .45rem 1.25rem; margin: 0 0 .75rem; padding: 0; color: var(--text-on-light, #153d32); font-weight: 800; line-height: 1.5; list-style: none; }
.platform-preview-allowances li::before { margin-right: .45rem; color: #5b7f1f; content: "✓"; }

@media (max-width: 1080px) { .platform-pattern-workflow { grid-template-columns: repeat(3, minmax(0, 1fr)); } .platform-pattern-workflow li::after { display: none; } }
@media (max-width: 820px) { .platform-pattern-workflow { grid-template-columns: repeat(2, minmax(0, 1fr)); } .platform-session-showcase { grid-template-columns: 1fr; } }
@media (max-width: 640px) { .platform-pattern-workflow,.platform-preview-allowances { grid-template-columns: 1fr; } .platform-pattern-workflow li { padding-right: 0; } }

/* Coaching courses: isolated from the session builder and library card styles. */
.course-page { max-width: 1200px; }.course-page-heading { max-width: 44rem; }.course-page-heading h1,.course-hero h1,.lesson-heading h1 { margin: .3rem 0 .6rem; }.course-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }.course-card { display: flex; flex-direction: column; overflow: hidden; padding: 0; }.course-card-image { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; background: #dfe9dc; }.course-card-image-placeholder { background: linear-gradient(135deg, #1b5139, #80a944); }.course-card-content { display: flex; flex: 1; flex-direction: column; align-items: flex-start; gap: .75rem; padding: 1.15rem; }.course-card-content h2 { margin: 0; font-size: 1.15rem; }.course-card-content p { flex: 1; margin: 0; color: var(--text-muted-on-light, #496558); }.course-card-content small { color: var(--text-muted-on-light, #496558); }.course-card-content a { margin-top: .25rem; }.course-access-badge { display: inline-flex; padding: .25rem .5rem; border-radius: 999px; background: #dceecf; color: #214b22; font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }.course-access-badge.is-locked { background: #eee5cf; color: #694c19; }.course-hero { display: grid; grid-template-columns: minmax(220px, .8fr) minmax(0, 1.4fr); gap: clamp(1rem, 3vw, 2rem); align-items: center; }.course-hero .course-card-image { border-radius: .9rem; }.course-hero p { max-width: 55rem; }.course-curriculum { padding: clamp(1rem, 3vw, 1.75rem); }.course-curriculum h2 { margin-top: 0; }.course-curriculum ol { display: grid; gap: .7rem; padding-left: 1.4rem; }.course-curriculum li a { display: grid; gap: .22rem; color: inherit; text-decoration: none; }.course-curriculum li a:hover strong { text-decoration: underline; }.course-curriculum li span { color: var(--text-muted-on-light, #496558); }.lesson-heading { max-width: 52rem; }.course-video { display: block; width: 100%; max-width: 1000px; border-radius: .85rem; background: #081d16; aspect-ratio: 16 / 9; }
/* Course headings and course heroes sit directly on the dark Workspace surface. */
.workspace-main .course-page > .course-page-heading,.workspace-main .course-page > .course-hero,.workspace-main .course-page > .lesson-heading,.workspace-main .course-page > a,.workspace-main .course-page > p { color: var(--workspace-on-dark); }.workspace-main .course-page > .course-page-heading h1,.workspace-main .course-page > .course-hero h1,.workspace-main .course-page > .lesson-heading h1 { color: var(--workspace-on-dark); }.workspace-main .course-page > .course-page-heading p,.workspace-main .course-page > .course-hero p,.workspace-main .course-page > .lesson-heading p,.workspace-main .course-page > .course-hero .muted { color: var(--workspace-on-dark-muted); opacity: 1; }.workspace-main .course-page > a { color: var(--workspace-on-dark); font-weight: 750; text-underline-offset: .18em; }.workspace-main .course-page > a:hover,.workspace-main .course-page > a:focus-visible { color: var(--workspace-accent); }.workspace-main .course-hero .button-secondary { border-color: rgba(227,245,190,.62); background: transparent; color: var(--workspace-on-dark); }.workspace-main .course-hero .button-secondary:hover,.workspace-main .course-hero .button-secondary:focus-visible { border-color: var(--workspace-accent); background: rgba(255,255,255,.12); color: var(--workspace-on-dark); }.workspace-main .course-hero .button-secondary:disabled { border-color: rgba(227,245,190,.3); color: var(--workspace-on-dark-muted); opacity: 1; }
.resource-library-page { max-width: 1240px; }.resource-library-controls { display: grid; gap: .85rem; }.resource-library-tabs { display: flex; gap: .35rem; overflow-x: auto; padding-bottom: .2rem; }.resource-library-tabs button { min-height: 42px; flex: 0 0 auto; border: 1px solid rgba(226,239,210,.35); border-radius: .65rem; background: #123d2a; color: #f8f4e9; padding: .55rem .9rem; font-weight: 800; }.resource-library-tabs button.is-active { border-color: #c7ff00; background: #c7ff00; color: #153d32; }.resource-library-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }.resource-library-card { display: flex; flex-direction: column; overflow: hidden; padding: 0; background: #fff8e9; color: var(--text-on-light,#153d32); }.resource-library-thumb { width: 100%; aspect-ratio: 16/9; object-fit: cover; background: #dfe9dc; }.resource-library-card-body { display: flex; flex: 1; flex-direction: column; align-items: flex-start; gap: .55rem; padding: 1rem; }.resource-library-card h3 { margin: 0; color: var(--text-on-light,#153d32); }.resource-library-card p,.resource-library-card small { margin: 0; color: var(--text-muted-on-light,#496558); }.resource-library-label { color: #315a1f; font-size: .7rem; font-weight: 900; letter-spacing: .08em; }.resource-library-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .25rem; }.resource-tactical-sections { display: grid; gap: 2rem; }.resource-tactical-sections h2 { margin-bottom: .25rem; }.resource-detail-thumb { display: block; width: min(100%,600px); border-radius: .75rem; }

/* Semantic surface rules keep dark workspace copy separate from light cards. */
.workspace-dark-surface { color: var(--workspace-on-dark, #f8f4e9); }
.workspace-dark-surface .workspace-surface-heading h1,
.workspace-dark-surface .workspace-surface-section > h2 { color: var(--workspace-on-dark, #f8f4e9); }
.workspace-dark-surface .workspace-surface-heading > p,
.workspace-dark-surface .workspace-surface-section > p { color: var(--workspace-on-dark-muted, #dbe7d2); }
.workspace-dark-surface > p { color: var(--workspace-on-dark-muted, #dbe7d2); }
.workspace-entitlement-notice { position: fixed; z-index: 50; right: 1rem; bottom: 1rem; max-width: min(32rem, calc(100vw - 2rem)); padding: .7rem .85rem; border: 1px solid rgba(215,238,168,.42); border-radius: .7rem; background: #123d2a; color: #f8f4e9; box-shadow: 0 8px 20px rgba(0,0,0,.22); font-size: .84rem; }.workspace-entitlement-notice button { margin-left: .45rem; border: 0; background: transparent; color: #c7ff00; font: inherit; font-weight: 800; text-decoration: underline; cursor: pointer; }

/* The app-intro card is a transparent dark wrapper; its light descendants must reset text explicitly. */
.workspace-main .app-intro-card .manual-session-details,
.workspace-main .app-intro-card .manual-session-phase,
.workspace-main .app-intro-card .manual-draft-drill-card,
.workspace-main .app-intro-card .planning-card,
.workspace-main .app-intro-card .setup-summary-card,
.workspace-main .app-intro-card .session-empty-state,
.workspace-main .drill-modal,
.workspace-main .drill-alternative-card { color: var(--text-on-light); }
.workspace-main .app-intro-card .manual-session-details h1,
.workspace-main .app-intro-card .manual-session-details h2,
.workspace-main .app-intro-card .manual-session-details h3,
.workspace-main .app-intro-card .manual-session-phase h1,
.workspace-main .app-intro-card .manual-session-phase h2,
.workspace-main .app-intro-card .manual-session-phase h3,
.workspace-main .app-intro-card .manual-session-phase strong,
.workspace-main .app-intro-card .manual-draft-drill-card strong,
.workspace-main .app-intro-card .manual-draft-drill-card label { color: var(--text-on-light); }
.workspace-main .app-intro-card .manual-session-details p,
.workspace-main .app-intro-card .manual-session-details li,
.workspace-main .app-intro-card .manual-session-phase p,
.workspace-main .app-intro-card .manual-session-phase li,
.workspace-main .app-intro-card .manual-draft-drill-card p,
.workspace-main .app-intro-card .manual-draft-drill-card span,
.workspace-main .app-intro-card .manual-draft-drill-card label,
.workspace-main .app-intro-card .manual-phase-empty,
.workspace-main .app-intro-card .session-empty-state p,
.workspace-main .app-intro-card .session-empty-state .muted { color: var(--text-muted-on-light); }
.workspace-main .app-intro-card .manual-session-phase .dashboard-panel-label { color: var(--workspace-accent-readable); }
.workspace-main .app-intro-card .manual-session-details .muted,
.workspace-main .app-intro-card .manual-session-phase .muted,
.workspace-main .app-intro-card .manual-draft-drill-card .muted,
.workspace-main .drill-modal .muted { color: var(--text-muted-on-light); }
.workspace-main .app-intro-card .manual-session-details .session-pdf-error {
  margin: .15rem 0 0;
  color: var(--text-on-light);
  font-size: .86rem;
  font-weight: 700;
}
.workspace-main .drill-alternative-card,
.workspace-main .drill-alternative-card h1,
.workspace-main .drill-alternative-card h2,
.workspace-main .drill-alternative-card h3,
.workspace-main .drill-alternative-card strong,
.workspace-main .drill-alternative-card .dashboard-panel-label { color: var(--text-on-light); }
.workspace-main .drill-alternative-card p,
.workspace-main .drill-alternative-card span,
.workspace-main .drill-alternative-card .muted { color: var(--text-muted-on-light); }
.workspace-main .drill-alternative-card .ai-btn-secondary { border-color: #557b62; background: #fffdf7; color: #1c462f; }
.workspace-main .drill-alternative-card .ai-btn-primary { color: var(--workspace-accent-on-fill); }
.session-alternative-card { display: grid; gap: 0; overflow: hidden; padding: 0; }
.session-alternative-media { overflow: hidden; aspect-ratio: 16 / 9; border-bottom: 1px solid var(--workspace-border-light, #dce5dc); background: #f7fbf5; }
.session-alternative-image { display: block; width: 100%; height: 100%; min-height: 0; object-fit: contain; }
.session-alternative-media .drill-image-placeholder { min-height: 0; }
.session-alternative-content { display: grid; gap: .55rem; padding: .9rem 1rem 1rem; }
.session-alternative-content > strong { line-height: 1.3; }
.session-alternative-content > span { font-size: .84rem; }
.session-alternative-content > p { margin: 0; line-height: 1.45; }
.session-alternative-content .button { justify-self: start; margin-top: .1rem; }
@media (max-width: 560px) { .session-alternatives-modal { width: 100%; padding: 1rem; } .session-alternative-content .button { width: 100%; min-height: 44px; } }
.workspace-main .app-intro-card .manual-session-details .ai-btn-secondary,
.workspace-main .app-intro-card .manual-session-phase .ai-btn-secondary,
.workspace-main .app-intro-card .manual-draft-drill-card .ai-btn-secondary,
.workspace-main .drill-modal .ai-btn-secondary { border-color: #557b62; background: #fffdf7; color: #1c462f; }
.workspace-main .app-intro-card .manual-session-details .ai-btn-secondary:hover,
.workspace-main .app-intro-card .manual-session-details .ai-btn-secondary:focus-visible,
.workspace-main .app-intro-card .manual-session-phase .ai-btn-secondary:hover,
.workspace-main .app-intro-card .manual-session-phase .ai-btn-secondary:focus-visible,
.workspace-main .app-intro-card .manual-draft-drill-card .ai-btn-secondary:hover,
.workspace-main .app-intro-card .manual-draft-drill-card .ai-btn-secondary:focus-visible,
.workspace-main .drill-modal .ai-btn-secondary:hover,
.workspace-main .drill-modal .ai-btn-secondary:focus-visible { border-color: #3f6b16; background: #e6eddc; color: #123524; }
.workspace-main .app-intro-card .ai-btn-primary { color: var(--workspace-accent-on-fill); }
.workspace-main .app-intro-card .ai-btn-primary:disabled,
.workspace-main .app-intro-card .ai-btn-secondary:disabled { border-color: #c5d0c4; background: #e1e7df; color: #526459; }
.resource-detail-card { color: var(--text-on-light, #153d32); }
.resource-detail-card h1,
.resource-detail-card p { color: var(--text-on-light, #153d32); }
.resource-detail-card .muted { color: var(--text-muted-on-light, #496558); }

/* Sidebar membership surfaces establish their own semantic text context. */
.workspace-sidebar .workspace-preview-card,
.workspace-mobile-drawer .workspace-preview-card {
  display: grid;
  gap: 8px;
  margin: auto 1px 0;
  padding: 11px;
  border-color: rgba(20,58,42,.18);
  border-radius: 15px;
  background: var(--workspace-card);
  color: var(--text-on-light);
}
.workspace-preview-title {
  color: var(--text-on-light);
  font-size: .7rem;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.workspace-preview-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: baseline;
  justify-content: start;
  gap: 7px;
  color: var(--text-muted-on-light);
  font-size: .76rem;
}
.workspace-preview-row strong {
  color: var(--text-on-light);
  font-size: .88rem;
  font-weight: 900;
  line-height: 1;
  text-align: left;
}
.workspace-preview-row span { color: var(--text-muted-on-light); }
.workspace-preview-upgrade { border-color: #c7ff00; background: #c7ff00; color: var(--workspace-accent-on-fill); }
.workspace-preview-upgrade:hover,.workspace-preview-upgrade:focus-visible { background: #dcff54; color: var(--workspace-accent-on-fill); }
.workspace-membership-status { color: var(--workspace-on-dark); }
.session-composer-actions { justify-content: flex-end; flex-wrap: wrap; }
.match-analysis-team-select { max-width: 24rem; margin-top: .25rem; }
.match-analysis-helper { margin: .25rem 0 0; }
.workspace-main .match-analysis-card { color: var(--text-on-light); background: var(--workspace-card); }
.workspace-main .match-analysis-card h3,
.workspace-main .match-analysis-card strong,
.workspace-main .match-analysis-card p { color: var(--text-on-light); }
.match-analysis-priority { display: grid; gap: .2rem; padding: .7rem 0; border-top: 1px solid var(--workspace-border-light, #dce5dc); }
.match-analysis-priority small { color: var(--text-muted-on-light); font-weight: 700; }
.match-analysis-priority p { margin: 0; color: var(--text-muted-on-light) !important; }
.match-analysis-modal { max-width: 42rem; max-height: min(82vh, 48rem); overflow-y: auto; }
.match-analysis-loading { display: flex; align-items: center; gap: .75rem; min-height: 4.5rem; color: var(--text-on-light); }
.match-analysis-loading p { margin: 0; color: var(--text-on-light); }
.match-analysis-result { color: var(--text-on-light); }
.match-analysis-result p { color: var(--text-muted-on-light); }
@media (max-width: 620px) { .session-composer-actions,.session-composer-actions .button { width: 100%; }.session-composer-actions { display: grid; grid-template-columns: 1fr; }.match-analysis-team-select { max-width: none; } }
@media (max-width: 900px) { .resource-library-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 620px) { .resource-library-page { padding-inline: 1rem; }.resource-library-grid { grid-template-columns: 1fr; }.resource-library-actions,.resource-library-actions a,.resource-library-actions .button { width: 100%; }.resource-library-tabs { margin-inline: -1rem; padding-inline: 1rem; } }
@media (max-width: 1050px) { .course-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 680px) { .course-page { padding-inline: 1rem; }.course-grid { grid-template-columns: 1fr; gap: 1rem; }.course-hero { grid-template-columns: 1fr; }.course-hero .course-card-image { max-width: 560px; }.course-card-content .button { width: 100%; min-height: 44px; }.course-card-content a { width: 100%; }.course-curriculum { padding: 1rem; }.course-video { border-radius: .55rem; } }
.analytics-consent { position: fixed; z-index: 1000; right: 16px; bottom: 16px; max-width: 420px; padding: 16px; border-radius: 12px; background: #fff; color: #17231c; box-shadow: 0 12px 40px rgba(0,0,0,.24); }
.analytics-consent p { margin: 0 0 12px; }.analytics-consent div { display: flex; gap: 8px; }.analytics-consent button { padding: 8px 12px; border-radius: 6px; border: 1px solid #123524; background: #fff; color: #123524; font: inherit; cursor: pointer; }.analytics-consent button:first-child { background: #123524; color: #fff; }.analytics-consent .analytics-consent-close { margin-top: 10px; }
/* Season Planner */
.season-planner { max-width: 1180px; }
.season-access-card, .season-empty { padding: clamp(1.5rem, 4vw, 3.5rem); max-width: 740px; }
.season-empty h2, .season-access-card h2 { font-size: clamp(1.7rem, 4vw, 2.5rem); margin: .35rem 0 .75rem; }
.season-plan-top, .season-phase-heading, .season-block-heading, .season-form-heading { display: flex; justify-content: space-between; gap: 1rem; align-items: flex-start; }
.season-plan-top h2 { margin: .2rem 0; font-size: clamp(1.65rem, 3vw, 2.35rem); }
.season-plan-top p { margin: .35rem 0 0; max-width: 660px; }
.season-top-actions, .season-row-actions { display: flex; flex-wrap: wrap; gap: .45rem; align-items: center; }
.season-select { min-width: 180px; }
.season-summary { display: grid; grid-template-columns: repeat(6, minmax(100px, 1fr)); gap: .7rem; }
.season-summary > div { padding: 1rem; border-radius: 14px; background: var(--surface, #fffdf5); border: 1px solid var(--border, #d8ddc9); }
.season-summary strong, .season-summary span { display: block; }.season-summary strong { font-size: 1.25rem; }.season-summary span { font-size: .76rem; margin-top: .25rem; opacity: .75; }
.season-view-toggle { display: flex; gap: .25rem; width: fit-content; padding: .25rem; border-radius: 12px; background: rgba(27, 62, 47, .1); }.season-view-toggle .button { padding: .5rem .85rem; }.season-view-toggle .is-selected { background: var(--forest, #183e2e); color: white; }
.season-phase { padding: 0; overflow: hidden; }.season-phase-heading { padding: 1rem; background: rgba(25, 70, 48, .06); }.season-collapse { display: flex; text-align: left; gap: .85rem; border: 0; background: transparent; color: inherit; padding: 0; flex: 1; }.season-collapse > span { font-size: 1.7rem; line-height: 1; color: var(--lime, #b7d83d); }.season-collapse strong, .season-collapse small { display: block; }.season-collapse strong { font-size: 1.15rem; }.season-collapse small { margin-top: .25rem; }
.season-phase-content { padding: 1rem; display: grid; gap: 1rem; }.season-block { border: 1px solid var(--border, #d8ddc9); border-radius: 14px; padding: 1rem; background: rgba(255,255,255,.38); }.season-block h3 { margin: .35rem 0; }.season-block p { margin: 0; }.season-status, .season-item-status { font-size: .7rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }.season-status { color: var(--forest, #183e2e); }
.season-objectives { display: flex; align-items: center; flex-wrap: wrap; gap: .45rem; padding: .85rem 0; }.season-objectives > strong { margin-right: .15rem; }.season-objective { display: inline-flex; align-items: center; gap: .25rem; padding: .3rem .55rem; border-radius: 999px; background: #e8f1c9; font-size: .82rem; }.season-objective button { border: 0; background: none; font: inherit; cursor: pointer; }.season-objectives form { display: flex; gap: .2rem; }.season-objectives input { width: 130px; border: 1px solid var(--border, #d8ddc9); border-radius: 7px; padding: .35rem .45rem; }.season-objectives form button { border: 0; background: transparent; color: var(--forest, #183e2e); font-weight: 700; cursor: pointer; }
.season-items { display: grid; gap: .5rem; }.season-item { padding: .8rem; display: flex; justify-content: space-between; gap: .7rem; border-radius: 10px; background: rgba(28, 71, 50, .06); }.season-item > div { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }.season-item strong { display: block; }.season-item small { opacity: .75; }.season-item > div:first-child { align-items: baseline; }.season-item.is-cancelled { opacity: .63; }.season-item.is-cancelled strong { text-decoration: line-through; }.season-item-status { color: var(--forest, #183e2e); }.status-cancelled { color: #a04b3c; }.season-status-select, .season-item-status-select { width: auto; padding: .35rem; font-size: .8rem; }
.season-form { padding: 1.25rem; }.season-form h2 { margin: .2rem 0 0; }.season-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .9rem; margin: 1rem 0; }.season-form-grid .field:nth-child(3), .season-form-grid .field:nth-child(4) { grid-column: span 2; }.season-form textarea { min-height: 74px; resize: vertical; }.season-modal { width: min(560px, calc(100vw - 2rem)); display: grid; gap: .9rem; }.season-modal h2 { margin: 0; }.season-error { padding: .75rem 1rem; color: #872c2c; background: #fee9e6; border-radius: 10px; }.season-calendar-empty { max-width: 610px; padding: 2rem; }.season-calendar { display: grid; gap: .45rem; }.season-calendar h2 { margin-top: 0; }.season-calendar > div { display: grid; grid-template-columns: 145px 90px 1fr auto; gap: .65rem; align-items: center; padding: .8rem; background: rgba(28, 71, 50, .06); border-radius: 9px; }.season-calendar time { font-weight: 700; }.season-calendar span { font-size: .75rem; text-transform: uppercase; }.season-calendar small { white-space: nowrap; }
@media (max-width: 760px) { .season-plan-top, .season-phase-heading, .season-block-heading, .season-item { flex-direction: column; }.season-top-actions, .season-row-actions { width: 100%; }.season-top-actions .season-select { flex: 1; }.season-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }.season-form-grid { grid-template-columns: 1fr; }.season-form-grid .field:nth-child(3), .season-form-grid .field:nth-child(4) { grid-column: auto; }.season-row-actions .button { padding: .4rem .55rem; }.season-item > div:last-child { width: 100%; }.season-calendar > div { grid-template-columns: 1fr 1fr; }.season-calendar strong { grid-column: span 2; } }

/* Season Planner: accessible contrast and a content-first hierarchy. */
.season-capacity { display: none; }
.season-planner { color: #163526; }.season-plan-top,.season-priorities,.season-phase,.season-block,.season-form { color: #163526; background: #fffdf5; border-color: #c7d5c7; }.season-plan-top p,.season-block p { color: #385647; }.season-priorities { display:flex; flex-wrap:wrap; align-items:center; gap:.55rem; padding:1rem 1.1rem; border:1px solid #c7d5c7; border-radius:14px; }.season-priorities > div { margin-right:auto; }.season-priorities h3 { margin:.15rem 0 0; font-size:1rem; }.season-priorities form { display:flex; gap:.4rem; flex:1 1 19rem; }.season-priorities input { min-width:0; flex:1; border:1px solid #789279; border-radius:8px; padding:.55rem; color:#163526; background:#fff; }.season-priorities form button,.season-text-button { border:0; background:transparent; color:#15563c; font-weight:800; cursor:pointer; padding:.5rem; }.season-priority,.season-objective { color:#173526; background:#e7f0c7; border:1px solid #b6cb73; }.season-priority { display:inline-flex; align-items:center; gap:.4rem; padding:.4rem .65rem; border-radius:999px; font-size:.86rem; }.season-priority button,.season-objective button { color:#173526; font-weight:800; }.season-phase-heading { background:#e7efe6; align-items:center; }.season-collapse { color:#163526; min-height:44px; align-items:center; }.season-collapse > span { color:#15563c; }.season-block { background:#fff; box-shadow:0 1px 0 rgba(18,53,36,.08); }.season-block h3 { color:#123524; font-size:1.15rem; }.season-status { color:#15563c; background:#dcebd9; padding:.22rem .45rem; border-radius:999px; display:inline-block; }.season-block-controls { display:flex; align-items:center; gap:.45rem; }.season-status-select { color:#173526; border-color:#789279; background:#fff; }.season-menu { position:relative; }.season-menu summary { list-style:none; cursor:pointer; min-width:44px; min-height:40px; display:grid; place-items:center; border:1px solid #789279; border-radius:8px; color:#173526; background:#fff; font-weight:900; }.season-menu summary::-webkit-details-marker { display:none; }.season-menu > div { position:absolute; right:0; z-index:5; min-width:165px; padding:.35rem; border:1px solid #789279; border-radius:9px; background:#fffdf5; box-shadow:0 10px 24px rgba(18,53,36,.18); }.season-menu button,.season-menu label { width:100%; display:block; text-align:left; padding:.6rem .7rem; border:0; background:transparent; color:#173526; font:inherit; cursor:pointer; }.season-menu button:hover,.season-menu button:focus-visible { background:#e7efe6; }.season-menu button:disabled { color:#607468; background:#f0f3ee; cursor:not-allowed; }.season-menu .danger { color:#8a2929; }.season-menu label select { width:100%; margin-top:.25rem; color:#173526; }.season-form h3 { color:#15563c; margin:1.25rem 0 .35rem; font-size:.9rem; text-transform:uppercase; letter-spacing:.06em; }.season-form .field-label { color:#173526; font-weight:750; }.season-form .input,.season-form textarea { color:#173526; background:#fff; border-color:#789279; }.season-form .input::placeholder,.season-priorities input::placeholder,.season-objectives input::placeholder { color:#607468; opacity:1; }.season-form :focus-visible,.season-priorities input:focus-visible,.season-menu summary:focus-visible { outline:3px solid #a2bf2f; outline-offset:2px; }.season-duration-options { display:flex; flex-wrap:wrap; gap:.4rem; }.season-duration-options > button { min-height:42px; border:1px solid #789279; border-radius:8px; color:#173526; background:#fff; font:inherit; padding:.45rem .6rem; cursor:pointer; }.season-duration-options > button.is-selected { color:#fff; background:#15563c; border-color:#15563c; }.season-duration-options .field { flex:1 1 7rem; }.season-duration-options .field-label { display:none; }.season-start-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; margin:1.2rem 0; padding:0; border:0; }.season-start-options legend { grid-column:1 / -1; color:#173526; font-weight:800; }.season-start-options label { display:grid; grid-template-columns:auto 1fr; gap:.25rem .6rem; align-items:start; padding:1rem; border:1px solid #789279; border-radius:12px; cursor:pointer; color:#173526; background:#fff; }.season-start-options label.is-selected { border:2px solid #15563c; background:#e7efe6; }.season-start-options strong,.season-start-options span { grid-column:2; }.season-start-options span { color:#385647; font-size:.9rem; }.season-error { color:#6e1717; background:#fff0ee; border:1px solid #c75a4f; }.season-access-card { color:#fffdf5; background:#163e2c; }.season-access-card :is(h2,p,.eyebrow) { color:#fffdf5; }
@media (max-width:760px) { .season-priorities form { flex-basis:100%; }.season-start-options { grid-template-columns:1fr; }.season-block-controls { align-self:flex-end; }.season-phase-heading { align-items:flex-start; } }

/* Season Planner visual refinement: maintain a light, readable workspace on the dark app shell. */
.season-planner { color: #173526; }
.season-planner .section-header { color: #fffdf5; }
.season-plan-top { padding: 1.15rem 1.25rem; border: 1px solid #c7d5c7; border-radius: 14px; background: #f5f3e9; box-shadow: 0 1px 0 rgba(10, 42, 29, .12); }
.season-plan-top .eyebrow { color: #496754; }
.season-plan-top h2 { color: #123524; line-height: 1.12; }
.season-plan-top p { color: #385647; }
.season-top-actions { justify-content: flex-end; }
.season-top-actions .input, .season-top-actions .button { min-height: 42px; color: #173526; background: #fffdf7; border-color: #6f8c78; }
.season-top-actions .button:hover, .season-top-actions .button:focus-visible { color: #fff; background: #15563c; border-color: #15563c; }
.season-summary { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .65rem; }
.season-summary > div { min-height: 92px; padding: .9rem 1rem; display: flex; flex-direction: column; justify-content: center; background: #f7f5ec; border: 1px solid #bfd0bd; box-shadow: 0 1px 0 rgba(18, 53, 36, .08); }
.season-summary strong { color: #123524; font-size: 1.45rem; line-height: 1.1; letter-spacing: -.02em; }
.season-summary span { color: #496754; font-size: .76rem; font-weight: 700; line-height: 1.25; opacity: 1; }
.season-priorities { background: #f7f5ec; border-color: #bfd0bd; box-shadow: 0 1px 0 rgba(18, 53, 36, .08); }
.season-priorities .eyebrow { color: #496754; }
.season-priorities h3 { color: #123524; }
.season-priorities input { min-height: 42px; border-color: #6f8c78; background: #fff; }
.season-priorities form button { min-height: 42px; border: 1px solid #15563c; border-radius: 8px; color: #fff; background: #15563c; }
.season-priorities form button:hover, .season-priorities form button:focus-visible { background: #0f422d; border-color: #0f422d; }
.season-view-toggle { padding: .3rem; border: 1px solid #9db49e; background: #e5eee4; }
.season-view-toggle .button { min-height: 42px; color: #173526; background: #fffdf7; border: 1px solid #6f8c78; }
.season-view-toggle .button:hover, .season-view-toggle .button:focus-visible { color: #123524; background: #e5eee4; border-color: #15563c; }
.season-view-toggle .is-selected { color: #fff !important; background: #15563c !important; border-color: #15563c !important; box-shadow: 0 1px 2px rgba(10, 42, 29, .24); }
.season-roadmap { gap: .85rem; }
.season-phase { border: 1px solid #b9cdb9; background: #f7f5ec; box-shadow: 0 1px 0 rgba(18, 53, 36, .1); }
.season-phase-heading { padding: 1rem 1.15rem; background: #e4eee2; border-bottom: 1px solid #bfd0bd; }
.season-collapse { color: #123524; }
.season-collapse .eyebrow { color: #496754; }
.season-collapse strong { color: #123524; }
.season-collapse small { color: #385647; opacity: 1; }
.season-collapse > span { color: #15563c; font-weight: 800; }
.season-phase-content { padding: 1rem; background: #fdfcf7; }
.season-block { border-color: #c7d5c7; background: #fff; box-shadow: none; }
.season-block h3 { color: #123524; }
.season-block p { color: #385647; }
.season-status { color: #173526; background: #dcebd9; border: 1px solid #aecaab; }
.season-status-select, .season-item-status-select { min-height: 38px; color: #173526; background: #fff; border-color: #6f8c78; }
.season-objectives { border-top: 1px solid #e0e8de; border-bottom: 1px solid #e0e8de; }
.season-objectives > strong { color: #173526; }
.season-objectives input { min-height: 38px; border-color: #6f8c78; color: #173526; background: #fff; }
.season-objectives form button { min-height: 38px; padding-inline: .45rem; border-radius: 7px; color: #15563c; background: #edf3df; }
.season-item { border: 1px solid #d5e0d4; background: #f4f7f1; }
.season-item strong { color: #123524; }
.season-item span, .season-item small { color: #496754; opacity: 1; }
.season-item-status { color: #15563c; }
.season-item.is-cancelled { opacity: 1; background: #f5ece8; border-color: #dfc1b8; }
.season-item.is-cancelled :is(span, small) { color: #74544a; }
.season-item .button { min-height: 38px; color: #15563c; }
.season-menu summary { border-color: #6f8c78; background: #fff; color: #173526; }
.season-menu summary:hover, .season-menu summary:focus-visible { background: #e4eee2; border-color: #15563c; }
.season-menu > div { border-color: #9db49e; background: #fffdf7; }
.season-menu button:focus-visible, .season-menu label:focus-within { outline: 3px solid #a2bf2f; outline-offset: -3px; }
.season-roadmap > .button, .season-phase-content > .button, .season-items > .button { min-height: 44px; color: #123524; background: #fffdf7; border: 1px solid #9db49e; box-shadow: 0 1px 0 rgba(18, 53, 36, .12); }
.season-roadmap > .button:hover, .season-phase-content > .button:hover, .season-items > .button:hover { color: #fff; background: #15563c; border-color: #15563c; }
.season-roadmap > .button:focus-visible, .season-phase-content > .button:focus-visible, .season-items > .button:focus-visible { outline: 3px solid #b7d83d; outline-offset: 3px; }
@media (max-width: 760px) { .season-plan-top { padding: 1rem; }.season-top-actions { justify-content: stretch; }.season-top-actions .season-select, .season-top-actions .button { width: 100%; }.season-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }.season-priorities { align-items: stretch; }.season-priorities > div { margin-right: 0; }.season-priorities form { display: grid; grid-template-columns: 1fr; }.season-priorities form button { width: 100%; }.season-view-toggle { width: 100%; }.season-view-toggle .button { flex: 1; }.season-block-controls { width: 100%; justify-content: space-between; }.season-menu > div { right: 0; left: auto; max-width: min(280px, calc(100vw - 2rem)); }.season-item > div:last-child { gap: .4rem; }.season-item .button { align-self: stretch; } }
.season-wizard-backdrop { padding: 1rem; overflow-y: auto; }
.season-wizard { width: min(720px, 100%); max-height: min(760px, calc(100vh - 2rem)); display: flex; flex-direction: column; overflow: hidden; color: #173526; background: #fffdf7; border: 1px solid #b7cbb6; border-radius: 18px; box-shadow: 0 24px 64px rgba(4, 30, 18, .45); }
.season-wizard > header { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1rem 1.15rem; background: #173e2c; color: #fffdf7; }
.season-wizard-stages { display: flex; flex-wrap: wrap; gap: .45rem; }.season-wizard-stages span { padding: .25rem .5rem; border-radius: 999px; color: #d6e3d1; font-size: .75rem; font-weight: 800; }.season-wizard-stages .is-current { color: #173526; background: #b7d83d; }.season-wizard-stages .is-complete { color: #fff; }
.season-wizard-close { width: 42px; height: 42px; border: 1px solid rgba(255,255,255,.55); border-radius: 8px; color: #fff; background: transparent; font-size: 1.5rem; cursor: pointer; }.season-wizard-close:hover,.season-wizard-close:focus-visible { background: rgba(255,255,255,.15); outline: 3px solid #b7d83d; outline-offset: 2px; }
.season-wizard-content { overflow-y: auto; padding: clamp(1.25rem,4vw,2rem); }.season-wizard-content h2 { margin: .3rem 0 .55rem; color: #123524; font-size: clamp(1.55rem,4vw,2.05rem); }.season-wizard-content p { max-width: 620px; color: #385647; }.season-wizard-content .button { margin-top: 1rem; }
.season-wizard-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .7rem; margin-top: 1.2rem; }.season-wizard-choice { min-height: 92px; display: grid; align-content: center; gap: .35rem; padding: 1rem; border: 1px solid #9db49e; border-radius: 12px; color: #173526; background: #fff; text-align: left; font: inherit; cursor: pointer; }.season-wizard-choice strong { color: #123524; }.season-wizard-choice span { color: #496754; font-size: .88rem; line-height: 1.35; }.season-wizard-choice small { display: block; margin-top: .35rem; color: #15563c; font-size: .75rem; }.season-wizard-choice:hover,.season-wizard-choice:focus-visible { border-color: #15563c; background: #edf3df; outline: 3px solid transparent; }.season-wizard-choice:focus-visible { outline-color: #b7d83d; outline-offset: 2px; }.season-wizard-choice.is-selected { border: 2px solid #15563c; background: #e4eee2; box-shadow: inset 0 0 0 1px #e4eee2; }
.season-wizard-date-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; }.season-wizard-quick-options { display:flex; flex-wrap:wrap; gap:.5rem; margin:1.15rem 0; }.season-wizard-quick-options button { min-width:52px; min-height:42px; padding:.5rem .75rem; border:1px solid #6f8c78; border-radius:8px; color:#173526; background:#fff; font:inherit; cursor:pointer; }.season-wizard-quick-options button.is-selected { color:#fff; background:#15563c; border-color:#15563c; }
.season-wizard-day-options { display:grid; grid-template-columns:repeat(7,minmax(42px,1fr)); gap:.45rem; margin:1.2rem 0 .55rem; }.season-wizard-day-options button { min-height:48px; border:1px solid #6f8c78; border-radius:9px; color:#173526; background:#fff; font:inherit; font-weight:800; cursor:pointer; }.season-wizard-day-options button:hover,.season-wizard-day-options button:focus-visible { border-color:#15563c; background:#edf3df; }.season-wizard-day-options button:focus-visible { outline:3px solid #b7d83d; outline-offset:2px; }.season-wizard-day-options button.is-selected { color:#fff; background:#15563c; border-color:#15563c; }.season-wizard-day-help { margin:.25rem 0; color:#496754; font-size:.88rem; }
.season-wizard-review { display:grid; grid-template-columns:1fr; gap:.2rem; margin:1rem 0; padding:1rem; border:1px solid #bfd0bd; border-radius:12px; background:#f4f7f1; }.season-wizard-review strong { color:#123524; font-size:1.15rem; }.season-wizard-review span { color:#173526; }.season-wizard-review small { margin-top:.45rem; color:#496754; font-weight:800; text-transform:uppercase; letter-spacing:.04em; font-size:.72rem; }.season-wizard > footer { display:flex; justify-content:space-between; gap:.5rem; padding:.8rem 1.15rem; border-top:1px solid #d5e0d4; background:#f7f5ec; }
@media (max-width: 600px) { .season-wizard-backdrop { padding: 0; align-items: stretch; }.season-wizard { width: 100%; max-height: 100vh; min-height: 100vh; border: 0; border-radius: 0; }.season-wizard-options,.season-wizard-date-grid { grid-template-columns: 1fr; }.season-wizard-day-options { grid-template-columns:repeat(4,minmax(0,1fr)); }.season-wizard-choice { min-height: 76px; }.season-wizard-stages { gap: .15rem; }.season-wizard-stages span { font-size: .68rem; }.season-wizard-content { padding: 1.25rem; } }
.season-success { margin: 0; padding: .8rem 1rem; border: 1px solid #91ad65; border-radius: 10px; color: #123524; background: #edf3df; font-weight: 750; }
.season-success:focus-visible { outline: 3px solid #b7d83d; outline-offset: 2px; }
.season-wizard-generating { min-height: 240px; display: grid; align-content: center; justify-items: center; text-align: center; }
.season-wizard-generating::before { content: ""; width: 42px; height: 42px; border: 4px solid #bfd0bd; border-top-color: #15563c; border-radius: 50%; animation: season-spinner .9s linear infinite; }
@keyframes season-spinner { to { transform: rotate(360deg); } }
.season-priority { flex-wrap: wrap; }.season-priority small { width: 100%; color: #496754; font-size: .64rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.season-coach-guidance { margin-top: .75rem; }.season-coach-guidance summary { color: #15563c; font-weight: 800; cursor: pointer; }.season-coach-guidance p { margin-top: .55rem; }
.season-session-context { display: grid; gap: .28rem; padding: 1rem 1.15rem; color: #173526; background: #edf3df; border: 1px solid #9db49e; }.season-session-context strong { color: #123524; font-size: 1.08rem; }.season-session-context span,.season-session-context small { color: #385647; }
@media (prefers-reduced-motion: reduce) { .season-wizard-generating::before { animation: none; } }

/* Public Season Planner acquisition funnel */
.public-season-planner { min-height: 100vh; overflow-x: clip; color: #f8f5e9; background: #123d2b; }
.public-season-hero { width: min(1120px, calc(100% - 2rem)); margin: 0 auto; padding: clamp(4rem, 9vw, 7.5rem) 0 clamp(3rem, 7vw, 5.5rem); text-align: center; }
.public-season-hero .eyebrow { color: #c7ff00; }
.public-season-hero h1 { max-width: 850px; margin: .65rem auto 1rem; color: #fffdf5; font-size: clamp(2.35rem, 7vw, 5rem); line-height: .98; letter-spacing: -.04em; }
.public-season-hero > p { max-width: 690px; margin: 0 auto 1.5rem; color: #dce9df; font-size: clamp(1rem, 2vw, 1.2rem); line-height: 1.6; }
.public-season-hero > .button { min-height: 52px; padding-inline: 1.35rem; background: #c7ff00; border-color: #c7ff00; color: #123524; font-weight: 850; }
.public-season-hero > .button:hover,.public-season-hero > .button:focus-visible { background: #dcff63; border-color: #dcff63; }
.public-season-hero > ul { max-width: 860px; margin: 2rem auto 0; padding: 0; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .7rem; list-style: none; }
.public-season-hero > li,.public-season-hero ul li { padding: .8rem; border: 1px solid rgba(255,255,255,.22); border-radius: 12px; color: #edf5ed; background: rgba(255,255,255,.06); font-size: .9rem; }
.public-season-error { width: min(900px,calc(100% - 2rem)); margin: 0 auto 1.25rem; padding: .85rem 1rem; border: 1px solid #efaaa3; border-radius: 10px; color: #651616; background: #fff0ee; }
.public-season-preview { padding: clamp(2rem,5vw,4rem) max(1rem,calc((100% - 1120px)/2)); color: #173526; background: #f4f2e8; }
.public-season-preview > header { display: flex; justify-content: space-between; gap: 2rem; align-items: end; margin-bottom: 1.5rem; }
.public-season-preview h2 { margin: .3rem 0; color: #123524; font-size: clamp(1.75rem,4vw,2.75rem); }
.public-season-preview header p { color: #496754; }
.public-season-preview dl { margin: 0; display: grid; grid-template-columns: repeat(3,minmax(90px,1fr)); gap: .6rem; }
.public-season-preview dl div { min-width: 105px; padding: .75rem; border: 1px solid #bfd0bd; border-radius: 12px; background: #fffdf7; }
.public-season-preview dt { color: #496754; font-size: .72rem; font-weight: 800; }
.public-season-preview dd { margin: .2rem 0 0; color: #123524; font-size: 1.35rem; font-weight: 850; }
.public-season-roadmap { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .8rem; align-items: start; }
.public-season-phase { min-width: 0; padding: 1rem; border: 1px solid #bfd0bd; border-radius: 14px; background: #fffdf7; }
.public-season-phase h3 { margin: .25rem 0 .8rem; color: #123524; }
.public-season-phase > div { display: grid; gap: .65rem; }
.public-season-phase section { padding: .75rem; border-radius: 10px; background: #edf3df; }
.public-season-phase h4 { margin: 0 0 .45rem; color: #173526; font-size: .95rem; }
.public-season-phase ul { margin: 0; padding-left: 1.15rem; color: #385647; }
.public-season-phase small { display: block; margin-top: .5rem; color: #496754; font-weight: 750; }
.public-season-signup { max-width: 820px; margin: clamp(2rem,5vw,4rem) auto 0; padding: clamp(1.25rem,4vw,2.25rem); border-radius: 18px; color: #fffdf5; background: #173e2c; box-shadow: 0 16px 34px rgba(18,53,36,.2); }
.public-season-signup h2 { color: #fffdf5; }
.public-season-signup p,.public-season-signup li { color: #dce9df; }
.public-season-signup .button-row { align-items: center; }
.public-season-signup a { color: #fffdf5; font-weight: 750; }
.public-season-signup a.button { color: #123524; background: #c7ff00; border-color: #c7ff00; text-decoration: none; }
.public-season-signup:focus-visible { outline: 4px solid #a2bf2f; outline-offset: 4px; }
@media (max-width:1024px) { .public-season-roadmap { grid-template-columns:repeat(2,minmax(0,1fr)); }.public-season-hero > ul { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:768px) { .public-season-preview > header { align-items:stretch; flex-direction:column; }.public-season-roadmap { grid-template-columns:1fr; }.public-season-preview dl { width:100%; }.public-season-signup .button-row { display:grid; }.public-season-signup .button-row a { width:100%; text-align:center; } }
@media (max-width:430px) { .public-season-hero { width:min(100% - 1.25rem,1120px); padding-top:3rem; }.public-season-hero > ul { grid-template-columns:1fr; }.public-season-preview { padding-inline:.625rem; }.public-season-preview dl { grid-template-columns:1fr; }.public-season-preview dl div { display:flex; justify-content:space-between; align-items:center; }.public-season-preview dd { margin:0; }.public-season-phase,.public-season-signup { border-radius:12px; }.public-season-signup { padding:1rem; } }

/* Anonymous Season Planner: the deterministic preview inside the real workspace language. */
.season-wizard-content h2:focus:not(:focus-visible) { outline: none; }
.season-wizard-content h2:focus-visible,
.anonymous-account-prompt:focus-visible { outline: 3px solid #a2bf2f; outline-offset: 5px; border-radius: 6px; }
.anonymous-season-header h1:focus { outline: none; }
.anonymous-season-header h1:focus-visible { border-radius: 2px; box-shadow: inset 3px 0 #a2bf2f; }
body.anonymous-season-preview-active .marketing-header,
body.anonymous-season-preview-active .marketing-mobile-menu { display: none !important; }
body.anonymous-season-preview-active .marketing-layout,
body.anonymous-season-preview-active .marketing-container { width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important; }
.anonymous-workspace-shell { grid-template-columns: 304px minmax(0,1fr); background: #e7ece2; }
.anonymous-workspace-sidebar { padding: 12px; background: linear-gradient(180deg,#123d2b,#0e3123); }
.anonymous-workspace-nav { min-height: calc(100vh - 24px); display: flex; flex-direction: column; gap: 10px; }
.anonymous-workspace-brand { display: grid; gap: 3px; padding: 12px 10px 10px; color: #fffdf5; }
.anonymous-workspace-brand img,.anonymous-mobile-brand img { width: min(100%,238px); height: 50px; object-fit: contain; object-position: left center; }
.anonymous-workspace-brand small,.anonymous-mobile-brand small { color: #cce69c; font-size: .68rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.anonymous-workspace-nav > .workspace-nav-label { margin: 2px 4px 0; color: #bed9a5; }
.anonymous-nav-item { width: 100%; min-height: 48px; display: grid; grid-template-columns: 22px minmax(0,1fr) 18px; gap: 11px; align-items: center; padding: 8px 11px; border: 1px solid transparent; border-radius: 12px; color: #f8f7ed; background: rgba(6,35,23,.24); font: inherit; font-size: .92rem; font-weight: 800; text-align: left; cursor: pointer; box-shadow: inset 0 1px rgba(255,255,255,.03); }
.anonymous-nav-item:hover,.anonymous-nav-item:focus-visible { border-color: rgba(216,239,179,.35); background: rgba(73,112,59,.65); }
.anonymous-nav-item:focus-visible { outline: 3px solid #b7d83d; outline-offset: 2px; }
.anonymous-nav-item.is-active { border-color: rgba(216,239,179,.3); background: linear-gradient(135deg,#557f2e,#3d6523); box-shadow: inset 0 1px rgba(255,255,255,.14),0 5px 12px rgba(0,0,0,.2); cursor: default; }
.anonymous-nav-tool-icon { width: 22px; color: #c9ea94; font-size: 1.08rem; font-weight: 900; line-height: 1; text-align: center; }
.anonymous-lock-icon { position: relative; display: inline-block; width: 12px; height: 10px; justify-self: center; border: 1.5px solid currentColor; border-radius: 2px; color: #bad19f; box-sizing: border-box; }
.anonymous-lock-icon::before { content: ""; position: absolute; left: 2px; top: -7px; width: 5px; height: 6px; border: 1.5px solid currentColor; border-bottom: 0; border-radius: 5px 5px 0 0; box-sizing: border-box; }
.anonymous-workspace-main { min-width: 0; background: linear-gradient(160deg,#184835 0%,#0f3527 72%); }
.anonymous-season-planner { width: 100%; max-width: 1180px !important; margin: 0 auto !important; padding: clamp(1rem,2vw,2rem); }
.anonymous-season-planner.stack-lg { gap: .8rem; }
.anonymous-preview-status { display: flex; justify-content: space-between; align-items: center; gap: .8rem; padding: .62rem .8rem; border: 1px solid rgba(220,240,190,.24); border-radius: 10px; color: #fffdf5; background: rgba(255,255,255,.055); }
.anonymous-preview-status .eyebrow { color: #cce69c; }
.anonymous-preview-status p { margin: .12rem 0 0; color: #e4eee5; font-size: .84rem; }
.anonymous-preview-status-actions { flex: 0 0 auto; display: grid; gap: .35rem; text-align: center; }
.anonymous-preview-status .button { color: #123524; background: #c7ff00; border-color: #c7ff00; }
.anonymous-preview-status-actions > a { color: #fffdf5; font-size: .75rem; font-weight: 750; }
.anonymous-season-header { padding: .9rem 1.1rem; }
.anonymous-season-header h1 { margin: .12rem 0; padding-left: .55rem; font-size: clamp(1.55rem,3vw,2.2rem); }
.anonymous-season-focus { margin: .15rem 0 0 !important; color: #15563c !important; font-weight: 800; }
.anonymous-season-header ul { display: flex; flex-wrap: wrap; gap: .4rem .9rem; margin: .7rem 0 0; padding: 0; list-style: none; }
.anonymous-season-header li { color: #385647; font-size: .86rem; font-weight: 700; }
.anonymous-season-header li + li::before { content: "·"; margin-right: .9rem; color: #789279; }
.anonymous-season-summary { grid-template-columns: repeat(3,minmax(140px,220px)); justify-content: start; }
.anonymous-season-summary > div { min-height: 82px; padding: .8rem 1rem; border-radius: 14px; }
.anonymous-season-priorities { display: grid; grid-template-columns: minmax(220px,1fr) auto minmax(300px,.8fr); align-items: center; gap: .75rem 1rem; border-radius: 14px; }
.anonymous-season-priorities h2 { margin: .15rem 0 0; color: #123524; font-size: 1rem; }
.anonymous-priority-heading { align-self: center; }
.anonymous-priority-pills { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .5rem; }
.anonymous-priority-pills .season-priority { min-height: 46px; align-content: center; }
.anonymous-priority-form { min-width: 0; display: grid !important; grid-template-columns: minmax(0,1fr) auto; gap: .4rem; flex: none !important; }
.anonymous-field-button { min-width: 0; min-height: 42px; overflow: hidden; border: 1px solid #6f8c78 !important; border-radius: 8px !important; padding: .55rem !important; color: #607468 !important; background: #fff !important; font: inherit; text-align: left; white-space: nowrap; text-overflow: ellipsis; cursor: pointer; }
.anonymous-priority-form > button:last-child,.anonymous-season-objectives form > button:last-child { min-height: 42px; border: 1px solid #15563c; border-radius: 8px; padding: .5rem .7rem; color: #fff; background: #15563c; font: inherit; font-weight: 800; cursor: pointer; }
.anonymous-priority-form > button:last-child:hover,.anonymous-priority-form > button:last-child:focus-visible,.anonymous-season-objectives form > button:last-child:hover,.anonymous-season-objectives form > button:last-child:focus-visible { background: #0f422d; border-color: #0f422d; }
.anonymous-season-phase { border-radius: 16px; overflow: hidden; }
.anonymous-season-phase .season-phase-heading { border-radius: 15px 15px 0 0; }
.anonymous-season-phase .season-phase-content { border-radius: 0 0 15px 15px; }
.anonymous-season-phase .season-collapse:focus-visible { outline: 3px solid #a2bf2f; outline-offset: 3px; border-radius: 5px; }
.anonymous-season-block { display: grid; gap: .8rem; border-radius: 14px; }
.anonymous-season-block .season-block-heading { align-items: flex-start; }
.anonymous-status-control { display: inline-flex; align-items: center; justify-content: space-between; gap: .45rem; font: inherit; font-size: .8rem; cursor: pointer; }
.anonymous-preview-menu > div { top: calc(100% + .3rem); }
.anonymous-season-objectives { min-height: 62px; }
.anonymous-season-objectives form { min-width: min(100%,260px); display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .35rem; }
.anonymous-season-objectives .anonymous-field-button { width: 100%; min-height: 38px; }
.anonymous-season-item { align-items: center; }
.anonymous-season-item > div:first-child { display: grid; gap: .1rem; }
.anonymous-item-controls { justify-content: flex-end; }
.anonymous-season-item .button { flex: 0 0 auto; min-height: 38px; }
.anonymous-season-item .anonymous-status-control { min-height: 38px; }
.anonymous-omitted-intentions { width: 100%; align-items: center; justify-content: flex-start; border: 1px dashed #a8baa8; color: #173526; font: inherit; text-align: left; cursor: pointer; }
.anonymous-omitted-intentions > span:last-child { display: grid; gap: .1rem; }
.anonymous-omitted-intentions small { color: #496754; font-size: .78rem; }
.anonymous-omitted-intentions:hover,.anonymous-omitted-intentions:focus-visible { border-color: #15563c; background: #e4eee2; }
.anonymous-omitted-intentions:focus-visible { outline: 3px solid #a2bf2f; outline-offset: 2px; }
.anonymous-add-item,.anonymous-add-block { width: 100%; justify-content: center; border-radius: 10px; }
.anonymous-account-backdrop { position: fixed; z-index: 1000; inset: 0; display: grid; place-items: center; padding: 1rem; background: rgba(5,25,17,.72); }
.anonymous-account-prompt { position: relative; width: min(540px,100%); padding: clamp(1.25rem,4vw,2rem); border: 1px solid #bfd0bd; border-radius: 18px; color: #173526; background: #fffdf7; box-shadow: 0 24px 60px rgba(0,0,0,.32); }
.anonymous-account-prompt .eyebrow { color: #496754; }
.anonymous-account-prompt h2 { margin: .4rem 2rem .7rem 0; color: #123524; font-size: clamp(1.55rem,4vw,2rem); }
.anonymous-account-prompt p { color: #385647; }
.anonymous-account-close { position: absolute; top: 10px; right: 10px; width: 42px; height: 42px; border: 1px solid #789279; border-radius: 9px; color: #173526; background: #fff; font-size: 1.4rem; cursor: pointer; }
.anonymous-account-close:hover,.anonymous-account-close:focus-visible { background: #e4eee2; }
.anonymous-account-actions { display: grid; gap: .7rem; margin-top: 1.25rem; text-align: center; }
.anonymous-account-actions .button { display: inline-flex; justify-content: center; align-items: center; min-height: 48px; text-decoration: none; }
.anonymous-account-actions > a:not(.button) { color: #15563c; font-weight: 800; }
.anonymous-season-view-toggle { margin-top: .05rem; }
.anonymous-calendar-lock { display: inline-flex; align-items: center; gap: .55rem; }
.anonymous-calendar-lock .anonymous-lock-icon { color: currentColor; opacity: .7; }
.public-season-preview-error { position: fixed; z-index: 1100; top: .5rem; left: 50%; transform: translateX(-50%); }
@media (max-width:1180px) { .anonymous-season-priorities { grid-template-columns: minmax(220px,1fr) auto; }.anonymous-priority-form { grid-column: 1 / -1; } }
@media (max-width:1024px) and (min-width:821px) { .anonymous-workspace-shell { grid-template-columns: 274px minmax(0,1fr); } }
@media (max-width:820px) {
  .anonymous-workspace-shell { display: block; }
  .anonymous-workspace-sidebar { display: none; }
  .anonymous-mobile-header { display: flex; }
  .anonymous-mobile-brand { display: grid; gap: 2px; }
  .anonymous-mobile-drawer { display: block; inset: 64px 0 0; padding: 12px; background: #123524; }
  .anonymous-mobile-drawer .anonymous-workspace-nav { min-height: calc(100vh - 88px); }
  .anonymous-season-planner { padding: 1rem; }
}
@media (max-width:600px) {
  .anonymous-preview-status,.anonymous-season-header,.anonymous-season-item { align-items: stretch; flex-direction: column; }
  .anonymous-preview-status-actions,.anonymous-preview-status .button,.anonymous-season-header .season-top-actions,.anonymous-season-header .button { width: 100%; }
  .anonymous-season-summary { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .anonymous-season-summary > div { min-height: 70px; }
  .anonymous-season-priorities { grid-template-columns: 1fr; align-items: stretch; }
  .anonymous-priority-pills { justify-content: flex-start; }
  .anonymous-priority-form { grid-column: auto; }
  .anonymous-season-header li { width: 100%; }
  .anonymous-season-header li + li::before { content: none; }
  .anonymous-season-phase .season-phase-content { padding: .65rem; }
  .anonymous-season-block { padding: .8rem; }
  .anonymous-season-block .season-block-controls,.anonymous-item-controls { width: 100%; justify-content: space-between; }
  .anonymous-season-objectives { align-items: stretch; }
  .anonymous-season-objectives > strong,.anonymous-season-objectives form { width: 100%; }
  .anonymous-add-item,.anonymous-add-block { min-height: 46px; }
}
@media (max-width:430px) { .anonymous-season-summary { grid-template-columns: 1fr; }.anonymous-season-summary > div { min-height: 64px; }.anonymous-season-header h1 { padding-left: .4rem; }.anonymous-priority-form,.anonymous-season-objectives form { grid-template-columns: 1fr; }.anonymous-season-item .anonymous-item-controls { display: grid; grid-template-columns: 1fr auto; }.anonymous-season-item .button,.anonymous-season-item .anonymous-status-control { width: 100%; }.anonymous-preview-menu { justify-self: end; } }
@media (max-width:375px) { .anonymous-season-planner { padding: .625rem; }.anonymous-preview-status,.anonymous-season-header { padding: .75rem; }.anonymous-account-backdrop { padding: .625rem; }.anonymous-account-prompt { border-radius: 12px; } }

/* Stage 4B.5: shared Season > Phase > Block > Planned Training hierarchy. */
.season-block-label { display:block; margin-bottom:.3rem; color:#54705e; font-size:.68rem; font-weight:850; letter-spacing:.09em; text-transform:uppercase; }
.season-block-heading .season-status { margin-bottom:.2rem; }
.season-objectives { align-items:flex-start; }
.season-objectives > strong { min-height:32px; display:inline-flex; align-items:center; }
.season-objective-chips { display:flex; flex:1 1 18rem; flex-wrap:wrap; gap:.4rem; }
.season-add-objective { min-height:36px; padding:.38rem .65rem; border:1px dashed #789279; border-radius:8px; color:#15563c; background:#fffdf7; font:inherit; font-size:.82rem; font-weight:800; cursor:pointer; }
.season-add-objective:hover,.season-add-objective:focus-visible { border-style:solid; border-color:#15563c; background:#e7efe6; }
.season-add-objective:focus-visible,.season-objective-editor :focus-visible { outline:3px solid #a2bf2f; outline-offset:2px; }
.season-objective-editor { display:flex; flex:1 1 18rem; gap:.35rem; align-items:center; }
.season-objective-editor label { flex:1; }
.season-objective-editor input { width:100%; min-height:38px; }
.season-objective-editor button { min-height:38px; padding:.4rem .65rem !important; border:1px solid #789279 !important; border-radius:7px !important; color:#173526 !important; background:#fff !important; }
.season-objective-editor button[type="submit"] { color:#fff !important; background:#15563c !important; border-color:#15563c !important; }
.season-objective-editor button:disabled { opacity:.55; cursor:not-allowed; }
.season-planned-training { display:grid; gap:.55rem; padding-top:.9rem; }
.season-planned-training > header { display:flex; justify-content:space-between; align-items:end; }
.season-planned-training > header div { display:grid; gap:.15rem; }
.season-planned-training > header .eyebrow { color:#54705e; font-size:.68rem; }
.season-planned-training > header strong { color:#173526; font-size:.9rem; }
.season-planned-training-row { min-height:64px; align-items:center; border-left:3px solid #b7d83d; }
.season-training-copy { min-width:0; display:grid !important; grid-template-columns:auto minmax(0,1fr); gap:.15rem .65rem !important; align-items:center !important; }
.season-training-copy > span { grid-row:1 / span 2; align-self:stretch; min-width:68px; display:flex; align-items:center; justify-content:center; padding:.3rem .5rem; border-radius:7px; color:#315542 !important; background:#e5eee4; font-size:.7rem; font-weight:850; text-transform:uppercase; letter-spacing:.04em; }
.season-training-copy > strong { line-height:1.3; }
.season-training-copy > small { grid-column:2; }
.season-training-actions { justify-content:flex-end; }
.season-block > .button { width:100%; min-height:44px; justify-content:center; margin-top:.75rem; color:#123524; background:#fffdf7; border:1px solid #9db49e; }
.season-block > .button:hover,.season-block > .button:focus-visible { color:#fff; background:#15563c; border-color:#15563c; }
@media (max-width:760px) {
  .season-objective-chips,.season-objective-editor { flex-basis:100%; }
  .season-add-objective { width:100%; }
  .season-planned-training-row { align-items:stretch; }
  .season-training-copy { width:100%; grid-template-columns:64px minmax(0,1fr); }
  .season-training-actions { width:100%; justify-content:flex-start; }
}
@media (max-width:430px) {
  .season-objective-editor { display:grid; grid-template-columns:1fr 1fr; }
  .season-objective-editor label { grid-column:1 / -1; }
  .season-training-copy { grid-template-columns:1fr; }
  .season-training-copy > span,.season-training-copy > small { grid-column:auto; grid-row:auto; justify-content:flex-start; width:fit-content; }
  .season-training-actions { display:grid !important; grid-template-columns:1fr; }
  .season-training-actions .button,.season-training-actions select { width:100%; }
}
