@font-face {
  font-family: "Pitch Display";
  src: url("./assets/Eurostile-BoldItalic.ttf") format("truetype");
  font-weight: 700 900;
  font-style: italic;
  font-display: swap;
}

/* Native first-run account and onboarding flow. */
body.is-onboarding .platform-shell { grid-template-columns: minmax(0, 1fr); }
body.is-onboarding .platform-sidebar,
body.is-onboarding .platform-topbar,
body.is-onboarding .mobile-tab-bar { display: none; }
body.is-onboarding .platform-main { min-height: 100dvh; padding: max(18px, env(safe-area-inset-top)) 16px max(18px, env(safe-area-inset-bottom)); }
body.is-onboarding .native-onboarding-shell { width: min(760px, 100%); }
body.is-onboarding .native-onboarding-hero h1 { font-size: clamp(1.4rem, 3.8vw, 1.8rem); text-transform: none; line-height: 1.15; letter-spacing: -.015em; }
body.is-onboarding .native-onboarding-footer { position: fixed; left: 50%; transform: translateX(-50%); bottom: 0; width: min(760px, calc(100% - 32px)); box-sizing: border-box; z-index: 3; margin: 0; padding: 12px 0 max(16px, env(safe-area-inset-bottom)); background: rgba(9,10,13,.97); backdrop-filter: blur(16px); }
body.is-onboarding .native-onboarding-footer > button { flex: 1; min-height: 48px; }
body.is-onboarding .native-onboarding-shell:has(form) { padding-bottom: 134px; }
body.is-onboarding .athlete-onboarding-shell .native-onboarding-footer { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 12px; }
.onboarding-draft-status { grid-column: 1 / -1; margin: 0; color: var(--secondary); font: 400 12px/1.5 var(--font-body); text-align: center; }
.onboarding-draft-status.is-warning { color: var(--warning); }
body.is-onboarding :is(input, select, textarea, button, a) { scroll-margin-block: 24px 150px; }
body.is-onboarding :is(input, select, textarea):focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
body.is-onboarding .choice-grid label:has(input:checked) { border-color: var(--accent); background: rgba(239,37,52,.13); }
body.is-onboarding .choice-grid label:has(input:focus-visible) { outline: 2px solid var(--primary); outline-offset: 3px; }
body.is-onboarding .field :is(input, select, textarea) { font-size: 16px; }
body.is-onboarding .form-message:empty { display: none; }
body.is-onboarding .form-message:not(:empty) { margin-top: 16px; }
body.is-onboarding form[aria-busy="true"] { cursor: progress; }
body.is-onboarding .toast-region { bottom: calc(120px + env(safe-area-inset-bottom)); }
.native-onboarding-shell {
  width: min(980px, 100%);
  margin: 0 auto;
  padding: clamp(4px, 2vw, 22px) 0 44px;
}
.native-onboarding-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px 16px;
  margin-bottom: 12px;
  padding: 18px;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: linear-gradient(145deg, rgba(255,255,255,.05), rgba(255,255,255,.02));
}
.native-onboarding-hero h1 {
  max-width: 760px;
  margin: 7px 0 8px;
  font-family: var(--font-display);
  font-size: clamp(2.15rem, 6vw, 4rem);
  font-style: italic;
  line-height: .94;
  letter-spacing: -.03em;
  text-transform: uppercase;
}
.native-onboarding-hero p:not(.eyebrow) { max-width: 620px; margin: 0; color: var(--secondary); font-size: 13px; line-height: 1.55; }
.onboarding-step-count { display: flex; flex-direction: column; align-items: flex-end; gap: 5px; white-space: nowrap; color: var(--secondary); font-size: .72rem; }
.onboarding-step-count b { color: var(--primary); }
.onboarding-step-count span { color: var(--accent); font-family: var(--font-display); font-size: 1rem; }
.onboarding-progress { grid-column: 1 / -1; height: 7px; overflow: hidden; border-radius: 99px; background: rgba(255,255,255,.07); }
.onboarding-progress i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--accent), #ff6472); transition: width .24s ease; }
.onboarding-segments { grid-column: 1 / -1; display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 7px; }
.onboarding-segments i { height: 3px; border-radius: 99px; background: rgba(255,255,255,.08); }
.onboarding-segments i.is-complete { background: var(--accent); }
.native-step-card {
  padding: 16px;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: var(--surface);
  box-shadow: var(--shadow);
}
.native-step-card > .form-grid { gap: 16px; }
.native-step-card .field > span:first-child,
.choice-fieldset legend { color: var(--secondary); font-size: .77rem; font-weight: 820; letter-spacing: .015em; }
.choice-fieldset { min-width: 0; margin: 0; padding: 16px; border: 1px solid var(--border); border-radius: 15px; }
.choice-fieldset legend { padding: 0 7px; }
.choice-fieldset > label,
.choice-grid label { display: inline-flex; align-items: center; gap: 8px; min-height: 42px; margin: 4px 5px 4px 0; padding: 8px 12px; border: 1px solid var(--border); border-radius: 10px; background: rgba(255,255,255,.025); color: var(--primary); cursor: pointer; }
.choice-fieldset input,
.choice-grid input { width: 18px; height: 18px; accent-color: var(--accent); }
.choice-grid { display: flex; flex-wrap: wrap; gap: 4px; }
.switch-row { display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 66px; margin: 0; padding: 13px 15px; border: 1px solid var(--border); border-radius: 13px; background: rgba(255,255,255,.024); }
.switch-row > span { display: grid; gap: 4px; }
.switch-row small { color: var(--secondary); font-size: .75rem; line-height: 1.4; }
.switch-row input { width: 23px; height: 23px; accent-color: var(--accent); flex: 0 0 auto; }
.native-onboarding-note { margin: 0; padding: 13px 15px; border-left: 3px solid var(--warning); border-radius: 9px; background: rgba(255,188,45,.07); color: var(--secondary); font-size: .78rem; line-height: 1.5; }
.native-onboarding-footer { display: flex; justify-content: flex-end; gap: 10px; margin-top: 24px; padding-top: 18px; border-top: 1px solid var(--border); }
.native-onboarding-footer .primary-button,
.native-onboarding-footer .secondary-button { min-width: 130px; }
.native-onboarding-shell .account-type-icon svg { width: 30px; height: 30px; fill: none; stroke: currentColor; stroke-width: 1.8; }
#web-onboarding-form > .form-grid { gap: 16px; }
.onboarding-input-group { padding: 14px; border: 1px solid var(--border); border-radius: 12px; background: rgba(255,255,255,.025); }
.onboarding-input-group > header { margin-bottom: 12px; }
.onboarding-input-group h2 { margin: 0 0 5px; font: italic 850 16px/1.3 var(--font-display); }
.onboarding-input-group header p { margin: 0; color: var(--secondary); font-size: 12px; }
.onboarding-input-group .field small { color: var(--secondary); font-size: 11px; }
.onboarding-input-group select { max-width: 100%; }
.onboarding-review > h2 { font: italic 850 24px/1.2 var(--font-display); }
.onboarding-rating-stars { display: flex; gap: 8px; margin-bottom: 18px; color: var(--warning); }
.onboarding-rating-stars svg { width: 22px; height: 22px; fill: currentColor; stroke: currentColor; }
.onboarding-review-highlight { margin: 12px 0; padding: 16px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface); }
.onboarding-review-highlight h3 { margin: 0 0 5px; font: italic 850 17px/1.2 var(--font-display); }
.onboarding-review-highlight small { color: var(--tertiary); font-size: 11px; }
.onboarding-review-highlight p { margin: 10px 0 0; color: var(--secondary); font-size: 13px; line-height: 1.5; }
.onboarding-review > .secondary-button { margin-top: 14px; }
.review-summary { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; margin-bottom: 18px; }
.review-summary > div { display: grid; gap: 5px; min-height: 80px; padding: 15px; border: 1px solid var(--border); border-radius: 13px; background: rgba(255,255,255,.025); }
.review-summary small { color: var(--secondary); font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.review-summary b { align-self: end; font-family: var(--font-display); font-size: 1.05rem; font-style: italic; }
.account-type-shell { max-width: 920px; }
.account-type-shell .native-onboarding-hero { grid-template-columns: 1fr; }
.account-type-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.account-type-card { display: grid; align-content: start; gap: 10px; min-height: 245px; padding: clamp(24px,4vw,36px); border: 1px solid var(--border); border-radius: 22px; background: linear-gradient(145deg,#15171d,#0c0d11); color: var(--primary); text-align: left; cursor: pointer; transition: transform .18s, border-color .18s, background .18s; }
.account-type-card:hover { transform: translateY(-2px); border-color: rgba(239,37,52,.62); background: linear-gradient(145deg,rgba(80,18,27,.75),#0c0d11); }
.account-type-card .account-type-icon { display: grid; place-items: center; width: 55px; height: 55px; border: 1px solid rgba(239,37,52,.42); border-radius: 15px; background: rgba(239,37,52,.12); font-size: 1.5rem; }
.account-type-card b { margin-top: 8px; font-family: var(--font-display); font-size: 1.85rem; font-style: italic; text-transform: uppercase; }
.account-type-card small { color: var(--secondary); font-size: .84rem; line-height: 1.55; }
.account-type-card i { margin-top: auto; color: var(--accent); font-family: var(--font-display); font-style: italic; }
.account-type-grid + .native-onboarding-note { margin-top: 14px; }

@media (max-width: 720px) {
  .native-onboarding-hero { padding: 14px; }
  .athlete-onboarding-shell .native-onboarding-hero { grid-template-columns: minmax(0,1fr) auto; }
  .native-step-card { padding: 18px; border-radius: 18px; }
  .account-type-grid, .review-summary { grid-template-columns: 1fr; }
  .account-type-card { min-height: 205px; }
  .native-onboarding-footer { position: sticky; bottom: 90px; z-index: 3; margin-inline: -8px; padding: 12px 8px; background: rgba(15,16,21,.94); backdrop-filter: blur(16px); }
  .native-onboarding-footer .primary-button, .native-onboarding-footer .secondary-button { flex: 1; min-width: 0; }
}

@media (max-width: 380px) {
  .athlete-onboarding-shell .native-onboarding-hero { grid-template-columns: 1fr; }
  .onboarding-step-count { flex-direction: row; justify-content: space-between; }
}
@media (prefers-reduced-motion: reduce) {
  .onboarding-progress i, .account-type-card { transition: none; }
}

@font-face {
  font-family: "Pitch Inter";
  src: url("./assets/Inter-Variable.ttf") format("truetype");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

:root {
  color-scheme: dark;
  --font-body: "Pitch Inter", -apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", sans-serif;
  --font-display: "Pitch Display", "Arial Black", -apple-system, BlinkMacSystemFont, sans-serif;
  --background: #090a0d;
  --background-raised: #0e0f12;
  --surface: #131518;
  --surface-chrome: #1b1d20;
  --surface-soft: rgba(255, 255, 255, 0.045);
  --surface-hover: rgba(255, 255, 255, 0.07);
  --primary: #fff;
  --secondary: rgba(255, 255, 255, 0.76);
  --tertiary: rgba(255, 255, 255, 0.48);
  --border: rgba(255, 255, 255, 0.09);
  --border-strong: rgba(255, 255, 255, 0.17);
  --accent-border: rgba(232, 41, 41, 0.58);
  --accent: #e82929;
  --accent-bright: #f03a3a;
  --accent-soft: rgba(232, 41, 41, 0.16);
  --success: #4ad187;
  --success-soft: rgba(67, 203, 120, 0.12);
  --warning: #fabb33;
  --warning-soft: rgba(255, 179, 71, 0.12);
  --info: #69a8ff;
  --danger: #ff5a67;
  --sidebar-width: 268px;
  --content-max: 980px;
  --radius: 8px;
  --radius-small: 8px;
  --modal-radius: 28px;
  --shadow: 0 18px 52px rgba(0, 0, 0, 0.38);
}

/* Use installed CJK system fonts; Latin display fonts do not contain these glyphs. */
html:lang(ja) { --font-body: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Yu Gothic", "Noto Sans CJK JP", sans-serif; --font-display: var(--font-body); }
html:lang(ko) { --font-body: -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Malgun Gothic", "Noto Sans CJK KR", sans-serif; --font-display: var(--font-body); }
html:lang(zh-Hans) { --font-body: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif; --font-display: var(--font-body); }
html:lang(zh-Hant) { --font-body: -apple-system, BlinkMacSystemFont, "PingFang TC", "Microsoft JhengHei", "Noto Sans CJK TC", sans-serif; --font-display: var(--font-body); }
html:is(:lang(ja), :lang(ko), :lang(zh)) :is(h1, h2, h3, .auth-story h1, .billing-story h2, .modal-header h3) {
  line-height: 1.25;
  letter-spacing: normal;
  font-style: normal;
  overflow-wrap: anywhere;
}
html:lang(ko) :is(p, button, label) { word-break: keep-all; overflow-wrap: anywhere; }

* { box-sizing: border-box; }
html { min-height: 100%; scroll-behavior: smooth; scrollbar-gutter: stable; scroll-padding-block: 96px; }
body { margin: 0; min-width: 320px; min-height: 100vh; overflow-x: hidden; background: var(--background); color: var(--primary); font-family: var(--font-body); }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; }
[hidden] { display: none !important; }
body.has-open-modal, body.has-open-sidebar { overflow: hidden; }
:where(button, a, input, select, textarea, summary, [tabindex]):focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
:where(button, input, select, textarea, summary) { scroll-margin-block: 96px; }
.modal { overscroll-behavior: contain; }
.modal :is(h1, h2, h3)[tabindex="-1"]:focus { outline: none; }
@media (max-width: 820px) {
  .field input, .field select, .field textarea { font-size: max(16px, 1em); }
  .platform-topbar .icon-button, .sidebar-head .icon-button, .sidebar-account .icon-button { min-width: 44px; min-height: 44px; }
}

.skip-link { position: fixed; z-index: 1000; left: 18px; top: -80px; padding: 10px 14px; border-radius: 9px; background: var(--primary); color: #050608; font-weight: 800; transition: top .2s; }
.skip-link:focus { top: 18px; }
.eyebrow { margin: 0 0 5px; color: var(--accent-bright); font-size: .68rem; font-weight: 850; letter-spacing: .17em; text-transform: uppercase; }

/* Authentication */
.auth-stage { position: relative; display: grid; min-height: 100vh; overflow: hidden; padding: max(30px, env(safe-area-inset-top)) clamp(20px, 5vw, 70px) max(30px, env(safe-area-inset-bottom)); background: radial-gradient(circle at 9% 85%, rgba(135, 6, 23, .19), transparent 34%), radial-gradient(circle at 82% 10%, rgba(239, 37, 52, .12), transparent 29%), #050608; }
.auth-atmosphere { position: absolute; inset: 0; pointer-events: none; opacity: .48; background-image: linear-gradient(rgba(255,255,255,.022) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.022) 1px, transparent 1px); background-size: 62px 62px; mask-image: radial-gradient(circle at center, black 15%, transparent 78%); }
.auth-brand { position: relative; z-index: 1; display: inline-flex; width: fit-content; height: 39px; }
.auth-brand img { width: auto; height: 100%; object-fit: contain; }
.auth-layout { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1fr) minmax(350px, 470px); gap: clamp(48px, 8vw, 112px); align-items: center; width: min(1200px, 100%); margin: auto; padding: 50px 0 70px; }
.auth-story { min-width: 0; }
.auth-story h1 { max-width: 650px; margin: 12px 0 23px; font-family: var(--font-display); font-size: clamp(3.85rem, 7.25vw, 6.65rem); font-style: italic; line-height: .84; letter-spacing: -.045em; text-transform: uppercase; }
.auth-story h1 span { color: var(--accent-bright); text-shadow: 0 0 35px rgba(239,37,52,.19); }
.auth-story > p:not(.eyebrow) { max-width: 620px; color: var(--secondary); font-size: clamp(.98rem, 1.35vw, 1.12rem); line-height: 1.66; }
.auth-value-line { display: flex; gap: 7px; align-items: baseline; margin: 19px 0 0; padding-left: 13px; border-left: 2px solid var(--accent-bright); color: var(--tertiary) !important; font-size: .77rem !important; line-height: 1.5 !important; }
.auth-value-line b { flex: 0 0 auto; color: var(--primary); font-family: var(--font-display); font-style: italic; letter-spacing: .025em; }
.auth-feature-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 255px)); gap: 10px; margin-top: 29px; }
.auth-feature-grid span { display: grid; grid-template-columns: 28px minmax(0, 1fr); grid-template-areas: "number title" "number detail"; column-gap: 10px; row-gap: 2px; min-height: 67px; padding: 12px 14px; border: 1px solid var(--border); border-radius: 12px; background: linear-gradient(145deg, rgba(255,255,255,.035), rgba(255,255,255,.012)); color: var(--secondary); transition: border-color .2s, transform .2s, background .2s; }
.auth-feature-grid span:hover { transform: translateY(-2px); border-color: rgba(239,37,52,.43); background: rgba(239,37,52,.06); }
.auth-feature-grid b { grid-area: number; align-self: center; color: var(--accent-bright); font-family: var(--font-display); font-size: .92rem; }
.auth-feature-grid i { grid-area: title; color: var(--primary); font-family: var(--font-display); font-size: .76rem; font-style: italic; letter-spacing: .015em; }
.auth-feature-grid small { grid-area: detail; color: var(--tertiary); font-size: .6rem; font-weight: 680; line-height: 1.35; }
.auth-card { padding: clamp(24px, 4vw, 36px); border: 1px solid var(--border-strong); border-radius: 23px; background: linear-gradient(155deg, rgba(22,24,31,.97), rgba(10,11,15,.98)); box-shadow: 0 40px 100px rgba(0,0,0,.48); }
.auth-heading { display: grid; gap: 6px; margin-bottom: 16px; }
.auth-heading h2 { margin: 0; color: var(--primary); font-size: 1.55rem; font-weight: 850; letter-spacing: -.025em; }
.auth-heading p { margin: 0; color: var(--secondary); font-size: .76rem; line-height: 1.45; }
.auth-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; margin-bottom: 20px; padding: 5px; border: 1px solid var(--border); border-radius: 12px; background: var(--background-raised); }
.auth-tab { min-height: 44px; border: 0; border-radius: 8px; background: transparent; color: var(--tertiary); font-weight: 800; cursor: pointer; }
.auth-tab.is-active { background: var(--surface-soft); color: var(--primary); box-shadow: inset 0 0 0 1px var(--border); }
.apple-auth-button { position: relative; display: grid; grid-template-columns: 24px minmax(0, 1fr) 24px; align-items: center; gap: 10px; width: 100%; min-height: 50px; padding: 0 15px; border: 1px solid #fff; border-radius: 11px; background: #fff; color: #050505; font-size: .82rem; font-weight: 760; cursor: pointer; transition: transform .16s, background .16s, opacity .16s; }
.apple-auth-button:hover { transform: translateY(-1px); background: #f1f1f1; }
.apple-auth-button:focus-visible { outline: 3px solid rgba(255,255,255,.27); outline-offset: 3px; }
.apple-auth-button:disabled { cursor: wait; opacity: .7; transform: none; }
.apple-auth-button svg { width: 23px; height: 23px; fill: currentColor; }
.apple-auth-button > span { text-align: center; }
.apple-auth-button .button-spinner { grid-column: 3; border-color: rgba(0,0,0,.22); border-top-color: #000; }
.auth-divider { display: flex; align-items: center; gap: 12px; margin: 20px 0; color: var(--tertiary); font-size: .64rem; line-height: 1; text-transform: uppercase; }
.auth-divider::before,.auth-divider::after { content: ""; height: 1px; flex: 1; background: var(--border); }
.auth-divider span { white-space: nowrap; }
.field { display: grid; gap: 7px; margin-bottom: 17px; }
.field > span:first-child { color: var(--secondary); font-size: .74rem; font-weight: 780; }
.field input, .field select, .field textarea, .search-input { width: 100%; min-height: 48px; border: 1px solid var(--border); border-radius: 11px; outline: 0; background: #0b0c10; color: var(--primary); padding: 0 13px; transition: border-color .2s, box-shadow .2s, background .2s; }
.field textarea { min-height: 110px; resize: vertical; padding-top: 12px; line-height: 1.5; }
.field input:focus, .field select:focus, .field textarea:focus, .search-input:focus { border-color: rgba(239,37,52,.65); background: #0e0f14; box-shadow: 0 0 0 3px rgba(239,37,52,.1); }
.password-field { position: relative; display: block; }
.password-field input { padding-right: 65px; }
.password-field button { position: absolute; top: 0; right: 0; height: 48px; border: 0; background: transparent; color: var(--tertiary); padding: 0 13px; font-size: .72rem; font-weight: 780; cursor: pointer; }
.primary-button, .secondary-button, .danger-button { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 46px; padding: 0 18px; border-radius: 11px; font-weight: 820; cursor: pointer; transition: transform .16s, opacity .16s, background .16s; }
.primary-button { border: 1px solid var(--accent-bright); background: linear-gradient(180deg, #f62b3b, #d81727); color: white; box-shadow: 0 12px 27px rgba(165,10,29,.23); }
.secondary-button { border: 1px solid var(--border-strong); background: var(--surface-soft); color: var(--primary); }
.danger-button { border: 1px solid rgba(255,90,103,.32); background: rgba(255,90,103,.1); color: var(--danger); }
.primary-button:hover, .secondary-button:hover, .danger-button:hover { transform: translateY(-1px); }
.primary-button:disabled, .secondary-button:disabled, .danger-button:disabled { cursor: not-allowed; opacity: .48; transform: none; }
.auth-submit { width: 100%; margin-top: 4px; }
.text-button { border: 0; padding: 0; background: transparent; color: var(--secondary); font-weight: 720; cursor: pointer; }
.forgot-button { display: block; margin: -3px 0 14px; color: var(--accent-bright); font-size: .75rem; text-align: left; }
.password-requirements-button { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 15px; padding: 0; border: 0; background: transparent; color: var(--secondary); font-size: .75rem; cursor: pointer; }
.password-requirements-button span { color: var(--accent-bright); font-size: .93rem; }
.auth-alternate { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--tertiary); font-size: .75rem; }
.auth-alternate .text-button { flex: none; color: var(--accent-bright); font-size: .75rem; }
.form-message { min-height: 21px; margin: 14px 0 8px; color: var(--secondary); font-size: .78rem; line-height: 1.4; text-align: left; }
.form-message[data-state="error"] { color: var(--danger); }
.form-message[data-state="success"] { color: var(--success); }
.auth-card > .apple-auth-button { margin-top: 12px; border-color: rgba(255,255,255,.3); background: #000; color: #fff; }
.auth-card > .apple-auth-button:hover { background: #151515; }
.auth-card > .apple-auth-button:focus-visible { outline-color: rgba(255,255,255,.42); }
.auth-card > .apple-auth-button .button-spinner { border-color: rgba(255,255,255,.35); border-top-color: #fff; }
.auth-legal { margin: 22px 0 0; padding-top: 18px; border-top: 1px solid var(--border); color: #aeb2bc; font-size: .75rem; line-height: 1.6; text-align: center; }
.auth-legal a { color: var(--secondary); }
.button-spinner { display: none; width: 16px; height: 16px; border: 2px solid rgba(255,255,255,.35); border-top-color: white; border-radius: 50%; animation: spin .7s linear infinite; }
.is-loading .button-spinner { display: inline-block; }
@keyframes spin { to { transform: rotate(360deg); } }

/* App shell */
.platform-shell { display: grid; grid-template-columns: var(--sidebar-width) minmax(0, 1fr); min-height: 100vh; }
.platform-sidebar { position: sticky; top: 0; z-index: 80; display: grid; grid-template-rows: auto 1fr auto; width: var(--sidebar-width); height: 100vh; border-right: 1px solid var(--border); background: linear-gradient(180deg, #0b0c10, #07080b); }
.sidebar-head { display: flex; align-items: center; justify-content: space-between; height: 78px; padding: 0 19px; border-bottom: 1px solid var(--border); }
.platform-brand { display: inline-flex; height: 31px; }
.platform-brand img { width: auto; height: 100%; }
.icon-button { display: inline-grid; place-items: center; width: 40px; height: 40px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface); color: var(--secondary); cursor: pointer; transition: color .16s, border-color .16s, background .16s; }
.icon-button:hover { border-color: var(--border-strong); background: var(--surface-soft); color: var(--primary); }
.sidebar-close, .menu-button { display: none; }
.platform-nav { overflow-y: auto; padding: 17px 13px 24px; scrollbar-width: thin; }
.nav-label { margin: 21px 11px 8px; color: #555b68; font-size: .58rem; font-weight: 850; letter-spacing: .17em; }
.nav-label:first-child { margin-top: 3px; }
.platform-nav a { position: relative; display: grid; grid-template-columns: 27px minmax(0, 1fr) auto; align-items: center; gap: 7px; min-height: 43px; margin: 3px 0; padding: 0 10px; border: 1px solid transparent; border-radius: 10px; color: #858a96; text-decoration: none; transition: background .18s, color .18s, border-color .18s; }
.platform-nav a > span { color: #686e7a; font-size: 1rem; text-align: center; }
.platform-nav a b { overflow: hidden; font-size: .78rem; font-weight: 730; text-overflow: ellipsis; white-space: nowrap; }
.platform-nav a em { padding: 3px 5px; border-radius: 4px; background: var(--success-soft); color: var(--success); font-size: .48rem; font-style: normal; font-weight: 900; letter-spacing: .08em; }
.platform-nav a:hover { background: rgba(255,255,255,.032); color: var(--primary); }
.platform-nav a.is-active { border-color: rgba(239,37,52,.2); background: var(--accent-soft); color: var(--primary); }
.platform-nav a.is-active::before { content: ""; position: absolute; left: -14px; width: 3px; height: 23px; border-radius: 0 3px 3px 0; background: var(--accent-bright); }
.platform-nav a.is-active > span { color: var(--accent-bright); }
.sidebar-account { display: grid; grid-template-columns: 38px minmax(0, 1fr) 36px; align-items: center; gap: 10px; min-height: 74px; padding: 12px 14px; border-top: 1px solid var(--border); }
.avatar { display: inline-grid; place-items: center; width: 38px; height: 38px; border: 1px solid rgba(239,37,52,.35); border-radius: 50%; background: var(--accent-soft); color: var(--accent-bright); font-size: .7rem; font-weight: 880; }
.sidebar-account > span:nth-child(2) { display: grid; min-width: 0; gap: 2px; }
.sidebar-account b, .sidebar-account small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sidebar-account b { font-size: .72rem; }
.sidebar-account small { color: var(--tertiary); font-size: .6rem; }
.sidebar-account .icon-button { width: 34px; height: 34px; }
.platform-workspace { min-width: 0; }
.platform-topbar { position: sticky; top: 0; z-index: 50; display: flex; align-items: center; gap: 14px; min-height: 78px; padding: 11px clamp(20px, 3.7vw, 52px); border-bottom: 1px solid var(--border); background: rgba(5,6,8,.88); backdrop-filter: blur(22px); }
.platform-topbar h2 { margin: 0; font-family: var(--font-display); font-size: clamp(1.3rem, 2vw, 1.75rem); font-style: italic; letter-spacing: -.02em; text-transform: uppercase; }
.topbar-actions { display: flex; align-items: center; gap: 9px; margin-left: auto; }
.sync-state { display: inline-flex; align-items: center; gap: 7px; min-height: 34px; padding: 0 11px; border: 1px solid var(--border); border-radius: 999px; color: var(--secondary); font-size: .65rem; font-weight: 730; }
.sync-state i { width: 7px; height: 7px; border-radius: 50%; background: var(--success); box-shadow: 0 0 0 4px var(--success-soft); }
.sync-state.is-syncing i { background: var(--warning); box-shadow: 0 0 0 4px var(--warning-soft); animation: pulse 1s infinite; }
.sync-state.is-offline i { background: var(--danger); box-shadow: 0 0 0 4px rgba(255,90,103,.12); }
@keyframes pulse { 50% { opacity: .45; } }
.topbar-avatar { border: 1px solid rgba(239,37,52,.35); cursor: pointer; }
.platform-main { min-height: calc(100vh - 78px); padding: clamp(21px, 3.6vw, 48px); background: radial-gradient(circle at 92% 1%, rgba(239,37,52,.045), transparent 27%), var(--background); }
.route-view { width: min(1320px, 100%); margin: 0 auto; }

/* Reusable platform components */
.page-hero { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px; align-items: end; margin-bottom: 24px; padding: clamp(21px, 3.5vw, 36px); border: 1px solid var(--border); border-radius: 21px; background: radial-gradient(circle at 93% 0%, rgba(239,37,52,.14), transparent 34%), linear-gradient(145deg, #12141a, #090a0e); box-shadow: var(--shadow); }
.page-hero h1 { max-width: 760px; margin: 8px 0 8px; font-family: var(--font-display); font-size: clamp(2.2rem, 5vw, 4.4rem); font-style: italic; line-height: .92; letter-spacing: -.035em; text-transform: uppercase; }
.page-hero p:not(.eyebrow) { max-width: 720px; margin: 0; color: var(--secondary); font-size: .86rem; line-height: 1.55; }
.hero-stat { min-width: 150px; padding: 15px; border: 1px solid var(--border); border-radius: 13px; background: rgba(0,0,0,.2); text-align: right; }
.hero-stat strong { display: block; font-family: var(--font-display); font-size: 2rem; color: var(--primary); }
.hero-stat span { color: var(--tertiary); font-size: .62rem; font-weight: 760; text-transform: uppercase; }
.hero-stat > span:first-child { display: block; color: var(--primary); font-family: var(--font-display); font-size: 2rem; line-height: 1; }
.hero-stat small { display: block; margin-top: 5px; color: var(--tertiary); font-size: .62rem; font-weight: 760; text-transform: uppercase; }
.content-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 14px; }
.span-12 { grid-column: span 12; }
.span-8 { grid-column: span 8; }
.span-7 { grid-column: span 7; }
.span-6 { grid-column: span 6; }
.span-5 { grid-column: span 5; }
.span-4 { grid-column: span 4; }
.panel { min-width: 0; padding: 19px; border: 1px solid var(--border); border-radius: var(--radius); background: linear-gradient(155deg, var(--surface), #0a0b0f); }
.panel-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.panel-header h3 { margin: 3px 0 0; font-family: var(--font-display); font-size: 1.1rem; font-style: italic; text-transform: uppercase; }
.panel-header p { margin: 4px 0 0; color: var(--tertiary); font-size: .68rem; line-height: 1.45; }
.panel-label { margin: 0; color: var(--accent-bright); font-size: .57rem; font-weight: 850; letter-spacing: .15em; text-transform: uppercase; }
.panel-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.metric { padding: 14px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface-chrome); }
.metric span { color: var(--tertiary); font-size: .6rem; font-weight: 760; letter-spacing: .06em; text-transform: uppercase; }
.metric strong { display: block; margin-top: 5px; font-family: var(--font-display); font-size: 1.6rem; }
.metric small { display: block; margin-top: 3px; color: var(--secondary); font-size: .62rem; }
.metric > span:first-child { display: block; color: var(--primary); font-family: var(--font-display); font-size: 1.6rem; line-height: 1.1; letter-spacing: normal; text-transform: none; }
.list { display: grid; gap: 8px; }
.list-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; min-height: 58px; padding: 11px 12px; border: 1px solid var(--border); border-radius: 11px; background: rgba(255,255,255,.018); }
.list-row:hover { border-color: var(--border-strong); background: rgba(255,255,255,.027); }
.list-row-main { min-width: 0; }
.list-row h4 { overflow: hidden; margin: 0; color: var(--primary); font-size: .79rem; font-weight: 770; text-overflow: ellipsis; white-space: nowrap; }
.list-row p { margin: 4px 0 0; color: var(--tertiary); font-size: .66rem; line-height: 1.4; }
.list-row-main b, .list-row-main small { display: block; overflow: hidden; text-overflow: ellipsis; }
.list-row-main b { color: var(--primary); font-size: .79rem; white-space: nowrap; }
.list-row-main small { margin-top: 4px; color: var(--tertiary); font-size: .66rem; line-height: 1.4; }
.row-actions { display: flex; align-items: center; gap: 7px; }
.compact-button { min-height: 34px; padding: 0 11px; border: 1px solid var(--border); border-radius: 8px; background: var(--surface-soft); color: var(--secondary); font-size: .65rem; font-weight: 780; cursor: pointer; }
.compact-button:hover { color: var(--primary); border-color: var(--border-strong); }
.compact-button.danger { color: var(--danger); border-color: rgba(255,90,103,.22); background: rgba(255,90,103,.07); }
.status-pill { display: inline-flex; align-items: center; min-height: 24px; padding: 0 8px; border-radius: 999px; background: var(--surface-soft); color: var(--secondary); font-size: .56rem; font-weight: 820; text-transform: uppercase; white-space: nowrap; }
.status-pill.active, .status-pill.completed, .status-pill.green { background: var(--success-soft); color: var(--success); }
.status-pill.pending, .status-pill.in_progress, .status-pill.yellow { background: var(--warning-soft); color: var(--warning); }
.status-pill.suspended, .status-pill.failed, .status-pill.red { background: rgba(255,90,103,.1); color: var(--danger); }
.empty-state { display: grid; place-items: center; min-height: 160px; padding: 26px; border: 1px dashed var(--border-strong); border-radius: 13px; color: var(--tertiary); text-align: center; }
.empty-state strong { color: var(--secondary); font-size: .82rem; }
.empty-state p { max-width: 410px; margin: 7px 0 0; font-size: .7rem; line-height: 1.5; }
.notice { display: grid; grid-template-columns: 8px minmax(0, 1fr); gap: 12px; padding: 14px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface-chrome); }
.notice::before { content: ""; border-radius: 99px; background: var(--info); }
.notice.warning::before { background: var(--warning); }
.notice.danger::before { background: var(--danger); }
.notice.success::before { background: var(--success); }
.notice strong { display: block; margin-bottom: 3px; font-size: .75rem; }
.notice p { margin: 0; color: var(--secondary); font-size: .68rem; line-height: 1.5; }
.toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; margin-bottom: 14px; }
.search-wrap { position: relative; flex: 1 1 260px; }
.search-wrap::before { content: "⌕"; position: absolute; left: 12px; top: 50%; z-index: 1; color: var(--tertiary); transform: translateY(-50%); }
.search-input { padding-left: 36px; min-height: 42px; }
.toolbar select { min-height: 42px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface-soft); color: var(--secondary); padding: 0 31px 0 11px; font-size: .67rem; font-weight: 750; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.form-grid .field { margin: 0; }
.field-wide { grid-column: 1 / -1; }
.form-footer { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 9px; margin-top: 16px; }
.quick-checkin { display: grid; gap: 16px; }
.range-field { display: grid; grid-template-columns: 130px minmax(0, 1fr) 35px; align-items: center; gap: 10px; }
.range-field label { color: var(--secondary); font-size: .7rem; font-weight: 720; }
.range-field output { color: var(--primary); font-family: var(--font-display); font-size: 1.1rem; text-align: right; }
.range-field input { width: 100%; accent-color: var(--accent-bright); }
.chart { position: relative; display: flex; align-items: flex-end; gap: 8px; min-height: 175px; padding: 18px 7px 25px; border-left: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.chart-bar { position: relative; flex: 1; min-width: 16px; max-width: 60px; height: var(--height, 20%); border-radius: 7px 7px 2px 2px; background: linear-gradient(180deg, var(--accent-bright), #981224); }
.chart-bar:hover::after { content: attr(data-value); position: absolute; left: 50%; bottom: calc(100% + 8px); padding: 5px 7px; border: 1px solid var(--border); border-radius: 6px; background: #050608; color: var(--primary); font-size: .58rem; white-space: nowrap; transform: translateX(-50%); }
.chart-bar span { position: absolute; top: calc(100% + 7px); left: 50%; color: var(--tertiary); font-size: .52rem; white-space: nowrap; transform: translateX(-50%); }
.grip-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.grip-card { display: grid; min-height: 170px; padding: 17px; border: 1px solid var(--border); border-radius: 14px; background: radial-gradient(circle at 90% 0%, rgba(239,37,52,.09), transparent 43%), var(--surface-chrome); }
.grip-card .grip-icon { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid rgba(239,37,52,.25); border-radius: 12px; background: var(--accent-soft); color: var(--accent-bright); font-size: 1.25rem; }
.grip-card h4 { margin: 20px 0 3px; font-family: var(--font-display); font-size: 1.05rem; font-style: italic; text-transform: uppercase; }
.grip-card h3 { margin: 20px 0 3px; font-family: var(--font-display); font-size: 1.05rem; font-style: italic; text-transform: uppercase; }
.grip-card p { margin: 0; color: var(--secondary); font-size: .67rem; line-height: 1.45; }
.grip-card footer { display: flex; gap: 6px; flex-wrap: wrap; align-self: end; margin-top: 13px; }
.grip-card footer span { padding: 4px 6px; border-radius: 5px; background: var(--surface-soft); color: var(--tertiary); font-size: .51rem; text-transform: uppercase; }
.paywall { display: grid; place-items: center; min-height: 520px; padding: 40px 20px; border: 1px solid var(--border); border-radius: 21px; background: radial-gradient(circle at 50% 0%, rgba(239,37,52,.17), transparent 38%), linear-gradient(145deg,#111319,#08090c); text-align: center; }
.paywall-mark { display: grid; place-items: center; width: 74px; height: 74px; border: 1px solid rgba(239,37,52,.34); border-radius: 22px; background: var(--accent-soft); color: var(--accent-bright); font-family: var(--font-display); font-size: 1.9rem; transform: rotate(-4deg); }
.paywall h2 { max-width: 680px; margin: 22px 0 8px; font-family: var(--font-display); font-size: clamp(2rem,5vw,3.7rem); font-style: italic; line-height: .95; text-transform: uppercase; }
.paywall h3 { max-width: 680px; margin: 22px 0 8px; font-family: var(--font-display); font-size: clamp(2rem,5vw,3.7rem); font-style: italic; line-height: .95; text-transform: uppercase; }
.paywall p { max-width: 600px; margin: 0; color: var(--secondary); font-size: .82rem; line-height: 1.6; }
.paywall-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 23px; }
.paywall-actions a { text-decoration: none; }
.paywall-store-note { max-width: 540px; margin-top: 12px; color: var(--tertiary); font-size: .64rem; line-height: 1.5; }
.stripe-plan-header { margin-bottom: 18px; }
.modal:has(.stripe-plan-grid) { width: min(860px,100%); }
.stripe-plan-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 11px; }
.stripe-plan-card { position: relative; display: grid; min-width: 0; gap: 12px; padding: 18px 14px 14px; border: 1px solid var(--border); border-radius: 16px; background: rgba(255,255,255,.025); }
.stripe-plan-card.is-featured { border-color: rgba(242,41,47,.7); background: radial-gradient(circle at 50% 0%,rgba(242,41,47,.13),transparent 55%),rgba(255,255,255,.035); }
.stripe-plan-badge { position: absolute; top: -9px; right: 12px; padding: 4px 7px; border-radius: 999px; background: var(--accent); color: #fff; font: italic 850 .5rem var(--font-display); letter-spacing: .08em; }
.stripe-plan-card h4 { margin: 0; font: italic 850 1rem var(--font-display); }
.stripe-plan-price { display: grid; gap: 2px; }
.stripe-plan-price strong { font: italic 880 1.55rem/1 var(--font-display); }
.stripe-plan-price small,.stripe-plan-card p { color: var(--secondary); font-size: .62rem; }
.stripe-plan-card p { min-height: 2em; margin: 0; line-height: 1.4; }
.stripe-plan-card button { width: 100%; min-width: 0; padding-inline: 8px; font-size: .63rem; }
.stripe-plan-legal { margin: 16px 2px 0; color: var(--tertiary); font-size: .58rem; line-height: 1.55; }
.stripe-plan-legal a { color: var(--secondary); }
@media (max-width: 700px) { .stripe-plan-grid { grid-template-columns: 1fr; } .stripe-plan-card p { min-height: 0; } }

/* Role-specific subscription presentation, shared by locked pages and Settings. */
.billing-paywall { display:grid; grid-template-columns:1fr 1fr; width:min(1020px,100%); margin:24px auto; border:1px solid var(--border-strong); border-radius:26px; overflow:hidden; background:#121417; box-shadow:0 28px 80px #0005; text-align:left; }
.billing-paywall svg { flex:none; width:21px; height:21px; }
.billing-story { display:flex; flex-direction:column; padding:36px; background:radial-gradient(ellipse at 0 0,#6f202644,transparent 65%),linear-gradient(145deg,#1b1e25,#08090b); }
.billing-brand { display:flex; align-items:center; gap:13px; }
.billing-brand img { border-radius:12px; object-fit:contain; background:#000; }
.billing-brand div { display:grid; gap:4px; }
.billing-brand b { font-size:19px; }
.billing-brand span { color:var(--secondary); font-size:13px; }
.billing-offer { display:flex; align-items:center; gap:13px; margin-top:28px; padding:15px; border:1px solid #fb444752; border-radius:13px; background:#f2292f10; }
.billing-offer > svg { width:28px; height:28px; color:#ff484e; }
.billing-offer div { display:grid; gap:5px; }
.billing-offer b { font-size:14px; }
.billing-offer span { font-size:12px; line-height:1.45; color:#6cdda0; }
.billing-story h2 { font:italic 850 clamp(30px,3.2vw,44px)/1.04 var(--font-display); margin:30px 0 14px; letter-spacing:-.02em; color:#fff; }
.billing-story > p { margin:0; color:#bfc2ca; font-size:14px; line-height:1.65; }
.billing-features { display:grid; gap:14px; margin:27px 0 30px; padding:0; list-style:none; }
.billing-features li { display:flex; align-items:center; gap:12px; color:#e1e2e8; font-size:13px; line-height:1.5; }
.billing-features i { display:grid; place-items:center; flex:0 0 36px; height:36px; border-radius:9px; background:#ffffff0d; color:#ff484e; }
.billing-trust { display:flex; flex-wrap:wrap; gap:20px; margin-top:auto; padding-top:22px; border-top:1px solid #ffffff20; color:#a7abb6; font-size:11px; }
.billing-trust span { display:flex; align-items:center; gap:7px; }
.billing-trust svg { width:17px; height:17px; color:#62d694; }
.billing-selection { position:relative; padding:32px 30px; }
.billing-selection > h2 { margin:0 35px 8px 0; font:italic 800 26px/1.2 var(--font-display); }
.billing-selection > p:first-of-type { margin:0 0 24px; color:var(--secondary); font-size:13px; line-height:1.5; overflow-wrap:anywhere; }
.billing-selection .stripe-plan-grid { display:grid; grid-template-columns:1fr; gap:14px; border:0; padding:0; margin:0; min-width:0; }
.billing-selection .stripe-plan-card { display:flex; align-items:center; gap:12px; padding:16px; border:1.5px solid #ffffff23; border-radius:13px; background:#ffffff03; cursor:pointer; transition:border-color .15s,background .15s; }
.billing-selection .stripe-plan-card:has(input:checked) { border-color:#ff424b; background:#f2292f0e; }
.billing-selection .stripe-plan-card:has(input:focus-visible) { outline:3px solid #fff; outline-offset:3px; }
.billing-selection .stripe-plan-card:hover { border-color:#ff424baa; }
.billing-selection .stripe-plan-card input,.billing-sr-only { position:absolute; width:1px; height:1px; opacity:0; overflow:hidden; clip-path:inset(50%); }
.billing-plan-content { flex:1; min-width:0; display:grid; gap:7px; }
.billing-plan-content > b { color:#f3f3f5; font-size:14px; }
.billing-selection .stripe-plan-price { display:flex; flex-wrap:wrap; align-items:baseline; gap:7px; }
.billing-selection .stripe-plan-price strong { font:750 25px/1.1 var(--font-body); color:#fff; }
.billing-selection .stripe-plan-price small { font-size:12px; color:#b5bac5; }
.billing-plan-note { font-size:13px; line-height:1.5; color:#c3c8d2; }
.billing-plan-savings { justify-self:start; padding:4px 8px; border:1px solid #326746; border-radius:6px; color:#8fe7ac; background:#142c1e; font:650 11px/1.4 var(--font-body); }
.billing-price-basis { margin:12px 0 0; color:#b5bac5; font:400 11px/1.6 var(--font-body); }
.billing-radio { width:20px; height:20px; flex:0 0 20px; border:1.5px solid #7b8290; border-radius:50%; display:grid; place-items:center; }
.billing-radio svg { width:14px; height:14px; opacity:0; }
input:checked ~ .billing-radio { border-color:#ff424b; background:#ff424b; color:#fff; }
input:checked ~ .billing-radio svg { opacity:1; }
.billing-selection .stripe-plan-badge { left:12px; right:auto; background:#bd182c; font:750 11px var(--font-body); letter-spacing:.04em; padding:4px 8px; }
.billing-renewal { display:flex; align-items:center; justify-content:center; gap:6px; margin:18px 0 12px; color:#bac0ca; font-size:11px; line-height:1.5; }
.billing-renewal svg { color:#62d694; width:15px; height:15px; }
.billing-checkout { display:flex; align-items:center; justify-content:center; gap:10px; width:100%; min-height:52px; font-size:15px; }
.billing-checkout-note { margin:12px 0 0; color:#adb3c0; text-align:center; font-size:11px; line-height:1.6; }
.billing-selection .stripe-plan-legal { font-size:12px; color:#aeb2bc; text-align:center; line-height:1.6; margin:12px 0; }
.billing-selection .stripe-plan-legal a { color:#d9dce3; text-decoration:underline; text-underline-offset:2px; }
.billing-secondary { display:grid; gap:2px; margin-top:13px; }
.billing-secondary button { min-height:44px; border:0; border-radius:8px; background:transparent; padding:9px 4px; color:#b4bac6; font:500 12px var(--font-body); cursor:pointer; }
.billing-secondary button:hover { background:#ffffff08; color:#fff; }
.billing-paywall button:focus-visible,.billing-paywall a:focus-visible { outline:2px solid #fff; outline-offset:3px; }
.billing-close { position:absolute; top:14px; right:14px; }
.modal.billing-modal { width:min(1020px,100%); padding:0; background:#121417; }
.billing-modal .billing-paywall { width:100%; margin:0; border:0; box-shadow:none; border-radius:0; }
.billing-status { position:relative; width:min(660px,100%); margin:35px auto; padding:30px; border:1px solid var(--border); border-radius:22px; background:var(--surface-soft); }
.billing-status h2 { font:italic 800 26px var(--font-display); }
.billing-status p { color:var(--secondary); line-height:1.6; font-size:14px; }
.billing-status button { margin:8px 8px 0 0; }
@media (max-width:700px) {
  .billing-paywall { grid-template-columns:1fr; margin:8px auto; border-radius:20px; }
  .billing-story { padding:24px; }
  .billing-story h2 { font-size:32px; margin-top:22px; }
  .billing-offer { margin-top:20px; }
  .billing-features { gap:10px; margin:20px 0; }
  .billing-selection { padding:28px 22px; border-top:1px solid var(--border); }
  .billing-modal .billing-close { position:sticky; float:right; top:8px; z-index:2; margin:-16px -10px 0 0; background:#181b20; }
  .modal.billing-modal { max-height:calc(100dvh - 28px); }
}
.skeleton { overflow: hidden; min-height: 18px; border-radius: 6px; background: var(--surface-soft); }
.skeleton::after { content: ""; display: block; width: 45%; height: 100%; background: linear-gradient(90deg,transparent,rgba(255,255,255,.06),transparent); animation: shimmer 1.2s infinite; }
@keyframes shimmer { from { transform: translateX(-110%); } to { transform: translateX(260%); } }

/* Modal and toast */
.modal-layer { position: fixed; z-index: 200; inset: 0; display: grid; place-items: center; overflow-y: auto; padding: 24px; background: rgba(0,0,0,.76); backdrop-filter: blur(7px); }
.modal { width: min(560px, 100%); max-height: calc(100vh - 48px); overflow-y: auto; padding: 24px; border: 1px solid var(--border-strong); border-radius: 20px; background: linear-gradient(160deg,var(--surface-chrome),#0b0c10); box-shadow: 0 35px 100px rgba(0,0,0,.7); }
.modal-header { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 20px; }
.modal-header > div { flex: 1; }
.modal-header h3 { margin: 5px 0 0; font-family: var(--font-display); font-size: 1.5rem; font-style: italic; text-transform: uppercase; }
.modal-header p { margin: 7px 0 0; color: var(--secondary); font-size: .72rem; line-height: 1.5; }
.auth-flow-modal { width: min(520px, 100%); }
.auth-flow-modal .modal-header h3 { font-size: 1.25rem; }
.auth-flow-copy { margin: 0 0 18px; color: var(--secondary); font-size: .8rem; line-height: 1.55; }
.password-requirement-list { display: grid; gap: 12px; margin: 6px 0 20px; padding: 0; list-style: none; }
.password-requirement-list li { display: flex; align-items: center; gap: 10px; color: var(--secondary); font-size: .8rem; }
.password-requirement-list li::before { width: 6px; height: 6px; border-radius: 50%; background: var(--accent-bright); content: ""; }
.auth-flow-message { min-height: 20px; margin: 2px 0 0; color: var(--secondary); font-size: .76rem; line-height: 1.45; }
.auth-flow-message[data-state="error"] { color: var(--danger); }
.password-reset-sections { display: grid; gap: 16px; }
.password-reset-section { display: grid; gap: 12px; padding: 16px; border: 1px solid var(--border); border-radius: 14px; background: rgba(255,255,255,.025); }
.password-reset-section h4 { margin: -4px 0 0; color: var(--primary); font-size: 1rem; }
.password-reset-section > p { margin: 0; color: var(--secondary); font-size: .75rem; line-height: 1.5; }
.password-reset-section > .eyebrow { color: var(--accent-bright); font-size: .61rem; font-weight: 850; letter-spacing: .12em; }
.password-reset-section .field { margin: 0; }
.toast-region { position: fixed; z-index: 300; right: 20px; bottom: 20px; display: grid; gap: 9px; width: min(390px, calc(100vw - 40px)); }
.background-job-region { position: fixed; z-index: 290; right: 20px; bottom: 88px; display: grid; gap: 9px; width: min(430px,calc(100vw - 40px)); }
.background-job-region[hidden] { display: none; }
.mechanics-job-list,.mechanics-report-queue { display: grid; gap: 10px; }
.mechanics-job-list { margin: 4px 0 16px; }
.mechanics-report-queue { margin: 18px 0 24px; padding: 15px; border: 1px solid rgba(239,37,52,.22); border-radius: 16px; background: rgba(239,37,52,.045); }
.mechanics-report-queue > .eyebrow { margin: 0 0 2px; }
.mechanics-job-card { display: grid; grid-template-columns: 42px minmax(0,1fr) auto; align-items: center; gap: 12px; padding: 14px; border: 1px solid #34373c; border-radius: 15px; background: rgba(24,26,31,.98); box-shadow: 0 18px 48px rgba(0,0,0,.3); }
.mechanics-job-card > i { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 50%; background: rgba(239,37,52,.15); color: var(--accent-bright); }
.mechanics-job-card > i svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 2; }
.mechanics-job-card > span { display: grid; min-width: 0; gap: 3px; }
.mechanics-job-card > span b { font: italic 850 .82rem var(--font-display); }
.mechanics-job-card > span small { color: var(--secondary); font-size: .65rem; line-height: 1.38; }
.mechanics-job-card > button { min-height: 36px; padding: 7px 11px; border: 1px solid var(--border-strong); border-radius: 10px; background: rgba(255,255,255,.055); color: var(--primary); font: italic 800 .64rem var(--font-display); cursor: pointer; }
.mechanics-job-card > button:hover { border-color: var(--accent-bright); color: #fff; }
.mechanics-job-card.is-completed > i { background: rgba(68,207,143,.16); color: var(--success); }
.mechanics-job-card.is-failed > i { background: rgba(250,187,51,.14); color: var(--warning); }
.mechanics-job-card.is-compact { border-color: rgba(239,37,52,.27); }
.toast { display: grid; grid-template-columns: 4px minmax(0,1fr); gap: 11px; padding: 13px; border: 1px solid var(--border-strong); border-radius: 11px; background: rgba(19,21,27,.97); box-shadow: var(--shadow); animation: toast-in .2s ease-out; }
.toast::before { content: ""; border-radius: 10px; background: var(--success); }
.toast.error::before { background: var(--danger); }
.toast strong { display: block; font-size: .72rem; }
.toast p { margin: 3px 0 0; color: var(--secondary); font-size: .65rem; line-height: 1.4; }
@keyframes toast-in { from { opacity: 0; transform: translateY(8px); } }

@media (max-width: 1080px) {
  .span-8, .span-7 { grid-column: span 12; }
  .span-4, .span-5 { grid-column: span 6; }
  .grip-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 820px) {
  .auth-layout { grid-template-columns: 1fr; gap: 42px; }
  .auth-story { padding-top: 40px; }
  .auth-card { width: min(520px, 100%); }
  .platform-shell { grid-template-columns: 1fr; }
  .platform-sidebar { position: fixed; left: 0; transform: translateX(-105%); transition: transform .22s ease; box-shadow: 25px 0 70px rgba(0,0,0,.52); }
  .platform-sidebar.is-open { transform: translateX(0); }
  .sidebar-close, .menu-button { display: inline-grid; }
  .sidebar-scrim { position: fixed; z-index: 70; inset: 0; background: rgba(0,0,0,.62); }
  .platform-topbar { padding-inline: 15px; }
  .platform-main { padding: 20px 15px 42px; }
  .sync-state span { display: none; }
  .sync-state { width: 34px; padding: 0; justify-content: center; }
  .metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
  .auth-stage { padding-inline: 17px; }
  .auth-layout { padding-top: 20px; }
  .auth-story h1 { font-size: clamp(3rem, 15.3vw, 4.7rem); }
  .auth-feature-grid { grid-template-columns: 1fr; }
  .page-hero { grid-template-columns: 1fr; }
  .hero-stat { text-align: left; }
  .span-4, .span-5, .span-6 { grid-column: span 12; }
  .grip-grid, .form-grid { grid-template-columns: 1fr; }
  .metric-grid { grid-template-columns: 1fr 1fr; }
  .range-field { grid-template-columns: 104px minmax(0, 1fr) 30px; }
  .list-row { grid-template-columns: 1fr; }
  .row-actions { justify-content: flex-start; }
  .topbar-actions .icon-button:not(#refresh-page), .topbar-avatar { display: none; }
  .modal-layer { padding: 14px; }
  .modal { padding: 19px; max-height: calc(100vh - 28px); }
}

@media (max-width: 820px) {
  .background-job-region { right: 12px; bottom: calc(102px + env(safe-area-inset-bottom)); width: calc(100vw - 24px); }
  .mechanics-job-card { grid-template-columns: 38px minmax(0,1fr) auto; padding: 12px; }
  .mechanics-job-card > i { width: 38px; height: 38px; }
  .mechanics-job-card > span small { max-width: 48vw; }
}

/* Coach athlete workspace mirrors the native full-height athlete profile sheet. */
.coach-today-row { width: 100%; padding: 0; border: 0; border-bottom: 1px solid var(--border); background: transparent; color: white; text-align: left; cursor: pointer; }
.coach-today-row:hover { background: rgba(255,255,255,.025); }
.coach-today-row .is-attention { background: rgba(255,180,39,.14); color: var(--warning); }
.coach-today-row .is-progress { background: rgba(218,226,242,.12); color: #dce3f1; }
.coach-today-row .is-pending { color: var(--tertiary); }
.coach-roster-row { display: grid; grid-template-columns: minmax(0,1fr) auto; padding: 0; }
.coach-roster-open { display: grid; grid-template-columns: auto minmax(0,1fr) auto auto; align-items: center; gap: 13px; min-width: 0; padding: 14px 4px; border: 0; background: transparent; color: white; text-align: left; cursor: pointer; }
.coach-roster-open:hover .list-row-main b { color: var(--accent-bright); }
.coach-roster-open > strong { color: var(--tertiary); font-size: 1.25rem; }
.modal.coach-athlete-modal { width: min(1020px, 100%); max-height: min(94dvh, 1050px); padding: 0; overflow: hidden; border-radius: 30px; background: #090a0d; }
.coach-athlete-sheet-head { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 15px; padding: 24px 28px 20px; border-bottom: 1px solid var(--border); background: linear-gradient(180deg,#101216,#090a0d); }
.coach-athlete-sheet-head p { margin: 0; color: var(--accent-bright); font: italic 850 .65rem var(--font-display); letter-spacing: .12em; }
.coach-athlete-sheet-head h2 { margin: 3px 0; font: italic 850 1.8rem/1 var(--font-display); }
.coach-athlete-sheet-head span { color: var(--success); font-size: .75rem; }
.coach-athlete-sheet-head .icon-button { width: 48px; height: 48px; font-size: 1.7rem; }
.coach-athlete-tabs { display: flex; gap: 10px; padding: 17px 28px; overflow-x: auto; border-bottom: 1px solid var(--border); scrollbar-width: none; }
.coach-athlete-tabs::-webkit-scrollbar { display: none; }
.coach-athlete-tabs button { flex: 0 0 auto; min-height: 46px; padding: 0 18px; border: 1px solid #303339; border-radius: 15px; background: #17191d; color: var(--secondary); font: italic 800 .75rem var(--font-display); cursor: pointer; }
.coach-athlete-tabs button.is-active { border-color: var(--accent-bright); background: var(--accent-soft); color: white; }
.coach-athlete-panels { max-height: calc(94dvh - 190px); padding: 22px 28px 42px; overflow-y: auto; }
.coach-athlete-panels > div { display: grid; gap: 18px; }
.coach-profile-loading { display: grid; min-height: 260px; place-content: center; justify-items: center; gap: 14px; color: var(--secondary); }
.coach-profile-loading .button-spinner { display: block; }
.coach-profile-card,.coach-current-program { padding: 24px; border: 1px solid #2d3035; border-radius: 20px; background: #131518; }
.coach-profile-card h2 { margin: 4px 0 16px; font: italic 850 1.6rem var(--font-display); }
.coach-profile-kicker { margin: 0 0 5px; color: var(--tertiary); font: italic 850 .65rem var(--font-display); letter-spacing: .12em; }
.coach-profile-status { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 15px 0; border-bottom: 1px solid var(--border); color: var(--secondary); }
.coach-profile-status b { color: var(--success); font: italic 800 .8rem var(--font-display); }
.coach-readiness-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin-top: 13px; }
.coach-readiness-metric { min-width: 0; padding: 16px; border: 1px solid #35383d; border-radius: 16px; background: rgba(255,255,255,.035); }
.coach-readiness-metric > strong { display: block; font: italic 850 1.5rem var(--font-display); }
.coach-readiness-metric > span { display: block; margin-top: 4px; color: var(--secondary); font-size: .7rem; }
.coach-readiness-metric .chart { height: 58px; margin-top: 12px; }
.coach-readiness-metric.is-red .chart-bar { background: var(--accent-bright); }
.coach-readiness-metric.is-green .chart-bar { background: var(--success); }
.coach-readiness-metric.is-amber .chart-bar { background: var(--warning); }
.coach-readiness-metric.is-orange .chart-bar { background: #ff7d2d; }
.coach-current-program { display: grid; gap: 17px; }
.coach-current-program > header { display: flex; justify-content: space-between; gap: 18px; }
.coach-current-program > header p { margin: 0; color: var(--tertiary); font: italic 850 .62rem var(--font-display); letter-spacing: .12em; }
.coach-current-program > header h2 { margin: 5px 0 4px; font: italic 850 1.7rem/1 var(--font-display); }
.coach-current-program > header span { color: var(--secondary); font-size: .7rem; }
.coach-current-program > header > b { align-self: start; padding: 7px 11px; border-radius: 999px; background: var(--accent-soft); color: var(--accent-bright); font: italic 800 .6rem var(--font-display); }
.coach-program-progress { display: grid; grid-template-columns: auto minmax(0,1fr); align-items: center; gap: 16px; padding: 15px; border-radius: 16px; background: rgba(255,255,255,.04); }
.coach-program-progress div { display: grid; }.coach-program-progress strong { font: italic 850 1.2rem var(--font-display); }.coach-program-progress small { color: var(--secondary); font-size: .6rem; }
.coach-program-progress progress { width: 100%; height: 8px; accent-color: var(--accent-bright); }
.coach-next-session { display: grid; grid-template-columns: 62px minmax(0,1fr); align-items: center; gap: 15px; padding: 14px; border: 1px solid rgba(232,41,41,.35); border-radius: 16px; background: rgba(232,41,41,.07); }
.coach-next-session time { font: italic 850 .75rem var(--font-display); text-align: center; }.coach-next-session span { display: grid; gap: 3px; }.coach-next-session small { color: var(--tertiary); font-size: .55rem; font-weight: 850; letter-spacing: .1em; }.coach-next-session b { font: italic 820 .86rem var(--font-display); }
.coach-profile-stats { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; margin-bottom: 17px; }
.coach-profile-stats span { display: grid; gap: 5px; padding: 15px; border-radius: 15px; background: rgba(255,255,255,.05); }.coach-profile-stats strong { font: italic 850 1.25rem var(--font-display); }.coach-profile-stats small { color: var(--secondary); font-size: .64rem; }
.coach-profile-description,.coach-remove-athlete > p:not(.coach-profile-kicker) { margin: -6px 0 17px; color: var(--secondary); font-size: .76rem; line-height: 1.5; }
.coach-program-source-list { display: grid; gap: 10px; }
.coach-program-source { display: grid; gap: 12px; padding: 12px; border: 1px solid #31343a; border-radius: 15px; background: rgba(255,255,255,.035); }
.coach-program-source > header { display: grid; grid-template-columns: 34px minmax(0,1fr); align-items: start; gap: 10px; }.coach-program-discipline-icon { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; background: var(--accent-soft); color: var(--accent-bright); font: normal 1rem/1 var(--font-body); }.coach-program-discipline-icon svg { width: 17px; height: 17px; stroke: currentColor; fill: none; stroke-width: 2; }.coach-program-source header span { display: grid; gap: 2px; }.coach-program-source b { font: italic 800 .86rem var(--font-display); }.coach-program-source small { color: var(--secondary); font-size: .66rem; line-height: 1.35; }
.coach-program-source-options { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }.coach-program-source-option { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 7px; min-height: 44px; padding: 0 11px; border: 1px solid var(--border); border-radius: 11px; background: #17191d; color: var(--secondary); font: italic 800 .72rem var(--font-display); text-align: left; cursor: pointer; }.coach-program-source-option i { color: inherit; font: normal 1rem/1 var(--font-body); }.coach-program-source-option svg { width: 15px; height: 15px; fill: var(--accent-bright); stroke: #fff; stroke-width: 1.8; }.coach-program-source-option.is-selected { border-color: rgba(240,45,53,.72); background: var(--accent-soft); color: white; }.coach-program-source-option.is-locked { color: var(--tertiary); cursor: not-allowed; }.coach-program-source-lock { margin: -3px 0 0; color: var(--tertiary); font-size: .62rem; line-height: 1.35; }
.coach-program-control-save { width: 100%; margin-top: 14px; }
.coach-record-summary { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.coach-record-summary span { display: grid; gap: 5px; min-width: 0; padding: 15px; border-radius: 15px; background: rgba(255,255,255,.05); }.coach-record-summary strong { font: italic 850 1.3rem var(--font-display); }.coach-record-summary small { color: var(--secondary); font-size: .65rem; line-height: 1.3; }
.coach-remove-athlete { border-color: rgba(240,45,53,.38); }.coach-remove-athlete .danger-button { width: 100%; }
.coach-athlete-details h2 { margin-bottom: 15px; }.coach-athlete-details dl { display: grid; margin: 0; overflow: hidden; border: 1px solid #30333a; border-radius: 15px; background: rgba(255,255,255,.025); }.coach-athlete-details dl > div { display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 54px; padding: 12px 15px; border-bottom: 1px solid var(--border); }.coach-athlete-details dl > div:last-child { border-bottom: 0; }.coach-athlete-details dt { color: var(--secondary); font-size: .73rem; }.coach-athlete-details dd { margin: 0; color: white; font: italic 800 .82rem var(--font-display); text-align: right; }
.coach-daily-programs,.coach-history-list { display: grid; border-top: 1px solid var(--border); }
.coach-daily-programs > div,.coach-history-row { display: grid; grid-template-columns: 68px minmax(0,1fr); align-items: center; gap: 13px; min-height: 64px; padding: 11px 0; border-bottom: 1px solid var(--border); }
.coach-daily-programs time,.coach-history-row time { color: var(--tertiary); font: italic 800 .66rem var(--font-display); text-align: center; }.coach-daily-programs span,.coach-history-row span { display: grid; gap: 3px; min-width: 0; }.coach-daily-programs small,.coach-history-row small { color: var(--secondary); font-size: .65rem; }.coach-daily-programs b,.coach-history-row b { overflow: hidden; font: italic 800 .84rem var(--font-display); text-overflow: ellipsis; white-space: nowrap; }
.coach-record-details { margin-top: 7px; color: var(--secondary); font-size: .68rem; }.coach-record-details summary { color: var(--accent-bright); cursor: pointer; font-weight: 750; }.coach-record-details > div { display: grid; gap: 2px; padding: 7px 0 0; }.coach-record-details > div b { overflow: visible; color: var(--secondary); font: 500 .67rem/1.4 var(--font-body); white-space: normal; word-break: break-word; }
.coach-template-assignments { display: grid; gap: 9px; }.coach-template-assignments button { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; padding: 12px; border: 1px solid #32353b; border-radius: 13px; background: rgba(255,255,255,.035); color: white; text-align: left; cursor: pointer; }.coach-template-assignments button:hover { border-color: rgba(240,45,53,.62); }.coach-template-assignments span { display: grid; gap: 3px; min-width: 0; }.coach-template-assignments b { overflow: hidden; font: italic 800 .8rem var(--font-display); text-overflow: ellipsis; white-space: nowrap; }.coach-template-assignments small { color: var(--secondary); font-size: .64rem; }.coach-template-assignments em { color: var(--accent-bright); font: italic 800 .68rem var(--font-display); white-space: nowrap; }.coach-new-program { width: 100%; margin-top: 12px; }
.coach-program-card { display: grid; gap: 13px; }.coach-program-card > h2 { margin-bottom: 0; }.coach-program-title { display: grid; grid-template-columns: 38px minmax(0,1fr) auto; align-items: start; gap: 11px; }.coach-program-title > i,.coach-program-empty > i { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 11px; background: var(--accent-soft); color: var(--accent-bright); font: normal 1rem/1 var(--font-body); }.coach-program-card.is-strength .coach-program-title > i,.coach-program-card.is-strength .coach-program-empty > i { background: rgba(218,226,242,.11); color: #dce3f1; }.coach-program-title span,.coach-program-empty span { display: grid; gap: 3px; min-width: 0; }.coach-program-title b,.coach-program-empty b { overflow: hidden; font: italic 850 1rem var(--font-display); text-overflow: ellipsis; white-space: nowrap; }.coach-program-title small,.coach-program-empty small { color: var(--secondary); font-size: .67rem; }.coach-program-title em { padding: 6px 8px; border: 1px solid var(--border); border-radius: 999px; color: var(--secondary); font: italic 800 .55rem var(--font-display); white-space: nowrap; }.coach-program-card.is-throwing .coach-program-title em { border-color: rgba(240,45,53,.36); background: var(--accent-soft); color: var(--accent-bright); }.coach-block-progress { display: grid; gap: 8px; padding: 12px; border: 1px solid var(--border); border-radius: 13px; background: var(--surface-soft); }.coach-block-progress header,.coach-block-progress footer { display: flex; justify-content: space-between; gap: 10px; }.coach-block-progress header b { font: italic 800 .82rem var(--font-display); }.coach-block-progress header span,.coach-block-progress footer { color: var(--secondary); font-size: .64rem; }.coach-block-progress > i { display: block; height: 7px; overflow: hidden; border-radius: 999px; background: #282b31; }.coach-block-progress > i > b { display: block; height: 100%; border-radius: inherit; background: var(--accent-bright); }.coach-program-card.is-strength .coach-block-progress > i > b { background: #dce3f1; }.coach-block-progress footer small { color: var(--tertiary); }.coach-program-metrics,.coach-activity-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }.coach-program-metrics span,.coach-activity-summary span { display: grid; align-content: start; gap: 3px; min-height: 66px; padding: 10px; border: 1px solid var(--border); border-radius: 11px; background: var(--surface-soft); }.coach-program-metrics small { color: var(--tertiary); font: 800 .5rem var(--font-display); letter-spacing: .08em; }.coach-program-metrics b,.coach-activity-summary b { font: italic 850 1rem var(--font-display); }.coach-program-metrics em { color: var(--secondary); font: normal .57rem var(--font-body); }.coach-program-ended { padding: 11px; border-radius: 12px; background: var(--surface-soft); color: var(--secondary); font-size: .7rem; }.coach-program-schedule-toggle { display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 5px 0 0; border: 0; background: transparent; color: white; font: italic 800 .72rem var(--font-display); cursor: pointer; }.coach-program-schedule-toggle span { color: var(--tertiary); font-size: 1rem; }.coach-program-schedule { display: grid; margin-top: -2px; border-top: 1px solid var(--border); }.coach-program-schedule > div { display: grid; grid-template-columns: 18px minmax(0,1fr) auto; align-items: center; gap: 9px; padding: 9px 0; border-bottom: 1px solid var(--border); }.coach-program-schedule > div > i { font: normal .78rem var(--font-body); color: var(--tertiary); text-align: center; }.coach-program-schedule .is-completed > i { color: var(--success); }.coach-program-schedule .is-overdue > i { color: var(--warning); }.coach-program-schedule .is-today > i,.coach-program-schedule .is-today em { color: var(--accent-bright); }.coach-program-schedule span { display: grid; gap: 2px; }.coach-program-schedule b { font: italic 800 .76rem var(--font-display); }.coach-program-schedule small { color: var(--secondary); font-size: .6rem; }.coach-program-schedule em { font: italic 800 .58rem var(--font-display); }.coach-program-schedule > p { margin: 0; padding: 11px 0; color: var(--secondary); font-size: .7rem; }.coach-program-empty { display: grid; grid-template-columns: 36px minmax(0,1fr); gap: 11px; padding: 12px; border: 1px solid var(--border); border-radius: 13px; background: var(--surface-soft); }
.coach-other-programs-toggle { color: var(--secondary); }.coach-other-programs { display: grid; gap: 8px; margin-top: -3px; padding-top: 8px; border-top: 1px solid var(--border); }.coach-other-programs > div { display: grid; grid-template-columns: 6px minmax(0,1fr); align-items: start; gap: 9px; }.coach-other-programs > div > i { width: 6px; height: 6px; margin-top: 6px; border-radius: 50%; background: var(--tertiary); }.coach-other-programs span { display: grid; gap: 2px; }.coach-other-programs b { font: italic 800 .72rem var(--font-display); }.coach-other-programs small { color: var(--secondary); font-size: .59rem; }
.coach-today-programs { display: grid; gap: 14px; }.coach-today-programs h2 { margin-bottom: 0; }.coach-today-program { display: grid; gap: 10px; padding-top: 12px; border-top: 1px solid var(--border); }.coach-today-program > button { display: grid; grid-template-columns: 34px minmax(0,1fr) auto auto; align-items: center; gap: 10px; width: 100%; padding: 0; border: 0; background: transparent; color: white; text-align: left; cursor: pointer; }.coach-today-program > button > i { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; background: var(--accent-soft); color: var(--accent-bright); font: normal .9rem var(--font-body); }.coach-today-program.is-strength > button > i { background: rgba(218,226,242,.11); color: #dce3f1; }.coach-today-program > button span { display: grid; gap: 2px; }.coach-today-program > button b { font: italic 850 .84rem var(--font-display); }.coach-today-program > button strong { padding: 6px 9px; border-radius: 999px; background: var(--surface-soft); color: var(--secondary); font: italic 800 .54rem var(--font-display); white-space: nowrap; }.coach-today-program > button em { color: var(--tertiary); font: normal 1rem var(--font-body); }.coach-today-program-body { display: grid; gap: 9px; padding: 11px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface-soft); }.coach-today-program-body h3 { margin: 0; font: italic 800 .9rem var(--font-display); }.coach-today-program-body > p,.coach-today-rest { margin: 0; color: var(--secondary); font-size: .67rem; line-height: 1.45; }.coach-today-program-body article { display: grid; grid-template-columns: 20px minmax(0,1fr); gap: 8px; padding: 9px; border: 1px solid var(--border); border-radius: 10px; }.coach-today-program-body article > i { display: grid; place-items: center; width: 20px; height: 20px; border-radius: 5px; background: var(--accent-soft); color: var(--accent-bright); font: normal .75rem var(--font-body); }.coach-today-program-body article span { display: grid; gap: 2px; }.coach-today-program-body article b { font: italic 800 .7rem var(--font-display); }.coach-today-program-body article small { color: var(--secondary); font-size: .58rem; }.coach-today-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }.coach-today-metrics span { display: grid; gap: 3px; min-height: 48px; padding: 8px 9px; border-radius: 10px; background: #191b20; }.coach-today-metrics small { color: var(--tertiary); font: italic 800 .48rem var(--font-display); }.coach-today-metrics b { overflow: hidden; font: italic 800 .64rem var(--font-display); text-overflow: ellipsis; white-space: nowrap; }.coach-today-subsection { display: grid; gap: 8px; padding-top: 3px; }.coach-today-subsection > button { display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 0; border: 0; background: transparent; color: var(--accent-bright); font: italic 800 .57rem var(--font-display); letter-spacing: .08em; cursor: pointer; }.coach-today-program.is-strength .coach-today-subsection > button { color: #dce3f1; }.coach-today-subsection > button span { display: inline-flex; align-items: center; gap: 7px; }.coach-today-subsection > button b { padding: 3px 6px; border-radius: 999px; background: #191b20; color: var(--secondary); font-size: .55rem; }.coach-today-subsection > button em { color: var(--tertiary); font: normal .85rem var(--font-body); }.coach-today-subsection > div { display: grid; gap: 7px; }.coach-today-rest { padding: 10px 0 0 44px; }
.coach-activity-card { display: grid; gap: 10px; }.coach-activity-card h2 { margin-bottom: 0; }.coach-activity-summary span { min-height: 52px; border: 0; padding: 9px 10px; }.coach-activity-summary small { color: var(--secondary); font-size: .57rem; }.coach-calendar-label { margin: 1px 0 -3px; color: var(--tertiary); font: italic 800 .54rem var(--font-display); letter-spacing: .1em; }.coach-activity-weekdays,.coach-activity-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 5px; }.coach-activity-weekdays span { color: var(--tertiary); font-size: .56rem; text-align: center; }.coach-activity-grid span { display: grid; min-height: 29px; place-items: center; border-radius: 8px; background: var(--surface-soft); color: var(--tertiary); font: italic 800 .58rem var(--font-display); }.coach-activity-grid span.is-completed { background: var(--success); color: #08130d; }.coach-activity-grid span.is-progress { background: #dce3f1; color: #11151c; }.coach-activity-grid span.is-scheduled { background: var(--warning); color: #221903; }.coach-activity-grid span.is-current { outline: 1.5px solid var(--accent-bright); outline-offset: 1px; }.coach-activity-legend { display: flex; flex-wrap: wrap; gap: 11px; color: var(--secondary); font-size: .56rem; }.coach-activity-legend span { display: inline-flex; align-items: center; gap: 5px; }.coach-activity-legend span::before { width: 9px; height: 9px; border-radius: 3px; background: var(--surface-soft); content: ""; }.coach-activity-legend .is-completed::before { background: var(--success); }.coach-activity-legend .is-progress::before { background: #dce3f1; }.coach-activity-legend .is-scheduled::before { background: var(--warning); }
.coach-mechanics-tabs { display: flex; gap: 8px; margin: 0 0 17px; padding: 5px; border-radius: 14px; background: #090a0d; }.coach-mechanics-tabs button { flex: 1; min-height: 40px; padding: 0 12px; border: 1px solid transparent; border-radius: 10px; background: transparent; color: var(--secondary); font: italic 800 .7rem var(--font-display); cursor: pointer; }.coach-mechanics-tabs button.is-active { border-color: rgba(240,45,53,.5); background: var(--accent-soft); color: white; }.coach-mechanics-tabs span { margin-left: 4px; color: var(--tertiary); font: 700 .65rem var(--font-body); }
.team-consent-callout,.team-consent-guardian { padding: 16px; border: 1px solid var(--border); border-radius: 16px; background: var(--surface-soft); }.team-consent-callout b,.team-consent-guardian h4 { font: italic 850 .95rem var(--font-display); }.team-consent-callout p,.team-consent-guardian p { margin: 6px 0 0; color: var(--secondary); font-size: .74rem; line-height: 1.5; }.team-consent-scopes { display: grid; gap: 9px; margin-top: 12px; }.team-consent-scopes label { display: grid; grid-template-columns: auto minmax(0,1fr); align-items: start; gap: 11px; padding: 12px; border: 1px solid var(--border); border-radius: 13px; background: rgba(255,255,255,.025); cursor: pointer; }.team-consent-scopes input { width: 17px; height: 17px; margin-top: 2px; accent-color: var(--accent-bright); }.team-consent-scopes span { display: grid; gap: 3px; }.team-consent-scopes b { font-size: .78rem; }.team-consent-scopes small { color: var(--secondary); font-size: .66rem; line-height: 1.35; }.team-consent-guardian { display: grid; gap: 12px; }.team-consent-guardian .eyebrow { margin: 0 0 -7px; }.team-consent-guardian .secondary-button { width: 100%; }.choice-row { display: flex; align-items: flex-start; gap: 9px; color: var(--secondary); font-size: .72rem; line-height: 1.4; }.choice-row input { margin-top: 2px; accent-color: var(--accent-bright); }

@media (max-width: 700px) {
  .modal.coach-athlete-modal { max-height: 97dvh; border-radius: 30px 30px 0 0; }
  .coach-athlete-sheet-head { padding: 20px 16px 16px; }.coach-athlete-sheet-head h2 { font-size: 1.45rem; }.coach-athlete-sheet-head .settings-avatar { width: 54px; height: 54px; }
  .coach-athlete-tabs { padding: 13px 16px; }.coach-athlete-tabs button { min-height: 42px; padding-inline: 14px; }
  .coach-athlete-panels { max-height: calc(97dvh - 175px); padding: 16px 14px calc(28px + env(safe-area-inset-bottom)); }
  .coach-profile-card,.coach-current-program { padding: 17px; border-radius: 18px; }
  .coach-readiness-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }.coach-readiness-metric { padding: 13px; }.coach-readiness-metric > strong { font-size: 1.25rem; }
  .coach-profile-stats { grid-template-columns: 1fr; }
  .coach-record-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }.coach-daily-programs > div,.coach-history-row { grid-template-columns: 58px minmax(0,1fr); }
  .coach-athlete-details dl > div { align-items: start; flex-direction: column; gap: 4px; }.coach-athlete-details dd { text-align: left; }
  .coach-program-title { grid-template-columns: 38px minmax(0,1fr); }.coach-program-title em { grid-column: 2; justify-self: start; }
  .coach-program-metrics,.coach-activity-summary { gap: 6px; }.coach-program-metrics span,.coach-activity-summary span { padding: 8px; }
  .coach-activity-weekdays,.coach-activity-grid { gap: 4px; }.coach-activity-grid span { min-height: 27px; font-size: .54rem; }
}

/* Native close-confirmation overlay for recoverable template drafts. */
.modal.coach-builder-modal { position: relative; }
.coach-builder-close-confirmation { position: absolute; z-index: 20; inset: 0; display: grid; place-items: center; padding: 24px; overflow: auto; background: rgba(0,0,0,.74); backdrop-filter: blur(5px); }
.coach-builder-close-panel { display: grid; justify-items: center; gap: 10px; width: min(430px,100%); padding: 25px; border: 1px solid #3a3d43; border-radius: 23px; background: linear-gradient(150deg,#1a1c20,#121417); box-shadow: 0 30px 70px rgba(0,0,0,.62); text-align: center; }
.coach-builder-close-panel > i { display: grid; width: 66px; height: 66px; place-items: center; border: 1px solid rgba(246,183,47,.36); border-radius: 50%; background: rgba(246,183,47,.12); color: #f6b72f; font: normal 2rem/1 var(--font-body); font-style: normal; }
.coach-builder-close-panel > p { margin: 5px 0 0; color: #f6b72f; font: italic 850 .65rem var(--font-display); letter-spacing: .12em; }
.coach-builder-close-panel > h3 { margin: 0; color: var(--primary); font: italic 900 1.52rem/1.05 var(--font-display); }
.coach-builder-close-panel > span { color: var(--secondary); font-size: .75rem; line-height: 1.5; }
.coach-builder-close-panel > div { display: grid; width: 100%; gap: 9px; margin-top: 8px; }.coach-builder-close-panel button { min-height: 50px; font: italic 850 .77rem var(--font-display); }.coach-builder-close-panel .text-button { min-height: 38px; color: #f6b72f; }
@media (max-width: 700px) { .coach-builder-close-confirmation { align-items: end; padding: 14px; }.coach-builder-close-panel { padding: 22px 18px calc(22px + env(safe-area-inset-bottom)); border-radius: 23px; } }

/* Native roster and template-library rows. */
.coach-native-primary { min-height: 53px; border-radius: 14px; box-shadow: 0 11px 24px rgba(240,45,53,.17); }
.coach-native-library-tools { gap: 16px; padding: 18px; border-radius: 18px; background: linear-gradient(145deg,#17191d,#121417); }.coach-native-library-tools .search-wrap { position: relative; display: grid; grid-template-columns: 20px minmax(0,1fr) auto; align-items: center; gap: 9px; min-height: 48px; padding: 0 13px; border: 1px solid #303339; border-radius: 12px; background: #1b1d21; }.coach-native-library-tools .search-wrap > span { color: var(--accent-bright); font-size: 1.1rem; }.coach-native-library-tools .search-input { min-width: 0; min-height: 44px; padding: 0; border: 0; background: transparent; }.coach-search-clear { display: grid; width: 25px; height: 25px; place-items: center; border: 0; border-radius: 50%; background: transparent; color: var(--tertiary); font-size: 1.2rem; cursor: pointer; }.coach-native-library-tools > div { align-items: center; }.coach-native-library-tools > div b { font-size: .7rem; }.coach-native-library-tools > div small { font-size: .7rem; }.coach-sort-control { display: grid; grid-template-columns: 16px minmax(104px,auto); align-items: center; gap: 7px; min-height: 42px; padding: 0 10px; border: 1px solid #34373c; border-radius: 11px; background: #202226; color: #d5d6d9; }.coach-sort-control > span { color: var(--accent-bright); font-size: .85rem; }.coach-sort-control select { width: auto; max-width: 170px; min-height: 40px; padding: 0 19px 0 0; border: 0; border-radius: 0; background: transparent; font-size: .67rem; }
.coach-roster-list,.coach-template-list { gap: 11px; }.coach-roster-row,.coach-template-row { min-height: 82px; padding: 9px 11px; border-color: #303339; border-radius: 17px; background: linear-gradient(145deg,#17191d,#141619); }.coach-roster-open { display: grid; grid-template-columns: 45px minmax(0,1fr) 20px; align-items: center; gap: 12px; width: 100%; min-width: 0; padding: 4px; border: 0; background: transparent; color: var(--primary); text-align: left; cursor: pointer; }.coach-roster-open:hover .list-row-main b,.coach-template-row > button:first-child:hover .list-row-main b { color: var(--accent-bright); }.coach-row-avatar { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 50%; background: #292b30; color: #d2d3d6; font: italic 850 .62rem var(--font-display); font-style: normal; }.coach-roster-open .list-row-main,.coach-template-row .list-row-main { gap: 5px; }.coach-roster-open .list-row-main b,.coach-template-row .list-row-main b { font-size: 1.03rem; }.coach-roster-open .list-row-main small,.coach-template-row .list-row-main small { font-size: .69rem; line-height: 1.35; }.coach-roster-open .list-row-main small.is-active { color: var(--success); }.coach-roster-open .list-row-main small.is-warning { color: #f6b72f; }.coach-roster-open > strong,.coach-template-row > button:first-child > strong { color: var(--tertiary); font: normal 1.45rem/1 var(--font-body); }.coach-row-action { display: grid; width: 42px; height: 42px; place-items: center; border: 1px solid rgba(246,183,47,.26); border-radius: 11px; background: rgba(246,183,47,.09); color: #f6b72f; font: normal 1.25rem/1 var(--font-body); cursor: pointer; }.coach-row-action.is-delete { font-size: 1.15rem; }.coach-template-row > button:first-child { grid-template-columns: 46px minmax(0,1fr) 20px; gap: 12px; padding: 4px; }.template-discipline-icon { width: 42px; height: 42px; border-radius: 12px; font-size: 1rem; }.coach-pending-invites { gap: 11px; }.coach-pending-invites h2 { color: var(--primary); font-size: 1.18rem; }.coach-pending-invites article { min-height: 71px; padding: 14px 16px; border-radius: 16px; }.coach-pending-invites article b { font-size: .87rem; }.coach-pending-invites article small { font-size: .7rem; }.coach-pending-invites button { min-height: 36px; padding: 0 5px; }
.modal.coach-destructive-modal { width: min(430px,calc(100vw - 28px)); padding: 0; overflow: hidden; border: 1px solid #3a3d43; border-radius: 23px; background: #15171a; box-shadow: 0 30px 80px rgba(0,0,0,.65); }.coach-destructive-confirmation { display: grid; justify-items: center; gap: 10px; padding: 25px; text-align: center; }.coach-destructive-confirmation > i { display: grid; width: 68px; height: 68px; place-items: center; border: 1px solid rgba(246,183,47,.36); border-radius: 50%; background: rgba(246,183,47,.13); color: #f6b72f; font: normal 2rem/1 var(--font-body); font-style: normal; }.coach-destructive-confirmation > p { margin: 5px 0 0; color: #f6b72f; font: italic 850 .64rem var(--font-display); letter-spacing: .12em; }.coach-destructive-confirmation > h3 { margin: 0; font: italic 900 1.48rem/1.08 var(--font-display); }.coach-destructive-confirmation > span { color: var(--secondary); font-size: .75rem; line-height: 1.5; }.coach-destructive-confirmation > div { display: grid; width: 100%; gap: 9px; margin-top: 8px; }.coach-destructive-confirmation button { min-height: 49px; font: italic 850 .78rem var(--font-display); }.coach-destructive-confirmation .danger-button { border-color: rgba(246,183,47,.38); background: rgba(246,183,47,.12); color: #f6b72f; }
@media (max-width: 700px) { .coach-native-library-tools { padding: 15px; }.coach-sort-control { grid-template-columns: 14px minmax(0,1fr); max-width: 158px; }.coach-sort-control select { max-width: 130px; font-size: .61rem; }.coach-roster-row,.coach-template-row { min-height: 76px; padding: 8px; }.coach-pending-invites article > div { width: 100%; justify-content: flex-end; } }

/* Fuel label scanner follows the native camera-first Nutrition Facts workflow. */
.modal.nutrition-label-modal { width: min(720px, 100%); max-height: min(96dvh, 1040px); padding: 0; overflow: hidden; border-radius: 30px; background: #0b0c0f; }
.nutrition-label-scanner { max-height: min(96dvh, 1040px); overflow-y: auto; background: #0b0c0f; scrollbar-width: thin; }
.nutrition-scan-camera { position: relative; min-height: 460px; overflow: hidden; background: linear-gradient(135deg, #000, #141519 58%, #242529); }
.nutrition-scan-image { position: absolute; inset: 0; }
.nutrition-scan-image::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, rgba(0,0,0,.45), transparent 25%, transparent 66%, rgba(0,0,0,.48)); }
.nutrition-scan-image video,.nutrition-scan-image img { display: block; width: 100%; height: 100%; object-fit: cover; background: #050506; }
.nutrition-scan-image img { object-fit: contain; }
.nutrition-scan-camera > header { position: relative; z-index: 3; display: grid; grid-template-columns: 58px minmax(0,1fr) 58px; align-items: center; gap: 12px; padding: 20px 22px 0; }
.nutrition-scan-camera > header h2 { margin: 0; font: italic 850 1rem var(--font-display); text-align: center; }
.nutrition-scan-close { display: grid; place-items: center; width: 58px; height: 58px; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; background: rgba(255,255,255,.14); color: white; font-size: 2rem; line-height: 1; cursor: pointer; backdrop-filter: blur(10px); }
.nutrition-capture-guide { position: absolute; z-index: 2; inset: 118px 24px 25px; display: grid; align-content: start; gap: 18px; }
.nutrition-capture-guide > div { display: grid; place-items: center; align-content: center; gap: 12px; min-height: 190px; padding: 24px; border: 4px solid rgba(255,255,255,.9); border-radius: 22px; color: rgba(255,255,255,.86); text-align: center; }
.nutrition-capture-guide > div span { font-size: 2.4rem; line-height: 1; }
.nutrition-capture-guide > div b { font: italic 800 .92rem var(--font-display); }
.nutrition-capture-guide > section,.nutrition-retake-controls { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.nutrition-capture-guide button,.nutrition-retake-controls button { min-height: 44px; border: 1px solid rgba(255,255,255,.18); border-radius: 999px; background: rgba(0,0,0,.7); color: white; font-size: .72rem; cursor: pointer; backdrop-filter: blur(10px); }
.nutrition-capture-guide button.is-primary,.nutrition-retake-controls button.is-primary { border-color: white; background: white; color: #070708; }
.nutrition-retake-controls { position: absolute; z-index: 3; right: 24px; bottom: 22px; left: 24px; }
.nutrition-reading { position: absolute; z-index: 5; inset: 0; display: flex; align-items: center; justify-content: center; gap: 10px; background: rgba(0,0,0,.28); }
.nutrition-reading > b { padding: 13px 17px 13px 42px; border-radius: 999px; background: rgba(0,0,0,.76); font-size: .74rem; backdrop-filter: blur(9px); }
.nutrition-reading .button-spinner { z-index: 1; margin-right: -38px; transform: none; }
.nutrition-choose-portion { position: absolute; z-index: 4; right: 22px; bottom: 22px; min-height: 56px; padding: 0 25px; border: 0; border-radius: 999px; background: white; color: #060607; font: italic 850 .95rem var(--font-display); cursor: pointer; box-shadow: 0 12px 30px rgba(0,0,0,.35); }
.nutrition-scan-review { position: relative; z-index: 6; margin-top: -18px; padding: 0 20px 32px; }
.nutrition-scan-empty,.nutrition-scan-error { padding: 21px; border: 1px solid #303238; border-radius: 21px; background: #14161a; box-shadow: 0 16px 38px rgba(0,0,0,.2); }
.nutrition-scan-empty h3 { margin: 0 0 7px; font: italic 850 1.35rem var(--font-display); }
.nutrition-scan-empty p,.nutrition-scan-error p { margin: 0; color: var(--secondary); font-size: .76rem; line-height: 1.55; }
.nutrition-scan-error { border-color: rgba(250,187,51,.42); }
.nutrition-scan-error > b { display: block; margin-bottom: 7px; color: var(--warning); font: italic 850 .86rem var(--font-display); }
.nutrition-scan-error button { margin-top: 15px; }
.nutrition-facts-preview { padding: 20px; border: 1px solid #303238; border-radius: 21px; background: #191a1e; box-shadow: 0 16px 38px rgba(0,0,0,.25); }
.nutrition-facts-preview > header { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; padding-bottom: 14px; }
.nutrition-facts-preview > header b,.nutrition-facts-preview > header strong { font: italic 800 .9rem var(--font-display); }
.nutrition-facts-preview > header strong { min-width: 0; text-align: right; }
.nutrition-fact-heavy { height: 7px; background: white; }
.nutrition-fact-heavy.is-bottom { margin-top: 8px; }
.nutrition-calories { display: flex; align-items: baseline; justify-content: space-between; gap: 15px; padding: 15px 0; }
.nutrition-calories > b { font: italic 850 1.7rem var(--font-display); }
.nutrition-calories > strong { font: italic 850 1.55rem var(--font-display); }
.nutrition-calories small { color: var(--secondary); font: 500 .8rem var(--font-body); }
.nutrition-fact-row { display: flex; align-items: baseline; justify-content: space-between; gap: 15px; min-height: 41px; padding: 9px 0; border-bottom: 1px solid rgba(255,255,255,.11); }
.nutrition-fact-row b { font-size: .78rem; font-weight: 500; }
.nutrition-fact-row span { color: var(--secondary); font-size: .78rem; text-align: right; }
.nutrition-fact-row.is-major b { font-weight: 850; }
.nutrition-fact-row.is-indent b { padding-left: 20px; }
.nutrition-fact-row.is-deep-indent b { padding-left: 34px; }

@media (max-width: 600px) {
  .modal.nutrition-label-modal { width: 100%; max-height: 100dvh; border-width: 0; border-radius: 30px 30px 0 0; }
  .nutrition-label-scanner { max-height: 100dvh; padding-bottom: env(safe-area-inset-bottom); }
  .nutrition-scan-camera { min-height: 52dvh; }
  .nutrition-scan-camera > header { padding: 16px 16px 0; grid-template-columns: 54px minmax(0,1fr) 54px; }
  .nutrition-scan-close { width: 54px; height: 54px; }
  .nutrition-capture-guide { inset: 105px 18px 21px; }
  .nutrition-capture-guide > div { min-height: 168px; }
  .nutrition-retake-controls { right: 18px; bottom: 18px; left: 18px; }
  .nutrition-choose-portion { right: 17px; bottom: 18px; min-height: 52px; padding-inline: 20px; }
  .nutrition-scan-review { padding-inline: 14px; }
  .nutrition-facts-preview { padding: 17px; }
}

/* Athlete app — visual and responsive parity with the native iPhone/iPad workspaces. */
body:not(.is-coach-workspace) .route-view { width: min(1040px, 100%); }
body:not(.is-coach-workspace) .platform-main { background: #07080a; }
.native-day-card,
.native-progress-card,
.native-offday,
.native-sc-head,
.native-insight-card,
.native-pitch-card,
.native-report-tabs,
.native-report-library,
.native-log-food,
.native-weight-card {
  border: 1px solid #2b2d31;
  border-radius: 18px;
  background: #131518;
  box-shadow: inset 0 1px rgba(255,255,255,.015);
}
.native-day-card { overflow: hidden; margin-bottom: 18px; }
.native-day-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 27px 28px 22px; }
.native-day-title p,
.native-sc-head > div > p,
.native-mechanics-hero > div > p,
.native-card-heading p,
.pitch-visual-head > p,
.saved-metrics-head p {
  margin: 0 0 6px; color: var(--accent-bright); font-family: var(--font-display); font-size: .79rem; font-style: italic; letter-spacing: .04em; text-transform: uppercase;
}
.native-day-title h1,
.native-sc-head h1,
.native-mechanics-hero h1,
.native-card-heading h1,
.native-section-heading h1 {
  margin: 0; color: #fff; font-family: var(--font-display); font-size: clamp(2rem, 5vw, 3.15rem); font-style: italic; line-height: .94;
}
.native-day-title > span,
.native-sc-head > b { padding: 9px 15px; border-radius: 10px; background: #1e2024; color: white; font-family: var(--font-display); font-size: .72rem; font-style: italic; text-transform: uppercase; }
.native-day-status { display: grid; grid-template-columns: 1fr 1fr; margin: 0 28px; border-top: 1px solid #33353a; border-bottom: 1px solid #33353a; }
.native-day-status > button,
.native-day-status > div { display: flex; align-items: center; min-height: 86px; gap: 15px; border: 0; padding: 12px 18px; background: transparent; color: #fff; text-align: left; }
.native-day-status > button { cursor: pointer; border-right: 1px solid #33353a; }
.native-day-status .complete-mark { display: grid; place-items: center; width: 35px; height: 35px; border-radius: 50%; background: var(--success); color: #07110b; font-size: 1.1rem; font-style: normal; font-weight: 900; }
.native-day-status .attention-mark { display: grid; width: 35px; height: 35px; place-items: center; color: var(--accent-bright); font-size: 1.35rem; font-style: normal; }
.native-day-status .status-streak > i { font-size: 1.7rem; font-style: normal; }
.native-day-status span { display: grid; gap: 2px; }
.native-day-status small { color: #888b92; font-family: var(--font-display); font-size: .64rem; font-style: italic; }
.native-day-status b { font-family: var(--font-display); font-size: 1rem; font-style: italic; }
.native-day-status button > strong { margin-left: auto; color: #8d9097; font-size: 1.8rem; }
.native-day-meta { display: flex; flex-wrap: wrap; gap: 28px; padding: 19px 28px; color: #b8bac0; font-size: .83rem; }
.native-progress-card { margin-bottom: 25px; padding: 22px 27px 14px; }
.native-progress-head { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.native-progress-head p { margin: 0 0 4px; color: var(--accent-bright); font-family: var(--font-display); font-size: .78rem; font-style: italic; }
.native-progress-head span { color: #b6b8bf; font-size: .8rem; }
.native-progress-head > strong { font-family: var(--font-display); font-size: 2.65rem; font-style: italic; line-height: 1; }
.native-progress-head > strong small { font-size: 1rem; }
.native-progress-track { overflow: hidden; height: 11px; margin: 17px 0 17px; border-radius: 999px; background: #292b2e; }
.native-progress-track i { display: block; height: 100%; border-radius: inherit; background: var(--success); transition: width .25s ease; }
.native-progress-track i:not(.is-complete) { background: var(--accent); }
.native-day-status .complete-mark { background: transparent; color: var(--success); }
.native-day-status i > svg { width: 24px; height: 24px; }
.native-day-status .status-streak > i { display: grid; place-items: center; color: var(--warning); }
.native-day-status .status-streak > i svg { fill: currentColor; }
.native-day-meta > span { display: inline-flex; align-items: center; gap: 6px; }
.native-day-meta svg { width: 15px; height: 15px; flex-shrink: 0; }
.native-progress-card .home-quick-nav { margin: 0; padding: 14px 0 0; border: 0; border-top: 1px solid #33353a; border-radius: 0; background: transparent; }
.native-progress-card .home-quick-nav a { min-height: 74px; flex-direction: column; border-radius: 12px; background: #1c1e21; }
.native-progress-card .home-quick-nav svg { width: 25px; height: 25px; }
.native-progress-card .home-quick-nav span { color: #d7d8dc; font-size: .82rem; }
.native-training-section { margin: 0 0 27px; }
.native-training-section-toggle { display: flex; align-items: center; justify-content: space-between; gap: 16px; width: 100%; min-height: 44px; padding: 0 2px 12px; border: 0; color: var(--accent-bright); background: transparent; cursor: pointer; text-align: left; }
.native-training-section-toggle span { font-family: var(--font-display); font-size: 1rem; font-style: italic; font-weight: 900; text-transform: uppercase; }
.native-training-section-toggle svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2.3; stroke-linecap: round; stroke-linejoin: round; transition: transform .18s ease; }
.native-training-section-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.native-training-section-toggle:focus-visible { outline: 2px solid var(--accent-bright); outline-offset: 4px; border-radius: 7px; }
.native-training-section.is-collapsed { margin-bottom: 16px; border-bottom: 1px solid #24262a; }
.native-training-section.is-collapsed .native-exercise-list { display: none; }
.sc-training-block-toggle { display: grid; grid-template-columns: auto 1fr auto; align-items: center; width: 100%; min-height: 44px; padding: 0 2px 12px; border: 0; color: var(--accent-bright); background: transparent; cursor: pointer; text-align: left; }
.sc-training-block-toggle span { font-family: var(--font-display); font-size: 1rem; font-style: italic; font-weight: 900; text-transform: uppercase; }
.sc-training-block-toggle small { justify-self: end; margin-right: 12px; color: #85888f; font-family: var(--font-display); font-size: .68rem; font-style: italic; text-transform: uppercase; }
.sc-training-block-toggle svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2.3; stroke-linecap: round; stroke-linejoin: round; transition: transform .18s ease; }
.sc-training-block-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.sc-training-block.is-collapsed { margin-bottom: 16px; border-bottom: 1px solid #24262a; }
.history-exercise-editor { margin: 0 0 24px; padding: 18px; border: 1px solid var(--line); border-radius: 18px; background: var(--panel-soft); }
.history-exercise-editor > h3 { margin: 0 0 10px; font-family: var(--font-display); font-style: italic; }
.history-exercise-editor > button { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 4px; border: 0; border-bottom: 1px solid var(--line); background: transparent; color: var(--text); text-align: left; cursor: pointer; }
.history-exercise-editor > button:last-child { border-bottom: 0; }
.history-exercise-editor span { display: grid; gap: 3px; }
.history-exercise-editor small { color: var(--muted); }
.history-exercise-editor strong { color: var(--red); font-family: var(--font-display); font-style: italic; white-space: nowrap; }
.coach-team-edit { margin-top: 22px; padding-top: 22px; border-top: 1px solid var(--line); }
.coach-team-edit fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.coach-team-edit legend { margin-bottom: 9px; color: var(--muted); font-size: .78rem; font-weight: 750; letter-spacing: .04em; text-transform: uppercase; }
.coach-team-checks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.coach-team-checks label { display: flex; align-items: center; gap: 10px; min-height: 46px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 12px; background: var(--panel-soft); cursor: pointer; }
.coach-team-checks input { accent-color: var(--red); }
@media (max-width: 620px) { .coach-team-checks { grid-template-columns: 1fr; } }
.native-exercise-list { overflow: hidden; border: 1px solid #2b2d31; border-radius: 17px; background: #131518; }
.native-exercise-row { display: flex; align-items: center; min-height: 92px; padding: 11px 18px; border-bottom: 1px solid #34363a; }
.native-exercise-row:last-child { border-bottom: 0; }
.native-exercise-row button { border: 0; background: transparent; color: white; cursor: pointer; }
.exercise-check { flex: 0 0 40px; width: 40px; height: 40px; margin-right: 18px; border: 3px solid #7b7e85 !important; border-radius: 50% !important; font-size: 1.1rem; font-weight: 900; }
.exercise-check.is-complete { border-color: var(--success) !important; background: var(--success) !important; color: #07110b; }
.exercise-copy { display: grid; flex: 1 1 auto; min-width: 0; gap: 5px; text-align: left; }
.exercise-copy b { overflow: hidden; font-family: var(--font-display); font-size: 1.04rem; font-style: italic; line-height: 1; text-overflow: ellipsis; }
.exercise-copy small { overflow: hidden; color: #b5b7bd; font-size: .77rem; text-overflow: ellipsis; }
.sc-exercise-copy { display: flex; align-items: center; gap: 10px; }
.exercise-sequence { display: grid; flex: 0 0 24px; width: 24px; height: 24px; place-items: center; border-radius: 6px; background: var(--surface-chrome); color: var(--accent-bright); font: italic 900 .625rem/1 var(--font-display); }
.sc-exercise-copy-text { display: grid; min-width: 0; gap: 4px; }
.sc-exercise-copy-text > b,.sc-exercise-copy-text > small { min-width: 0; }
.exercise-chevron { flex: 0 0 34px; color: #999ca3 !important; font-size: 2rem; }
.exercise-video { display: grid; place-items: center; flex: 0 0 36px; width: 36px; height: 29px; margin-left: 5px; border-radius: 6px !important; background: #eb282f !important; font-size: .72rem; }
.exercise-log { display: grid; place-items: center; flex: 0 0 42px; width: 42px; height: 42px; margin-left: 7px; color: #c9cbd1 !important; }
.exercise-log svg { display: block; width: 25px; height: 25px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.modal.demo-video-modal { width: min(760px, calc(100vw - 32px)); }
.demo-video-meta { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; min-height: 30px; margin-bottom: 8px; }
.demo-video-meta strong { color: var(--primary); font: italic 850 .88rem/1.25 var(--font-display); }
.demo-video-meta span { flex: 0 0 auto; color: var(--tertiary); font-size: .72rem; }
.demo-video-modal #demo-video-player { display: grid; width: 100%; min-height: 220px; place-items: center; overflow: hidden; border-radius: 13px; background: #050608; }
.demo-video-modal .native-demo-media { max-height: min(58vh, 620px); border-radius: 13px; }
.demo-video-modal .native-demo-media.is-portrait { width: auto; max-width: 100%; min-height: min(58vh, 620px); aspect-ratio: 9 / 16; }
.demo-video-controls { display: grid; gap: 12px; margin-top: 14px; }
.demo-video-control { display: grid; gap: 7px; margin: 0; }
.demo-video-control > span:first-child { color: var(--tertiary); font: 800 .62rem var(--font-display); letter-spacing: .1em; text-transform: uppercase; }
.demo-format-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px; padding: 4px; border: 1px solid var(--border); border-radius: 12px; background: rgba(255,255,255,.035); }
.demo-format-options button { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; border: 0; border-radius: 8px; color: var(--secondary); background: transparent; font: italic 800 .76rem var(--font-display); cursor: pointer; }
.demo-format-options button.is-active { color: var(--primary); background: linear-gradient(180deg, #ed3535, #be1824); box-shadow: 0 7px 18px rgba(201,24,36,.22); }
.demo-format-icon { width: 21px; height: 13px; border: 1.8px solid currentColor; border-radius: 2px; }
.demo-format-icon.is-portrait { width: 12px; height: 20px; }
.demo-clip-select { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 10px; min-height: 46px; padding: 0 12px; border: 1px solid var(--border); border-radius: 12px; background: rgba(255,255,255,.035); color: var(--primary); }
.demo-clip-select svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.demo-clip-select select { width: 100%; min-width: 0; border: 0; outline: 0; color: var(--primary); background: transparent; font: italic 800 .76rem var(--font-display); cursor: pointer; }
.demo-video-external { display: grid; gap: 9px; place-items: center; padding: 26px; text-align: center; }
.demo-video-external > svg { width: 25px; height: 25px; fill: none; stroke: var(--accent-bright); stroke-width: 1.8; }
.demo-video-external small { max-width: 100%; overflow: hidden; color: var(--tertiary); text-overflow: ellipsis; white-space: nowrap; }
.demo-video-help { margin: 13px 2px 0; color: var(--secondary); font-size: .78rem; line-height: 1.5; }
@media (max-width: 620px) {
  .modal.demo-video-modal { width: 100%; }
  .demo-video-modal #demo-video-player { min-height: 190px; }
  .demo-video-modal .native-demo-media.is-portrait { min-height: min(52vh, 560px); }
}
.throwing-set-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.throwing-set-card { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 11px; min-width: 0; margin: 0; padding: 15px; border: 1px solid var(--border-strong); border-radius: 14px; background: var(--surface-soft); }
.throwing-set-card legend { padding: 0 7px; color: var(--primary); font: 850 1rem var(--font-display); font-style: italic; }
.throwing-session-notes { display: grid; gap: 7px; margin-top: 15px; }
.autosave-status { min-height: 18px; margin: 10px 2px 0; color: var(--secondary); font-size: .72rem; }
.native-wellness-title small { display: block; max-width: 620px; margin-top: 9px; color: var(--secondary); font-size: .77rem; line-height: 1.5; }
.native-offday { display: grid; gap: 16px; margin-top: 14px; padding: 22px; }
.native-offday > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.native-offday > header p { margin: 0 0 6px; color: var(--tertiary); font-size: .64rem; font-weight: 800; letter-spacing: .13em; }
.native-offday > header h2 { margin: 0; font-family: var(--font-display); font-size: 1.35rem; font-style: italic; }
.native-offday > header button { display: grid; flex: 0 0 38px; width: 38px; height: 38px; place-items: center; padding: 0; border: 0; border-radius: 50%; background: #202226; color: var(--accent-bright); font-size: 1.1rem; cursor: pointer; }
.native-offday-empty { display: grid; gap: 8px; padding: 16px; border-radius: 14px; background: #1b1d21; }
.native-offday-empty h3 { margin: 0; font-family: var(--font-display); font-size: .95rem; font-style: italic; }
.native-offday-empty p { margin: 0; color: var(--secondary); font-size: .76rem; line-height: 1.55; }
.native-offday-action { width: fit-content; min-width: 145px; }

/* Strength & conditioning */
.native-sc-head { position: relative; margin-bottom: 26px; padding: 27px 30px 0; }
.native-sc-head > div > span { display: block; max-width: 720px; margin-top: 12px; color: #c0c1c6; line-height: 1.45; }
.native-sc-head > b { position: absolute; top: 28px; right: 29px; }
.native-sc-head footer { display: flex; flex-wrap: wrap; gap: 28px; margin-top: 24px; padding: 18px 0 20px; border-top: 1px solid #33353a; color: #b7b9bf; font-size: .78rem; }
.native-secondary-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 25px; }
.native-insight-card { padding: 24px; }
.native-insight-card h2 { margin: 4px 0 20px; font-family: var(--font-display); font-size: 1.55rem; font-style: italic; }
.native-insight-metrics { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.native-insight-metrics > span { display: grid; gap: 6px; padding: 14px; border-radius: 12px; background: #202225; }
.native-insight-metrics b { font-family: var(--font-display); font-size: 1.3rem; font-style: italic; }
.native-insight-metrics small { color: var(--tertiary); }
.native-history { display: grid; }
.native-history > button { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 60px; border: 0; border-bottom: 1px solid #34363a; background: transparent; color: white; cursor: pointer; text-align: left; }
.native-history > button:last-child { border-bottom: 0; }
.native-history > button span { display: grid; gap: 4px; }
.native-history > button b { font-family: var(--font-display); font-style: italic; }
.native-history > button small { color: var(--tertiary); }
.native-history > button strong { color: var(--accent-bright); }
.muted-copy { color: var(--tertiary); }

/* Pitch Lab */
.native-subnav { display: flex; gap: 9px; overflow-x: auto; margin-bottom: 16px; padding-bottom: 2px; }
.native-subnav button { flex: 0 0 auto; min-height: 50px; padding: 0 22px; border: 1px solid #303238; border-radius: 13px; background: #141619; color: #aeb0b6; font-family: var(--font-display); font-style: italic; cursor: pointer; }
.native-subnav button.is-active { border-color: #d32b32; background: #4a1418; color: white; }
.native-pitch-card { padding: 29px; }
.native-pitch-card[hidden] { display: none; }
.native-card-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.native-info { width: 44px; height: 44px; border: 0; border-radius: 50%; background: #202225; color: var(--accent-bright); font-size: 1.3rem; }
.pitch-visual-head,.saved-metrics-head { display: flex; align-items: center; justify-content: space-between; margin: 30px 0 13px; }
.pitch-visual-head > span { padding: 9px 15px; border-radius: 999px; background: #25272b; color: white; font-family: var(--font-display); font-size: .68rem; font-style: italic; }
.movement-profile,.arm-angle-card { border: 1px solid #33353a; border-radius: 15px; background: #1c1e21; }
.movement-profile { padding: 20px; }
.movement-profile header { display: flex; justify-content: space-between; gap: 15px; }
.movement-profile h2 { margin: 0; font-family: var(--font-display); font-size: 1.2rem; font-style: italic; }
.movement-profile header p { margin: 4px 0 0; color: var(--secondary); font-size: .73rem; }
.movement-profile header > b { align-self: start; padding: 6px 11px; border-radius: 999px; background: #542126; color: var(--accent-bright); font-family: var(--font-display); font-style: italic; }
.movement-chart-wrap { position: relative; width: min(620px,100%); margin: 12px auto; }
.movement-svg { display: block; width: 100%; margin: 0; }
.movement-svg text { fill: #8f9299; font-family: var(--font-display); font-size: 15px; font-style: italic; }
.movement-dot { transition: r .2s ease, stroke-width .2s ease, filter .2s ease; }
.movement-dot.is-selected { filter: drop-shadow(0 0 7px rgba(255,255,255,.4)); }
.movement-hit-target { position: absolute; left: var(--point-x); top: var(--point-y); width: 34px; height: 34px; padding: 0; border: 0; border-radius: 50%; background: transparent; cursor: pointer; transform: translate(-50%,-50%); }
.movement-hit-target:focus-visible { outline: 2px solid #fff; outline-offset: 2px; background: rgba(255,255,255,.08); }
.movement-detail-slot { margin: -2px 0 11px; }
.movement-point-detail { padding: 12px; border: 1px solid #33363b; border-radius: 12px; background: rgba(10,12,15,.44); animation: movement-detail-in .2s ease both; }
.movement-point-detail > header { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.movement-point-detail > header b { font-family: var(--font-display); font-size: .86rem; font-style: italic; }
.movement-point-detail > header span { padding: 4px 8px; border-radius: 999px; color: var(--accent-bright); background: #4c1d21; font: italic 800 .58rem var(--font-display); }
.movement-point-detail > div { display: grid; grid-template-columns: repeat(auto-fit,minmax(76px,1fr)); gap: 8px; margin-top: 9px; }
.movement-point-detail > div > span { display: grid; gap: 3px; padding: 8px; border-radius: 10px; background: rgba(255,255,255,.035); }
.movement-point-detail small { color: var(--tertiary); font: italic 800 .56rem var(--font-display); text-transform: uppercase; }
.movement-point-detail > div b { font: italic 800 .67rem var(--font-display); }
@keyframes movement-detail-in { from { opacity: 0; transform: translateY(-5px); } to { opacity: 1; transform: translateY(0); } }
.movement-profile footer { display: flex; flex-wrap: wrap; justify-content: center; gap: 22px; }
.movement-profile footer span { display: inline-flex; align-items: center; gap: 7px; font-family: var(--font-display); font-style: italic; }
.movement-profile footer i { width: 10px; height: 10px; border-radius: 50%; }
.arm-angle-card { display: grid; grid-template-columns: 1fr auto; gap: 25px; margin-top: 18px; padding: 22px; }
.arm-angle-card > div { display: grid; gap: 8px; }
.arm-angle-card p { margin: 0; color: #91949a; font-family: var(--font-display); font-style: italic; letter-spacing: .08em; }
.arm-angle-card > div:first-child > strong { font-family: var(--font-display); font-size: 3rem; font-style: italic; }
.arm-angle-card span { color: var(--secondary); }
.arm-angle-card small { color: var(--tertiary); font-size: .69rem; }
.arm-angle-card > div:last-child { justify-items: end; align-content: center; }
.arm-angle-card > div:last-child b { padding: 6px 12px; border-radius: 999px; background: #542126; color: var(--accent-bright); font-family: var(--font-display); font-style: italic; }
.arm-angle-card > div:last-child strong { font-family: var(--font-display); font-size: 1.05rem; font-style: italic; }
.saved-metrics-head p { margin-bottom: 0; color: var(--tertiary); font-size: .63rem; letter-spacing: .12em; }
.saved-metrics-head b { color: var(--accent-bright); font: italic 800 .63rem var(--font-display); }
.pitch-metrics-shell { --pitch-name-column: clamp(220px,22%,300px); display: grid; width: 100%; grid-template-columns: var(--pitch-name-column) minmax(0,1fr); overflow: hidden; border: 1px solid rgba(51,53,58,.75); border-radius: 12px; background: rgba(255,255,255,.025); }
.pitch-metrics-shell.has-delete { width: 100%; }
.pitch-fixed-column { position: relative; z-index: 2; width: 100%; min-width: 0; border-right: 1px solid rgba(51,53,58,.7); background: rgba(255,255,255,.03); box-shadow: 6px 0 13px rgba(0,0,0,.14); }
.pitch-table-pitch-head { display: flex; height: 42px; align-items: center; padding: 0 12px; border-bottom: 1px solid rgba(51,53,58,.7); color: var(--tertiary); background: rgba(255,255,255,.045); font: italic 800 .57rem var(--font-display); letter-spacing: .1em; }
.pitch-table-pitch-cell { display: flex; height: 64px; min-width: 0; flex-direction: column; justify-content: center; gap: 3px; padding: 0 12px; border-bottom: 1px solid rgba(51,53,58,.35); }
.pitch-table-pitch-cell:last-child { border-bottom: 0; }
.pitch-table-pitch-cell b { overflow-wrap: anywhere; color: white; font: italic 800 .72rem var(--font-display); line-height: 1.08; white-space: normal; }
.pitch-table-pitch-cell small { overflow: hidden; color: var(--tertiary); font: .55rem var(--font-app); text-overflow: ellipsis; white-space: nowrap; }
.pitch-metrics-scroll { overflow-x: auto; overscroll-behavior-inline: contain; touch-action: pan-x; scrollbar-width: none; }
.pitch-metrics-scroll::-webkit-scrollbar { display: none; }
.pitch-metrics-scroll:focus-visible { outline: 2px solid rgba(239,37,52,.75); outline-offset: -2px; }
.pitch-metrics-grid { width: max-content; min-width: 100%; }
.pitch-table-metric-row { display: flex; width: 100%; height: 64px; align-items: center; border-bottom: 1px solid rgba(51,53,58,.35); }
.pitch-table-metric-row:last-child { border-bottom: 0; }
.pitch-table-metric-row > div { display: flex; width: auto; min-width: 68px; flex: 1 0 68px; align-items: center; justify-content: center; padding: 0 9px; color: white; font: italic 800 .66rem var(--font-display); font-variant-numeric: tabular-nums; white-space: nowrap; }
.pitch-table-metric-row > div.is-empty { color: var(--tertiary); }
.pitch-table-metric-row.is-header { height: 42px; background: rgba(255,255,255,.045); border-bottom-color: rgba(51,53,58,.7); }
.pitch-table-metric-row.is-header > div { height: 42px; flex-direction: column; align-items: center; justify-content: center; gap: 1px; color: var(--tertiary); }
.pitch-table-metric-row.is-header b { font: italic 800 .57rem var(--font-display); letter-spacing: .07em; text-transform: uppercase; }
.pitch-table-metric-row.is-header small { font: .5rem var(--font-app); opacity: .8; }
.pitch-delete-spacer { width: 44px; height: 1px; flex: 0 0 44px; }
.pitch-metric-delete { display: grid; width: 44px; height: 32px; flex: 0 0 44px; place-items: center; padding: 0; border: 0; color: var(--tertiary); background: transparent; cursor: pointer; }
.pitch-metric-delete:hover { color: var(--accent-bright); }
.pitch-metric-delete svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.native-grip-table { display: grid; margin-top: 22px; }
.native-grip-table article { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px 18px; padding: 17px 4px; border-bottom: 1px solid #33353a; }
.native-grip-table article > div { display: grid; gap: 4px; }
.native-grip-table b { font-family: var(--font-display); font-size: 1rem; font-style: italic; }
.native-grip-table small { color: var(--tertiary); }
.native-grip-table button { padding: 9px 18px; border: 1px solid #6b2228; border-radius: 10px; background: #361317; color: white; font-family: var(--font-display); font-style: italic; }
.pitch-session-strip { margin-top: 17px; }
.pitch-lab-hero { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 18px 2px 26px; }
.pitch-lab-hero .eyebrow { margin-bottom: 7px; }
.pitch-lab-hero h1 { margin: 0; color: #fff; font: italic 900 clamp(2.5rem,6vw,4.5rem)/.92 var(--font-display); letter-spacing: -.035em; }
.pitch-lab-hero p:last-child { margin: 13px 0 0; color: var(--secondary); font-size: .91rem; line-height: 1.5; }
.pitch-lab-launcher { margin-bottom: 18px; padding: 14px; border: 1px solid #2b2d31; border-radius: 18px; background: #131518; }
.pitch-lab-tool-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; }
.pitch-lab-tool { display: grid; justify-items: center; gap: 10px; min-height: 116px; padding: 14px 8px; border: 1px solid #2d2f34; border-radius: 14px; color: white; background: rgba(255,255,255,.035); cursor: pointer; }
.pitch-lab-tool:hover { border-color: #4b3033; background: rgba(239,37,52,.055); }
.pitch-lab-tool > span { position: relative; display: grid; place-items: center; width: 45px; height: 45px; border-radius: 13px; background: #35171a; color: #fff; }
.pitch-lab-tool svg,.pitch-add-card svg,.pitch-lab-back svg,.pitch-grip-search svg,.pitch-arsenal-row > button:last-child svg,.native-grip-table button svg,.pitch-grip-table button svg,.pitch-lab-empty svg,.native-detail-card button svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.pitch-lab-tool > span b { position: absolute; top: -7px; right: -9px; min-width: 20px; padding: 3px 5px; border-radius: 999px; background: var(--accent); color: white; font: italic 800 .58rem var(--font-display); }
.pitch-lab-tool strong { overflow: hidden; max-width: 100%; font: italic 850 .8rem var(--font-display); white-space: nowrap; text-overflow: ellipsis; }
.pitch-add-card { display: flex; align-items: center; gap: 13px; width: 100%; margin-top: 10px; padding: 12px; border: 1px solid #303238; border-radius: 14px; color: white; background: rgba(255,255,255,.035); cursor: pointer; text-align: left; }
.pitch-add-card > span:first-child { display: grid; flex: 0 0 44px; width: 44px; height: 44px; place-items: center; border: 1px solid #5b2529; border-radius: 13px; color: white; background: #3b171b; }
.pitch-add-card > span:last-child { display: grid; gap: 5px; }
.pitch-add-card b { font: italic 850 .93rem var(--font-display); }
.pitch-add-card small { color: var(--secondary); font-size: .73rem; line-height: 1.35; }
.pitch-lab-back { display: inline-flex; align-items: center; gap: 8px; min-height: 42px; margin: 0 0 14px; padding: 0 15px; border: 1px solid #303238; border-radius: 999px; color: white; background: rgba(255,255,255,.04); cursor: pointer; font: italic 800 .8rem var(--font-display); }
.pitch-lab-back svg { width: 17px; height: 17px; }
.pitch-lab-detail-card { margin-bottom: 18px; }
.pitch-lab-detail-card > .pitch-add-card { margin: 22px 0 10px; }
.pitch-recommendation { display: grid; gap: 10px; margin-top: 22px; padding: 21px; border: 1px solid #61252b; border-radius: 15px; background: linear-gradient(145deg,rgba(111,23,31,.45),rgba(30,24,28,.7)); }
.pitch-recommendation > span,.pitch-recommendation small { color: var(--accent-bright); font: italic 800 .65rem var(--font-display); letter-spacing: .09em; }
.pitch-recommendation h2 { margin: 0; font: italic 900 1.7rem/.96 var(--font-display); }
.pitch-recommendation > b { color: #ffb32a; font: italic 850 .82rem var(--font-display); }
.pitch-recommendation p { margin: 0; color: var(--secondary); line-height: 1.55; }
.pitch-recommendation > div { display: grid; gap: 5px; margin-top: 4px; padding-top: 13px; border-top: 1px solid rgba(255,255,255,.1); }
.pitch-recommendation ol { margin: 4px 0 0; padding-left: 20px; color: var(--secondary); line-height: 1.55; }
.pitch-design-context { display: grid; gap: 14px; margin-top: 20px; padding: 18px; border: 1px solid var(--border); border-radius: 16px; background: var(--surface-chrome); }
.pitch-design-context-head { display: flex; align-items: center; justify-content: space-between; gap: 15px; }
.pitch-design-context-head div { display: grid; gap: 3px; }
.pitch-design-context-head small { color: var(--accent-bright); font: italic 900 .66rem var(--font-display); letter-spacing: .11em; }
.pitch-design-context-head b { font: italic 850 1rem var(--font-display); }
.pitch-design-context-head > span { padding: 6px 9px; border-radius: 999px; background: rgba(255,255,255,.06); color: var(--secondary); font-size: .68rem; }
.pitch-design-context-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 11px; }
.pitch-design-context-grid label { display: grid; gap: 6px; color: var(--secondary); font-size: .72rem; font-weight: 750; }
.pitch-design-context-grid select { width: 100%; min-width: 0; padding: 11px 34px 11px 12px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface); color: var(--primary); font: 750 .82rem var(--font-body); }
.pitch-design-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; margin-top: 16px; }
.pitch-design-summary > div { display: grid; gap: 5px; min-width: 0; padding: 13px; border: 1px solid var(--border); border-radius: 13px; background: rgba(255,255,255,.025); }
.pitch-design-summary small { color: var(--tertiary); font: italic 800 .59rem var(--font-display); letter-spacing: .08em; }
.pitch-design-summary b { overflow-wrap: anywhere; font: italic 850 .86rem var(--font-display); }
.pitch-design-summary .readiness-green { color: #49d592; }.pitch-design-summary .readiness-yellow { color: #ffb72e; }.pitch-design-summary .readiness-red { color: #ff454d; }
.pitch-design-warnings { display: grid; gap: 7px; margin-top: 12px; padding: 12px; border: 1px solid rgba(255,183,46,.25); border-radius: 12px; background: rgba(255,183,46,.07); }
.pitch-design-warnings p { margin: 0; color: #e8c779; font-size: .75rem; line-height: 1.4; }
.pitch-design-recommendations { display: grid; gap: 12px; }
.pitch-design-options { margin-top: 3px; padding-top: 12px; border-top: 1px solid rgba(255,255,255,.1); }
.pitch-design-options summary,.pitch-design-gaps summary { cursor: pointer; font: italic 800 .76rem var(--font-display); }
.pitch-design-options p { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 0; border-bottom: 1px solid rgba(255,255,255,.07); }
.pitch-design-options p span { color: var(--secondary); font-size: .68rem; text-align: right; }
.pitch-design-gaps { margin-top: 14px; padding: 15px; border: 1px solid var(--border); border-radius: 14px; background: rgba(255,255,255,.025); }
.pitch-design-gaps summary { display: flex; justify-content: space-between; gap: 10px; }.pitch-design-gaps summary span { color: var(--accent-bright); }
.pitch-design-gaps > div { padding: 12px 0 2px; border-top: 1px solid rgba(255,255,255,.07); }.pitch-design-gaps > div:first-of-type { margin-top: 12px; }
.pitch-design-gaps p { margin: 5px 0 0; color: var(--secondary); font-size: .76rem; line-height: 1.45; }
.pitch-session-action { width: 100%; margin-top: 13px; }
.pitch-session-list { display: grid; gap: 8px; margin-top: 22px; }
.pitch-session-list button { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 12px; min-height: 70px; padding: 11px 12px; border: 1px solid #303238; border-radius: 13px; color: white; background: rgba(255,255,255,.03); cursor: pointer; text-align: left; }
.pitch-session-list button > span:nth-child(2) { display: grid; gap: 4px; min-width: 0; }
.pitch-session-list b { overflow: hidden; font: italic 850 .89rem var(--font-display); white-space: nowrap; text-overflow: ellipsis; }
.pitch-session-list small { color: var(--secondary); font-size: .7rem; }
.pitch-session-list strong { color: var(--tertiary); font-size: 1.5rem; }
.pitch-session-icon { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 12px; background: #36171a; }
.pitch-mode-toggle { display: inline-flex; flex: 0 0 auto; gap: 3px; padding: 3px; border: 1px solid rgba(51,53,58,.68); border-radius: 999px; background: rgba(255,255,255,.04); }
.pitch-mode-toggle button { height: 26px; padding: 0 9px; border: 0; border-radius: 999px; color: var(--tertiary); background: transparent; cursor: pointer; font: italic 800 .57rem var(--font-display); }
.pitch-mode-toggle button.is-active { color: white; background: #592126; }
.pitch-saved-controls { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 10px; }
.pitch-data-filter-strip,.pitch-grip-filters { display: flex; min-width: 0; align-items: center; gap: 8px; overflow-x: auto; scrollbar-width: none; }
.pitch-data-filter-strip::-webkit-scrollbar,.pitch-grip-filters::-webkit-scrollbar { display: none; }
.pitch-filter-chip { display: inline-flex; height: 36px; flex: 0 0 auto; align-items: center; gap: 7px; padding: 0 11px; border: 1px solid rgba(51,53,58,.75); border-radius: 999px; color: var(--secondary); background: rgba(255,255,255,.045); cursor: pointer; }
.pitch-filter-chip > span { color: var(--tertiary); font: 800 .73rem var(--font-app); }
.pitch-filter-chip b { max-width: 150px; overflow: hidden; font: italic 800 .66rem var(--font-display); text-overflow: ellipsis; white-space: nowrap; }
.pitch-filter-chip svg { width: 12px; height: 12px; fill: none; stroke: var(--tertiary); stroke-width: 2; stroke-linecap: round; }
.pitch-filter-chip.is-active { border-color: rgba(239,37,52,.6); color: white; background: rgba(255,255,255,.08); }
.pitch-filter-chip.is-active > span { color: var(--accent-bright); }
.pitch-data-filter-strip > [data-clear-pitch-filters] { display: inline-flex; height: 36px; flex: 0 0 auto; align-items: center; gap: 6px; padding: 0 7px; border: 0; color: var(--secondary); background: transparent; cursor: pointer; font: italic 800 .63rem var(--font-display); white-space: nowrap; }
.pitch-data-filter-strip > [data-clear-pitch-filters] span { font: 900 .9rem var(--font-app); }
.pitch-grip-filters { align-items: end; margin: 0 0 12px; }
.pitch-grip-filters label { display: grid; flex: 0 0 auto; gap: 5px; }
.pitch-grip-filters label > span { color: var(--tertiary); font: italic 800 .58rem var(--font-display); letter-spacing: .05em; text-transform: uppercase; }
.pitch-grip-filters select { min-height: 40px; padding: 0 34px 0 12px; border: 1px solid #34363a; border-radius: 12px; color: white; background: #202225; font: italic 750 .7rem var(--font-display); }
.pitch-grip-clear { display: inline-flex; align-items: center; gap: 7px; min-height: 34px; margin: -2px 0 12px; padding: 0 8px; border: 0; color: var(--secondary); background: transparent; cursor: pointer; font: italic 750 .68rem var(--font-display); }
.pitch-grip-clear::before { content: "×"; font: 900 1rem var(--font-app); }
.pitch-grip-clear[hidden] { display: none; }
.pitch-filter-empty { padding: 15px; border-radius: 12px; color: var(--secondary); background: rgba(255,255,255,.035); }
.pitch-pager { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 10px; padding: 0 2px; }
.pitch-pager > div { display: flex; gap: 8px; }
.pitch-pager button { display: grid; width: 36px; height: 32px; place-items: center; padding: 0; border: 1px solid rgba(51,53,58,.72); border-radius: 10px; color: white; background: rgba(255,255,255,.045); cursor: pointer; }
.pitch-pager button svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.pitch-pager button:disabled { opacity: .35; cursor: default; }
.pitch-pager span { color: var(--secondary); font: italic 800 .66rem var(--font-display); }
.pitch-filter-search { display: flex; height: 48px; align-items: center; gap: 10px; margin: 4px 0 12px; padding: 0 14px; border: 1px solid #34363a; border-radius: 13px; background: #1b1d20; }
.pitch-filter-search svg { width: 19px; height: 19px; fill: none; stroke: var(--accent-bright); stroke-width: 2; }
.pitch-filter-search input { width: 100%; border: 0; outline: 0; color: white; background: transparent; font: .8rem var(--font-app); }
.pitch-filter-options { display: grid; max-height: min(52vh,440px); overflow-y: auto; border: 1px solid #303238; border-radius: 14px; background: rgba(255,255,255,.025); }
.pitch-filter-options button { display: flex; min-height: 48px; align-items: center; justify-content: space-between; gap: 12px; padding: 0 15px; border: 0; border-bottom: 1px solid #303238; color: white; background: transparent; cursor: pointer; text-align: left; font: italic 800 .76rem var(--font-display); }
.pitch-filter-options button:last-child { border-bottom: 0; }
.pitch-filter-options button:hover,.pitch-filter-options button.is-selected { background: rgba(255,255,255,.055); }
.pitch-filter-options button b { color: var(--accent-bright); }
.pitch-arsenal-list { display: grid; gap: 9px; margin-top: 13px; }
.pitch-arsenal-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 7px; min-height: 82px; padding: 9px; border: 1px solid #303238; border-radius: 14px; background: rgba(255,255,255,.03); }
.pitch-arsenal-row > button { border: 0; color: white; background: transparent; cursor: pointer; }
.pitch-arsenal-row > button:first-child { display: flex; align-items: center; justify-content: space-between; min-width: 0; gap: 10px; text-align: left; }
.pitch-arsenal-row > button:first-child > span { display: grid; gap: 7px; min-width: 0; }
.pitch-arsenal-row b { font: italic 900 1rem var(--font-display); }
.pitch-arsenal-row small { overflow: hidden; color: var(--secondary); font-size: .72rem; white-space: nowrap; text-overflow: ellipsis; }
.pitch-arsenal-row > button:first-child strong { max-width: 100px; color: var(--accent-bright); font: italic 800 .67rem var(--font-display); }
.pitch-arsenal-row > button:last-child { display: grid; width: 38px; height: 38px; place-items: center; align-self: center; border: 1px solid #5b2529; border-radius: 11px; background: #35171a; }
.pitch-card-copy { margin: 12px 0 16px; color: var(--secondary); font-size: .76rem; line-height: 1.5; }
.pitch-grip-library { margin-top: 18px; }
.pitch-grip-search { display: flex; align-items: center; gap: 10px; min-height: 50px; margin-bottom: 10px; padding: 0 14px; border: 1px solid #34363a; border-radius: 13px; background: #1b1d20; color: var(--accent-bright); }
.pitch-grip-search svg { flex: 0 0 22px; }
.pitch-grip-search input { width: 100%; border: 0; outline: 0; color: white; background: transparent; font: .8rem var(--font-app); }
.pitch-grip-table-wrap { overflow-x: auto; border: 1px solid #303238; border-radius: 14px; }
.pitch-grip-table { width: 100%; min-width: 760px; }
.pitch-grip-table header,.pitch-grip-table article { display: grid; grid-template-columns: minmax(190px,1fr) 108px minmax(360px,2.45fr); align-items: center; }
.pitch-grip-table header { min-height: 42px; background: rgba(255,255,255,.045); color: var(--tertiary); font: italic 800 .61rem var(--font-display); letter-spacing: .08em; text-transform: uppercase; }
.pitch-grip-table header span { padding: 0 12px; }
.pitch-grip-table article { min-height: 66px; border-top: 1px solid #2b2d31; }
.pitch-grip-table article > div { display: grid; gap: 4px; padding: 10px 12px; }
.pitch-grip-table article b { font: italic 850 .78rem var(--font-display); }
.pitch-grip-table article small { color: var(--tertiary); font-size: .62rem; }
.pitch-grip-identity { min-width: 0; align-content: center; }
.pitch-grip-identity small { overflow-wrap: anywhere; line-height: 1.4; white-space: normal; }
.pitch-grip-table article > button { display: inline-flex; align-items: center; justify-content: center; gap: 6px; width: 86px; min-height: 34px; border: 1px solid #67272d; border-radius: 11px; color: white; background: #3a171a; cursor: pointer; font: italic 800 .69rem var(--font-display); }
.pitch-grip-table article > span { color: var(--tertiary); font-size: .68rem; }
.pitch-grip-table article > .pitch-grip-metrics-notes { min-width: 0; align-content: center; gap: 8px; }
.pitch-grip-metrics { display: grid; grid-template-columns: repeat(4,minmax(78px,106px)); justify-content: start; gap: 6px; min-width: 0; }
.pitch-grip-metrics span { display: grid; min-width: 0; gap: 2px; padding: 7px 6px; border-radius: 9px; background: #1a1c1f; }
.pitch-grip-metrics span small { color: var(--tertiary); font: italic 750 .52rem var(--font-display); }
.pitch-grip-metrics span b { overflow: hidden; font: italic 850 .6rem var(--font-display); white-space: nowrap; text-overflow: ellipsis; }
.pitch-grip-no-metrics { color: var(--tertiary); font-size: .65rem; }
.pitch-grip-note { max-width: 100%; overflow: visible; color: var(--secondary) !important; line-height: 1.45; overflow-wrap: anywhere; text-overflow: clip; white-space: normal; }
@media (max-width: 700px) {
  .pitch-grip-table-wrap { overflow-x: visible; }
  .pitch-grip-table { min-width: 0; }
  .pitch-grip-table header { display: none; }
  .pitch-grip-table article { grid-template-columns: minmax(0,1fr) auto; padding: 4px 2px; }
  .pitch-grip-table article > button,.pitch-grip-table article > span { margin-right: 10px; }
  .pitch-grip-table article > .pitch-grip-metrics-notes { grid-column: 1 / -1; padding-top: 3px; }
  .pitch-grip-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
.pitch-lab-empty { display: flex; align-items: flex-start; gap: 13px; margin-top: 20px; padding: 16px; border: 1px solid #303238; border-radius: 14px; background: rgba(255,255,255,.03); }
.pitch-lab-empty.compact { margin-top: 12px; }
.pitch-lab-empty > span { display: grid; flex: 0 0 44px; width: 44px; height: 44px; place-items: center; border-radius: 13px; color: var(--accent-bright); background: #35171a; font-size: 1.15rem; }
.pitch-lab-empty h2 { margin: 1px 0 6px; font: italic 850 1rem var(--font-display); }
.pitch-lab-empty p { margin: 0; color: var(--secondary); font-size: .75rem; line-height: 1.5; }
.pitch-detail-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; margin-bottom: 13px; }
.pitch-detail-metrics span { display: grid; gap: 4px; padding: 13px 10px; border: 1px solid #303238; border-radius: 12px; background: #202225; }
.pitch-detail-metrics small { color: var(--tertiary); font: italic 750 .59rem var(--font-display); }
.pitch-detail-metrics b { font: italic 900 1.2rem var(--font-display); }
.pitch-detail-metrics i { color: var(--secondary); font-size: .62rem; font-style: normal; }
.pitch-detail-actions { display: grid; grid-template-columns: 1fr auto; gap: 9px; margin-top: 13px; }
.grip-video-details { margin-top: 13px; }
.grip-video-details dl { margin: 14px 0 0; }
.grip-video-details dd { margin: 0; color: white; text-align: right; }
.grip-metric-chips { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 14px; }
.grip-metric-chips span { display: grid; gap: 3px; padding: 9px 11px; border-radius: 10px; background: #15171a; }
.grip-metric-chips small { color: var(--tertiary); font: italic 750 .56rem var(--font-display); }
.grip-metric-chips b { font: italic 850 .72rem var(--font-display); }
.pitch-add-form { padding-bottom: 5px; }
.pitch-required-note { display: flex; flex-wrap: wrap; align-items: center; gap: 7px 12px; margin-bottom: 2px; padding: 10px 12px; border: 1px solid rgba(239,37,52,.22); border-radius: 11px; background: rgba(239,37,52,.06); }
.pitch-required-note b { display: inline-flex; align-items: center; gap: 5px; color: white; font: italic 800 .66rem var(--font-display); text-transform: uppercase; }
.pitch-required-note b i { color: var(--accent-bright); font-size: .9rem; line-height: 1; }
.pitch-required-note > span { color: var(--secondary); font-size: .66rem; line-height: 1.4; }
.field > .pitch-field-label { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.pitch-field-status { display: inline-flex; min-height: 20px; align-items: center; padding: 0 7px; border-radius: 999px; font: italic 800 .52rem var(--font-display); letter-spacing: .02em; text-transform: uppercase; }
.pitch-field-status.is-required { color: #ff777f; background: rgba(239,37,52,.13); }
.pitch-field-status.is-optional { color: var(--tertiary); background: rgba(255,255,255,.055); }
.pitch-form-section { display: flex; align-items: flex-start; gap: 11px; margin: 5px 0 2px; padding: 12px; border: 1px solid #303238; border-radius: 13px; background: rgba(255,255,255,.03); }
.pitch-form-section > span { display: grid; flex: 0 0 34px; width: 34px; height: 34px; place-items: center; border-radius: 10px; color: white; background: #4b191e; font: italic 900 .8rem var(--font-display); }
.pitch-form-section > div { display: grid; gap: 4px; }
.pitch-form-section b { font: italic 850 .85rem var(--font-display); }
.pitch-form-section small { color: var(--secondary); font-size: .68rem; line-height: 1.4; }
.pitch-public-toggle { margin: 0; padding: 12px; border: 1px solid #303238; border-radius: 13px; background: rgba(255,255,255,.03); }

/* Mechanics reports */
.mechanics-workspace { display: grid; gap: 18px; width: min(900px,100%); margin-inline: auto; padding-bottom: 34px; }
.mechanics-page-head { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: start; gap: 20px; padding: 18px 3px 8px; }
.mechanics-page-head p { margin: 0 0 7px; color: var(--accent-bright); font: italic 850 .75rem var(--font-display); letter-spacing: .08em; text-transform: uppercase; }
.mechanics-page-head h1 { margin: 0; color: white; font: italic 900 clamp(2.25rem,6vw,3.55rem)/.96 var(--font-display); }
.mechanics-page-head span { display: block; max-width: 690px; margin-top: 13px; color: var(--secondary); font-size: .9rem; line-height: 1.55; }
.mechanics-page-head .native-info,.native-card-heading .native-info { display: grid; width: 46px; height: 46px; place-items: center; border: 0; border-radius: 50%; background: #1c1e22; color: var(--accent-bright); cursor: pointer; }
.mechanics-page-head .native-info svg,.native-card-heading .native-info svg { width: 25px; height: 25px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.mechanics-capture-card { display: grid; gap: 13px; padding: 22px; border: 1px solid #2d3035; border-radius: 20px; background: #131518; }
.mechanics-metrics { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.mechanics-metrics > div,.mechanics-metrics > button { display: grid; min-height: 100px; align-content: center; gap: 5px; padding: 16px; border: 1px solid #303339; border-radius: 15px; background: #1c1e22; color: white; text-align: left; }
.mechanics-metrics > button { cursor: pointer; }
.mechanics-metrics > button:hover { border-color: var(--accent-bright); background: #211b1e; }
.mechanics-metrics small { color: var(--tertiary); font: italic 800 .64rem var(--font-display); text-transform: uppercase; }
.mechanics-metrics b { font: italic 900 1.45rem var(--font-display); }
.mechanics-metrics span { color: var(--secondary); font-size: .65rem; }
.mechanics-angle-list { display: grid; gap: 9px; }
.mechanics-angle-row { display: grid; grid-template-columns: 52px minmax(0,1fr) 22px; align-items: center; gap: 12px; width: 100%; min-height: 80px; padding: 10px 13px; border: 1px solid #303339; border-radius: 15px; background: rgba(255,255,255,.025); color: white; text-align: left; cursor: pointer; }
.mechanics-angle-row:hover { border-color: #45484e; background: rgba(255,255,255,.04); }
.mechanics-angle-row.is-ready { border-color: rgba(238,42,49,.55); }
.mechanics-angle-state { display: grid; width: 50px; height: 50px; place-items: center; border-radius: 14px; background: rgba(255,255,255,.045); }
.mechanics-angle-row.is-ready .mechanics-angle-state { background: rgba(238,42,49,.16); color: white; }
.mechanics-angle-state svg,.mechanics-chevron { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.mechanics-angle-copy { display: grid; min-width: 0; gap: 6px; }
.mechanics-angle-copy > span { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.mechanics-angle-copy b { font: italic 850 .86rem var(--font-display); }
.mechanics-angle-copy em { padding: 5px 8px; border: 1px solid rgba(238,42,49,.4); border-radius: 999px; background: rgba(238,42,49,.13); color: white; font: italic 800 .55rem var(--font-display); }
.mechanics-angle-copy small { overflow: hidden; color: var(--secondary); font-size: .68rem; line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }
.mechanics-chevron { color: var(--tertiary); }
.mechanics-preflight { display: grid; grid-template-columns: 26px minmax(0,1fr); align-items: start; gap: 11px; padding: 15px; border: 1px solid #33363b; border-radius: 15px; background: rgba(255,255,255,.03); }
.mechanics-preflight.is-warning { border-color: rgba(250,187,51,.38); background: rgba(250,187,51,.08); }
.mechanics-preflight > svg { width: 22px; height: 22px; color: var(--accent-bright); fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.mechanics-preflight.is-warning > svg { color: var(--warning); }
.mechanics-preflight b { font: italic 830 .78rem var(--font-display); }
.mechanics-preflight p { margin: 5px 0; color: var(--secondary); font-size: .67rem; line-height: 1.45; }
.mechanics-preflight small { display: block; color: var(--warning); font-size: .62rem; line-height: 1.4; }
.mechanics-help-actions { display: flex; gap: 9px; }
.mechanics-help-actions button { flex: 0 1 135px; }
.mechanics-review-mode { display: grid; gap: 12px; padding: 15px; border: 1px solid #303339; border-radius: 15px; background: rgba(255,255,255,.025); }
.mechanics-review-mode > header { display: flex; align-items: center; gap: 11px; }
.mechanics-review-mode > header > span { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 50%; background: rgba(238,42,49,.15); color: var(--accent-bright); }
.mechanics-review-mode svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.mechanics-review-mode header p { margin: 0 0 3px; color: var(--tertiary); font: italic 800 .59rem var(--font-display); letter-spacing: .1em; }
.mechanics-review-mode header small { color: var(--secondary); font-size: .66rem; }
.mechanics-review-mode > div { display: grid; grid-template-columns: repeat(3,1fr); gap: 7px; }
.mechanics-review-mode > div button { display: grid; min-height: 62px; place-content: center; justify-items: center; gap: 6px; border: 1px solid #34373c; border-radius: 13px; background: rgba(255,255,255,.035); color: var(--secondary); cursor: pointer; }
.mechanics-review-mode > div button.is-active { border-color: rgba(255,255,255,.18); background: linear-gradient(135deg,#ee343c,#a11723); color: white; }
.mechanics-review-mode > div b { font: italic 820 .65rem var(--font-display); }
.mechanics-coach-note { display: grid; gap: 8px; }
.mechanics-coach-note > span { font: italic 800 .67rem var(--font-display); }
.mechanics-coach-note textarea { width: 100%; resize: vertical; border: 1px solid #303339; border-radius: 13px; padding: 12px; background: #090a0d; color: white; font: .72rem var(--font-body); }
.mechanics-progress { display: grid; grid-template-columns: auto minmax(0,1fr); align-items: center; gap: 12px; padding: 15px; border: 1px solid #303339; border-radius: 15px; background: rgba(255,255,255,.03); }
.mechanics-progress .button-spinner { display: block; }
.mechanics-progress b { font: italic 820 .76rem var(--font-display); }
.mechanics-progress p { margin: 4px 0 0; color: var(--secondary); font-size: .65rem; line-height: 1.4; }
.mechanics-run-review { width: 100%; min-height: 56px; font: italic 850 .85rem var(--font-display); }
.mechanics-run-review:disabled { filter: saturate(.45); opacity: .42; }
.mechanics-back { display: inline-flex; justify-self: start; align-items: center; gap: 7px; min-height: 40px; padding: 0 13px; border: 1px solid #303339; border-radius: 12px; background: rgba(255,255,255,.04); color: white; font: italic 800 .68rem var(--font-display); cursor: pointer; }
.mechanics-back svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 2; }
.mechanics-workspace .native-report-tabs { border: 1px solid #2d3035; border-radius: 17px; background: #17191c; }
.mechanics-workspace .native-report-library { border: 1px solid #2d3035; border-radius: 20px; background: #131518; }
.mechanics-workspace .native-card-heading { display: flex; align-items: start; justify-content: space-between; gap: 16px; }
.mechanics-guide-card ul { margin: 14px 0 0; padding-left: 20px; color: var(--secondary); }
.mechanics-guide-card li { margin: 10px 0; line-height: 1.45; }
.modal.mechanics-capture-guide-modal { width: min(720px,calc(100vw - 32px)); padding: 24px; background: #101216; }
.mechanics-capture-guide-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 18px; }
.mechanics-capture-guide-head p { margin: 0 0 6px; color: var(--accent-bright); font: italic 850 .68rem var(--font-display); letter-spacing: .12em; }
.mechanics-capture-guide-head h2 { margin: 0; color: white; font: italic 900 clamp(1.7rem,4vw,2.4rem)/1 var(--font-display); }
.mechanics-capture-guide-head .icon-button svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.mechanics-capture-guide-image { overflow: hidden; margin: 0; border: 1px solid var(--border); border-radius: 15px; background: #000; }
.mechanics-capture-guide-image img { display: block; width: 100%; max-height: min(42vh,440px); object-fit: contain; background: #000; }
.mechanics-capture-guide-copy { display: grid; gap: 15px; margin-top: 15px; padding: 17px; border: 1px solid var(--border); border-radius: 15px; background: #1b1d21; }
.mechanics-capture-guide-copy > p { margin: 0; color: var(--primary); font-size: .78rem; line-height: 1.55; }
.mechanics-capture-requirements { display: grid; gap: 12px; padding-top: 15px; border-top: 1px solid var(--border); }
.mechanics-capture-requirements article { display: grid; grid-template-columns: 28px minmax(0,1fr); align-items: start; gap: 11px; }
.mechanics-capture-requirements svg { width: 21px; height: 21px; margin-top: 1px; fill: none; stroke: var(--accent-bright); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.mechanics-capture-requirements h3 { margin: 0; color: var(--primary); font: italic 820 .73rem var(--font-display); }
.mechanics-capture-requirements p { margin: 4px 0 0; color: var(--secondary); font-size: .67rem; line-height: 1.45; }
.mechanics-capture-guide-actions { display: grid; gap: 9px; margin-top: 16px; }
.mechanics-capture-guide-actions button { width: 100%; min-height: 50px; font: italic 830 .75rem var(--font-display); }
@media (max-width: 820px) {
  .modal.mechanics-capture-guide-modal { width: 100%; max-width: none; padding: 22px 18px calc(25px + env(safe-area-inset-bottom)); }
  .mechanics-capture-guide-image img { max-height: 34vh; }
}
.modal.mechanics-report-modal { width: min(900px,calc(100vw - 32px)); max-height: 94dvh; padding: 24px; background: #101216; }
.mechanics-report-modal .report-sheet-head .icon-button svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 2; }
.mechanics-report-modal .report-sheet-body { max-width: 820px; margin-inline: auto; }
.native-mechanics-hero { display: flex; align-items: end; justify-content: space-between; gap: 22px; padding: 18px 2px 25px; }
.native-mechanics-hero > div > span { display: block; max-width: 650px; margin-top: 12px; color: var(--secondary); line-height: 1.5; }
.native-report-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; margin-bottom: 18px; padding: 6px; }
.native-report-tabs button { display: grid; min-height: 72px; place-items: center; gap: 4px; border: 0; border-radius: 13px; background: #222428; color: white; cursor: pointer; }
.native-report-tabs button.is-active { background: linear-gradient(135deg,#ff4048,#a61825); }
.native-report-tabs b { display: flex; align-items: center; justify-content: center; gap: 8px; font-family: var(--font-display); font-style: italic; }
.native-report-tabs b svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.native-report-tabs small { color: inherit; opacity: .8; }
.native-report-library { padding: 28px; }
.native-report-library > p { color: var(--secondary); }
.report-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.report-card { overflow: hidden; min-width: 0; border: 1px solid #33353a; border-radius: 14px; padding: 0; background: #17191c; color: white; cursor: pointer; text-align: left; transition: border-color .16s ease,transform .16s ease; }
.report-card:hover,.report-card:focus-visible { border-color: #64676e; transform: translateY(-1px); outline: none; }
.report-thumb { position: relative; overflow: hidden; aspect-ratio: 4/3; background: #202225; }
.report-thumb-placeholder,.report-thumb > video { position: absolute; inset: 0; width: 100%; height: 100%; }
.report-thumb-placeholder { display: grid; place-items: center; background: #181a1e; }
.report-thumb-placeholder img { width: 58px; height: 58px; border-radius: 14px; opacity: .18; }
.report-thumb-placeholder > svg { position: absolute; width: 27px; height: 27px; fill: none; stroke: #a4a7ad; stroke-width: 1.7; opacity: .72; }
.report-thumb-placeholder .button-spinner { position: absolute; display: block; width: 24px; height: 24px; }
.report-thumb > video { z-index: 1; display: block; object-fit: cover; opacity: 0; pointer-events: none; transition: opacity .18s ease; }
.report-thumb.is-ready > video { opacity: 1; }
.report-angle-badge,.report-status-badge { position: absolute; z-index: 3; top: 10px; left: 10px; display: flex; align-items: center; gap: 6px; min-height: 29px; padding: 5px 10px; border: 1px solid rgba(255,255,255,.12); border-radius: 999px; background: rgba(17,18,21,.84); box-shadow: 0 3px 12px rgba(0,0,0,.25); color: white; font: italic 800 .68rem var(--font-display); backdrop-filter: blur(10px); }
.report-angle-badge svg,.report-status-badge svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.report-status-badge.is-complete { color: var(--success); }
.report-status-badge.is-pending { color: var(--warning); }
.report-preview-play { position: absolute; z-index: 3; inset: 50% auto auto 50%; display: grid; width: 46px; height: 46px; place-items: center; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; background: rgba(13,14,17,.72); transform: translate(-50%,-50%); backdrop-filter: blur(8px); }
.report-preview-play svg { width: 20px; height: 20px; margin-left: 2px; fill: white; stroke: white; }
.report-card-copy { display: grid; gap: 3px; min-width: 0; padding: 12px 13px 13px; }
.report-card-copy b { overflow: hidden; color: white; font: italic 800 .83rem/1.2 var(--font-display); text-overflow: ellipsis; white-space: nowrap; }
.report-card-copy small { overflow: hidden; color: var(--secondary); font-size: .68rem; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.report-sheet-head { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 15px; margin: -4px -4px 20px; }
.report-sheet-head h2,.native-sheet-title h2 { margin: 0; font-family: var(--font-display); font-size: 1.45rem; font-style: italic; }
.report-sheet-head p { margin: 4px 0 0; color: var(--secondary); }
.report-sheet-body { display: grid; gap: 20px; }
.analysis-media { display: grid; gap: 13px; }
.analysis-media > div { display: grid; gap: 7px; }
.analysis-media > div > small { color: var(--secondary); font: italic 800 .65rem var(--font-display); }
.analysis-media video,.native-demo-media { display: block; width: 100%; max-height: 70vh; border-radius: 13px; background: black; object-fit: contain; }
.report-media-placeholder,.native-media-loading { display: grid; min-height: 280px; place-items: center; border-radius: 12px; background: #090a0c; color: var(--tertiary); }
.overall-report { margin-top: 18px; padding: 20px; border: 1px solid #34363a; border-radius: 13px; background: #202225; }
.overall-report h3,.phase-title { margin: 0 0 13px; font-family: var(--font-display); font-style: italic; }
.overall-report > p { color: white; font-size: 1.02rem; line-height: 1.5; }
.report-good h4 { color: var(--success); }.report-attention h4 { color: var(--warning); }
.overall-report li { margin: 8px 0; color: var(--secondary); line-height: 1.45; }
.phase-findings { display: grid; gap: 12px; }
.phase-findings article { padding: 20px; border: 1px solid #34363a; border-radius: 13px; background: #202225; }
.phase-findings header { display: flex; justify-content: space-between; gap: 12px; }
.phase-findings h3 { margin: 0; font-family: var(--font-display); font-style: italic; }
.phase-findings header span { color: var(--secondary); }
.phase-findings header > b { align-self: start; color: var(--warning); }
.phase-findings article > p { color: white; line-height: 1.5; }
.phase-findings article > small { color: var(--secondary); }
.ios-report-head { grid-template-columns: auto minmax(0,1fr) auto; position: sticky; z-index: 8; top: -24px; margin: -24px -24px 18px; padding: 20px 24px 14px; border-bottom: 1px solid var(--border); background: rgba(10,11,14,.96); backdrop-filter: blur(18px); }
.ios-report-head .secondary-button { min-height: 48px; padding-inline: 27px; border-color: rgba(239,43,50,.72); background: #3a1117; }
.biomech-finding-more[hidden],.biomech-capture-details[hidden],.biomech-clip[hidden] { display: none !important; }
.ios-biomech-report { color: var(--primary); }
.biomech-report-main-card { display: grid; gap: 22px; padding: 20px; border: 1px solid #303238; border-radius: 18px; background: #141619; }
.biomech-report-section { display: grid; gap: 12px; }
.biomech-report-section > h2,.biomech-uploaded-clips > h2 { margin: 0; color: white; font: italic 880 1.16rem/1.1 var(--font-display); }
.biomech-report-section > p,.biomech-uploaded-clips > p { margin: -2px 0 0; color: var(--secondary); font-size: .69rem; line-height: 1.5; }
.biomech-uploaded-clips .analysis-media { margin-top: 3px; }
.analysis-media .native-media-loading { grid-auto-flow: column; justify-content: center; gap: 10px; }
.biomech-clip-stage { display: grid; }
.biomech-clip { display: grid; gap: 8px; }
.biomech-clip > span { position: absolute; z-index: 2; margin: 13px; padding: 6px 9px; border-radius: 999px; background: rgba(10,11,14,.7); color: white; font: italic 820 .64rem var(--font-display); backdrop-filter: blur(8px); pointer-events: none; }
.biomech-clip video { display: block; width: 100%; max-height: min(62vh,620px); aspect-ratio: 16/9; border: 1px solid #35373d; border-radius: 13px; background: black; object-fit: contain; }
.biomech-clip-nav { display: flex; align-items: center; justify-content: center; gap: 13px; }
.biomech-clip-nav > button { display: grid; width: 34px; height: 34px; place-items: center; border: 0; border-radius: 50%; background: rgba(255,255,255,.05); color: white; cursor: pointer; }
.biomech-clip-nav > button:disabled { color: var(--tertiary); opacity: .45; cursor: default; }
.biomech-clip-nav svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2.2; }
.biomech-clip-nav > div { display: flex; align-items: center; gap: 6px; }
.biomech-clip-nav > div button { width: 7px; height: 7px; padding: 0; border: 0; border-radius: 999px; background: var(--border); cursor: pointer; transition: width .18s ease,background .18s ease; }
.biomech-clip-nav > div button.is-active { width: 22px; background: var(--accent-bright); }
.biomech-clip-nav > span { color: var(--secondary); font: italic 760 .63rem var(--font-display); }
.biomech-clip-nav > span b { color: white; }
.ios-biomech-report .overall-report { margin: 0; padding: 16px; background: #202225; }
.ios-biomech-report .overall-report > h3 { margin-bottom: 9px; color: var(--secondary); font-size: .76rem; }
.ios-biomech-report .overall-report > p { margin: 0; font-size: .83rem; line-height: 1.5; }
.biomech-assessment-highlights { display: grid; gap: 13px; margin-top: 15px; padding-top: 14px; border-top: 1px solid #37393e; }
.biomech-assessment-highlights h4 { display: flex; align-items: center; gap: 7px; margin: 0 0 8px; font: italic 800 .7rem var(--font-display); }
.biomech-assessment-highlights h4 svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2; }
.biomech-assessment-highlights ul { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.biomech-assessment-highlights li { position: relative; margin: 0; padding-left: 14px; font-size: .69rem; }
.biomech-assessment-highlights li::before { position: absolute; top: .55em; left: 2px; width: 4px; height: 4px; border-radius: 50%; background: currentColor; content: ""; }
.ios-biomech-report .report-good h4 { color: var(--success); }
.ios-biomech-report .report-attention h4 { color: var(--warning); }
.biomech-phase-card,.biomech-observation-card,.biomech-priority-card { display: grid; gap: 10px; padding: 14px !important; border: 1px solid #34363a; border-radius: 13px; background: #202225; }
.biomech-phase-card > header,.biomech-observation-card > header,.biomech-priority-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.biomech-phase-card header h3,.biomech-observation-card header h3,.biomech-priority-card header h3 { margin: 0; color: white; font: italic 820 .78rem/1.2 var(--font-display); }
.biomech-phase-card header span,.biomech-observation-card header span { display: block; margin-top: 3px; color: var(--secondary); font-size: .61rem; }
.biomech-phase-card > p { margin: 0; color: white; font-size: .75rem; line-height: 1.48; }
.biomech-evidence { flex: 0 0 auto; max-width: 155px; padding: 7px 10px; border: 1px solid; border-radius: 999px; color: white; font: italic 760 .57rem/1.15 var(--font-display); text-align: center; }
.biomech-evidence.is-strong { border-color: rgba(74,209,135,.48); background: rgba(74,209,135,.15); }
.biomech-evidence.is-moderate { border-color: rgba(239,43,50,.48); background: rgba(239,43,50,.15); }
.biomech-evidence.is-limited { border-color: rgba(255,184,56,.52); background: rgba(255,184,56,.15); }
.biomech-evidence.is-not_assessable { border-color: rgba(143,146,153,.45); background: rgba(143,146,153,.13); }
.biomech-finding-pills { display: flex; flex-wrap: wrap; gap: 7px; }
.biomech-finding-pill { display: inline-flex; align-items: center; gap: 5px; min-height: 26px; padding: 5px 9px; border-radius: 999px; background: rgba(255,255,255,.05); color: var(--secondary); font: italic 720 .57rem var(--font-display); }
.biomech-finding-pill svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 1.9; }
.biomech-finding-more,.biomech-priority-details { display: grid; gap: 9px; padding-top: 4px; }
.biomech-finding-detail b { display: block; color: var(--tertiary); font: italic 800 .51rem var(--font-display); letter-spacing: .11em; text-transform: uppercase; }
.biomech-finding-detail p { margin: 3px 0 0; color: var(--secondary); font-size: .67rem; line-height: 1.45; }
.biomech-disclosure { display: flex; align-items: center; gap: 6px; width: 100%; padding: 2px 0 0; border: 0; background: transparent; color: white; font: italic 760 .57rem var(--font-display); cursor: pointer; text-align: left; }
.biomech-disclosure svg,.biomech-capture-head > svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 2; transition: transform .18s ease; }
.biomech-disclosure.is-expanded svg,.biomech-capture-head.is-expanded > svg { transform: rotate(180deg); }
.biomech-observations,.biomech-priorities { display: grid; gap: 10px; }
.biomech-measurements { display: grid; gap: 0; margin: 0; }
.biomech-measurements > div { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; padding: 8px 0; border-top: 1px solid #36383d; }
.biomech-measurements dt { color: var(--secondary); font-size: .65rem; }
.biomech-measurements dd { margin: 0; color: white; font: italic 780 .65rem var(--font-display); }
.biomech-observation-note { margin: 0; color: var(--tertiary); font-size: .61rem; line-height: 1.45; }
.biomech-linked-drills { display: grid; gap: 7px; }
.biomech-linked-drills span { display: flex; align-items: center; gap: 9px; padding: 10px; border: 1px solid #34363a; border-radius: 11px; background: rgba(255,255,255,.035); color: white; font: italic 760 .64rem var(--font-display); }
.biomech-linked-drills svg { width: 17px; height: 17px; fill: none; stroke: var(--accent-bright); stroke-width: 1.8; }
.biomech-drill-loading { display: flex; align-items: center; gap: 9px; min-height: 48px; padding: 10px 12px; border: 1px solid #34363a; border-radius: 11px; background: rgba(255,255,255,.025); color: var(--secondary); font-size: .64rem; }
.biomech-recommended-drills { display: grid; gap: 8px; padding-top: 2px; }
.biomech-recommended-drills > p { margin: 0; color: var(--tertiary); font: italic 800 .53rem var(--font-display); letter-spacing: .11em; text-transform: uppercase; }
.biomech-recommended-drill { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 12px; width: 100%; padding: 12px; border: 1px solid #34363a; border-radius: 11px; background: rgba(255,255,255,.035); color: white; cursor: pointer; text-align: left; }
.biomech-recommended-drill:hover,.biomech-recommended-drill:focus-visible { border-color: rgba(239,43,50,.62); background: rgba(239,43,50,.08); outline: none; }
.biomech-recommended-drill > span { display: grid; gap: 4px; min-width: 0; }
.biomech-recommended-drill b { color: white; font: italic 800 .72rem/1.2 var(--font-display); }
.biomech-recommended-drill small { color: var(--secondary); font-size: .63rem; line-height: 1.4; }
.biomech-recommended-drill strong { color: white; font: italic 760 .59rem var(--font-display); }
.biomech-recommended-drill > svg { width: 16px; height: 16px; fill: none; stroke: var(--tertiary); stroke-width: 2; }
.biomech-mechanics-map { display: grid; grid-template-columns: repeat(auto-fit,minmax(128px,1fr)); gap: 10px; }
.biomech-mechanics-map article { min-height: 92px; padding: 12px; border: 1px solid #34363a; border-radius: 13px; background: #202225; }
.biomech-mechanics-map h3 { overflow-wrap: anywhere; margin: 0 0 8px; color: white; font: italic 790 .68rem var(--font-display); }
.biomech-mechanics-map b { display: inline-block; padding: 5px 9px; border-radius: 999px; font: italic 750 .56rem var(--font-display); }
.biomech-mechanics-map b.is-preserve { color: var(--success); background: rgba(74,209,135,.14); }
.biomech-mechanics-map b.is-monitor { color: var(--warning); background: rgba(255,184,56,.14); }
.biomech-mechanics-map b.is-improve { color: var(--accent-bright); background: rgba(239,43,50,.14); }
.biomech-mechanics-map b.is-not_assessable { color: var(--tertiary); background: rgba(143,146,153,.13); }
.biomech-mechanics-map p { margin: 8px 0 0; color: var(--tertiary); font-size: .55rem; line-height: 1.35; }
.biomech-capture-card { padding: 16px; border: 1px solid #34363a; border-radius: 13px; background: rgba(255,255,255,.04); }
.biomech-capture-head { display: grid; grid-template-columns: minmax(0,1fr) auto auto; align-items: center; gap: 10px; width: 100%; padding: 0; border: 0; background: transparent; color: white; cursor: pointer; text-align: left; }
.biomech-capture-head > span:first-child b { display: block; font: italic 850 1.02rem var(--font-display); }
.biomech-capture-head > span:first-child small { display: block; margin-top: 3px; color: var(--secondary); font-size: .6rem; }
.biomech-capture-details { padding-top: 12px; }
.biomech-capture-details > p { margin: 0; color: var(--secondary); font-size: .67rem; line-height: 1.5; }
.biomech-capture-details ul { display: grid; gap: 8px; margin: 11px 0 0; padding: 0; list-style: none; }
.biomech-capture-details li { display: grid; grid-template-columns: 16px minmax(0,1fr); gap: 7px; color: var(--secondary); font-size: .65rem; line-height: 1.4; }
.biomech-capture-details li svg { width: 14px; height: 14px; fill: none; stroke: var(--tertiary); stroke-width: 1.8; }
.native-sheet-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; margin-bottom: 20px; }
.native-detail-card { padding: 20px; border: 1px solid #34363a; border-radius: 13px; background: #202225; }
.native-detail-card h2,.native-detail-card h3 { font-family: var(--font-display); font-style: italic; }
.native-detail-card p { color: var(--secondary); line-height: 1.55; }
.native-detail-card dl > div { display: flex; justify-content: space-between; gap: 15px; padding: 12px 0; border-top: 1px solid #34363a; }

@media (max-width: 600px) {
  .mechanics-workspace { gap: 14px; }
  .mechanics-page-head { padding-top: 7px; }
  .mechanics-page-head h1 { font-size: 2.25rem; }
  .mechanics-page-head span { font-size: .76rem; }
  .mechanics-page-head .native-info { width: 42px; height: 42px; }
  .mechanics-capture-card { padding: 15px; border-radius: 18px; }
  .mechanics-metrics > div,.mechanics-metrics > button { min-height: 88px; padding: 13px; }
  .mechanics-metrics b { font-size: 1.15rem; }
  .mechanics-angle-row { grid-template-columns: 46px minmax(0,1fr) 18px; min-height: 76px; padding: 9px 10px; }
  .mechanics-angle-state { width: 44px; height: 44px; }
  .mechanics-angle-copy b { font-size: .75rem; }
  .mechanics-angle-copy small { font-size: .61rem; }
  .mechanics-review-mode > div b { font-size: .58rem; }
  .mechanics-workspace .native-report-library { padding: 20px; }
  .modal.mechanics-report-modal { width: 100%; max-height: 98dvh; padding: 19px 15px calc(24px + env(safe-area-inset-bottom)); border-radius: 30px 30px 0 0; }
}

/* Fuel */
.fuel-workspace { display: grid; gap: 19px; }
.nutrition-week-strip { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 10px; padding: 16px; border: 1px solid #2b2d31; border-radius: 17px; background: #131518; }
.nutrition-day { display: grid; place-items: center; gap: 8px; padding: 8px 4px; border: 1px solid transparent; border-radius: 12px; background: transparent; color: inherit; cursor: pointer; font: inherit; }
.nutrition-day.is-today { border-color: #ac242b; background: #18191d; }
.nutrition-day.is-selected { border-color: var(--red); background: rgba(238, 42, 49, .12); box-shadow: inset 0 0 0 1px rgba(238, 42, 49, .16); }
.nutrition-day > b { color: #85888f; font-family: var(--font-display); font-size: .68rem; font-style: italic; }
.nutrition-day > span { display: grid; width: 56px; height: 56px; place-items: center; border-radius: 50%; background: conic-gradient(var(--day-color,var(--warning)) var(--progress),#292b2f 0); }
.nutrition-day > span::before { content:""; grid-area: 1/1; width: 45px; height: 45px; border-radius: inherit; background: #131518; }
.nutrition-day i { z-index: 1; grid-area: 1/1; color: white; font-family: var(--font-display); font-style: italic; }
.calorie-card { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 25px; min-height: 260px; padding: 30px 40px; border-color: #b82a31; background: radial-gradient(circle at 10% 110%,rgba(233,35,54,.25),transparent 55%),radial-gradient(circle at 100% 0%,rgba(51,74,178,.2),transparent 55%),#15141b; }
.calorie-card p { margin: 0; color: white; font-family: var(--font-display); font-size: 1rem; font-style: italic; }
.calorie-card > div:first-child > strong { display: block; margin: 9px 0; font-family: var(--font-display); font-size: clamp(3.5rem,9vw,6rem); font-style: italic; line-height: .9; }
.calorie-card > div:first-child > span { color: #c1c2c8; font-size: 1rem; }
.nutrition-chips { display: flex; gap: 10px; margin-top: 20px; }
.nutrition-chips button,.nutrition-chips span { padding: 9px 15px; border: 1px solid rgba(255,255,255,.08); border-radius: 999px; background: rgba(255,255,255,.06); color: white; font-family: var(--font-display); font-size: .7rem; font-style: italic; }
.calorie-ring { display: grid; width: 170px; height: 170px; place-items: center; border-radius: 50%; background: conic-gradient(#ff3b52 var(--progress),#30313b 0); }
.calorie-ring::before { content:""; grid-area: 1/1; width: 132px; height: 132px; border-radius: inherit; background: #15141b; }
.calorie-ring b,.calorie-ring small { z-index: 1; grid-area: 1/1; }
.calorie-ring b { align-self: center; margin-top: -14px; font-family: var(--font-display); font-size: 2rem; font-style: italic; }
.calorie-ring small { align-self: center; margin-top: 39px; color: var(--tertiary); font-family: var(--font-display); font-style: italic; }
.macro-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; }
.macro-card { display: grid; place-items: center; min-height: 230px; padding: 19px; border: 1px solid #2b2d31; border-radius: 17px; background: #101114; }
.macro-card > div strong { font-family: var(--font-display); font-size: 1.8rem; font-style: italic; }
.macro-card > div span { color: var(--secondary); }
.macro-card > i { display: grid; width: 76px; height: 76px; place-items: center; margin: 12px 0; border-radius: 50%; background: conic-gradient(var(--macro) var(--progress),#2c2e32 0); color: var(--macro); font-style: normal; }
.macro-card > i::after { content:""; position: absolute; width: 58px; height: 58px; border-radius: 50%; background: #111216; }
.macro-card > i { position: relative; z-index: 0; }.macro-card > i::first-letter { z-index: 2; }
.macro-card > b { color: #d8d9dd; font-family: var(--font-display); font-style: italic; }
.macro-card > small { color: var(--tertiary); }
.native-log-food,.native-weight-card { padding: 28px; }
.native-section-heading { display: flex; align-items: start; justify-content: space-between; gap: 20px; }
.native-section-heading p { margin: 8px 0 0; color: var(--secondary); }
.native-section-heading > span,.native-section-heading > strong { padding: 10px 15px; border-radius: 999px; background: #202225; color: white; font-family: var(--font-display); font-size: .9rem; font-style: italic; }
.native-section-heading > span small { color: var(--secondary); }
.food-actions { display: grid; grid-template-columns: repeat(4,1fr); gap: 9px; margin: 23px 0; }
.food-actions button { min-height: 54px; border: 1px solid #303238; border-radius: 999px; background: #1b1d20; color: #d7d8dc; font-size: 1.05rem; }
.food-actions button b { margin-left: 7px; font-family: var(--font-display); font-size: .8rem; font-style: italic; }
.food-actions button.is-primary { border-color: #dc2a31; background: linear-gradient(135deg,#ff4148,#a61925); color: white; }
.food-search-callout { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 14px; width: 100%; min-height: 76px; border: 1px solid #303238; border-radius: 13px; padding: 14px 19px; background: #17191c; color: white; text-align: left; }
.food-search-callout > span { color: var(--accent-bright); font-size: 1.8rem; }
.food-search-callout > div { display: grid; gap: 4px; }
.food-search-callout b { font-family: var(--font-display); font-style: italic; }
.food-search-callout small { color: var(--secondary); }
.food-search-callout > strong { color: #8e9197; font-size: 1.5rem; }
.food-history-title { display: flex; align-items: center; justify-content: space-between; margin-top: 25px; }
.food-history-title h3 { font-family: var(--font-display); font-style: italic; }
.native-food-list { display: grid; }
.native-food-row { display: grid; grid-template-columns: minmax(0,1fr) auto auto; align-items: center; gap: 16px; min-height: 72px; border-top: 1px solid #33353a; }
.native-food-row > div { display: grid; gap: 5px; min-width: 0; }
.native-food-row > div b { overflow: hidden; font-family: var(--font-display); font-style: italic; text-overflow: ellipsis; white-space: nowrap; }
.native-food-row > div small { overflow: hidden; color: var(--secondary); text-overflow: ellipsis; white-space: nowrap; }
.native-food-row > strong { font-family: var(--font-display); font-style: italic; }.native-food-row > strong small { color: var(--secondary); }
.native-food-row > button { width: 38px; height: 38px; border: 1px solid #49341b; border-radius: 50%; background: #211a11; color: var(--warning); }
.native-search-results { display: grid; margin-top: 17px; }
.native-search-results > button { display: grid; gap: 5px; min-height: 62px; border: 0; border-top: 1px solid #34363a; background: transparent; color: white; text-align: left; }
.native-search-results > button b { font-family: var(--font-display); font-style: italic; }.native-search-results > button small { color: var(--secondary); }

/* Native Fuel parity: real iconography, iOS food controls, and responsive food history. */
.nutrition-chips button,.nutrition-chips span { display: flex; align-items: center; gap: 7px; }
.nutrition-chips small { color: var(--tertiary); font: italic 700 .58rem var(--font-display); }
.nutrition-chips b { color: white; font: italic 800 .7rem var(--font-display); }
.macro-card > .macro-icon { isolation: isolate; }
.macro-card > .macro-icon::after { display: block; z-index: -1; }
.macro-card > .macro-icon svg { position: relative; z-index: 2; width: 31px; height: 31px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.nutrition-log-summary { display: flex; align-items: center; gap: 10px; }
.nutrition-log-summary > span { padding: 10px 15px; border-radius: 999px; background: #202225; color: white; font: italic 800 .9rem var(--font-display); white-space: nowrap; }
.nutrition-log-summary > span small { color: var(--secondary); }
.nutrition-info-button { display: grid; width: 43px; height: 43px; flex: 0 0 43px; place-items: center; border: 1px solid #303238; border-radius: 50%; background: #1d1f22; color: white; cursor: pointer; }
.nutrition-info-button svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.food-actions button { display: flex; align-items: center; justify-content: center; gap: 8px; cursor: pointer; }
.food-actions button b { margin-left: 0; }
.food-actions svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.food-search-callout svg { display: block; width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.food-search-callout > strong svg { width: 21px; height: 21px; }
.nutrition-favorites { padding-top: 23px; }
.nutrition-favorites > h3 { margin: 0 0 13px; font: italic 850 1rem var(--font-display); }
.nutrition-favorites > p { margin: 0; color: var(--secondary); font-size: .75rem; }
.nutrition-favorites > div { display: flex; gap: 9px; overflow-x: auto; padding: 1px 1px 7px; scrollbar-width: thin; }
.nutrition-favorites button { display: grid; grid-template-columns: 25px minmax(105px,1fr) 18px; align-items: center; gap: 9px; min-width: 205px; min-height: 62px; padding: 10px 12px; border: 1px solid #303238; border-radius: 13px; background: #17191c; color: white; text-align: left; cursor: pointer; }
.nutrition-favorites button > span { display: grid; min-width: 0; gap: 3px; }
.nutrition-favorites button b,.nutrition-favorites button small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nutrition-favorites button b { font: italic 780 .72rem var(--font-display); }
.nutrition-favorites button small { color: var(--secondary); font-size: .6rem; }
.nutrition-favorites button svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.nutrition-favorites button > svg:first-child { color: var(--warning); fill: rgba(250,187,51,.14); }
.native-food-row { grid-template-columns: 44px minmax(0,1fr) auto 36px 42px 42px; gap: 10px; }
.food-source-icon { display: grid; width: 40px; height: 40px; place-items: center; border: 1px solid rgba(238,42,49,.4); border-radius: 50%; background: rgba(238,42,49,.1); color: var(--accent-bright); }
.food-source-icon svg,.food-row-icon svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.85; stroke-linecap: round; stroke-linejoin: round; }
.food-entry-main { display: grid; min-width: 0; gap: 5px; padding: 15px 0; border: 0; background: transparent; color: white; text-align: left; cursor: pointer; }
.food-entry-main b,.food-entry-main small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.food-entry-main b { font: italic 820 .8rem var(--font-display); }
.food-entry-main small { color: var(--secondary); font-size: .64rem; }
.food-row-icon { display: grid; width: 38px; height: 38px; place-items: center; border: 1px solid transparent; border-radius: 50%; background: transparent; color: var(--tertiary); cursor: pointer; }
.food-edit-chevron svg { width: 18px; height: 18px; }
.food-favorite { border-color: #34363a; background: #1c1e21; }
.food-favorite.is-active { border-color: rgba(250,187,51,.45); background: rgba(250,187,51,.1); color: var(--warning); }
.food-favorite.is-active svg { fill: rgba(250,187,51,.24); }
.food-delete { border-color: #49341b; background: #211a11; color: var(--warning); }

@media (max-width: 600px) {
  .fuel-workspace { gap: 13px; padding: 0 0 34px; }
  .calorie-card { min-height: 202px; padding: 23px 20px; gap: 12px; }
  .calorie-card > div:first-child > strong { font-size: clamp(3rem,18vw,4.4rem); }
  .calorie-card > div:first-child > span { font-size: .75rem; }
  .calorie-ring { width: 116px; height: 116px; }
  .calorie-ring::before { width: 88px; height: 88px; }
  .calorie-ring b { font-size: 1.4rem; }
  .calorie-ring small { margin-top: 31px; font-size: .57rem; }
  .nutrition-chips { gap: 5px; margin-top: 15px; }
  .nutrition-chips button,.nutrition-chips span { gap: 4px; padding: 7px 8px; }
  .nutrition-chips small { font-size: .48rem; }.nutrition-chips b { font-size: .55rem; }
  .native-log-food,.native-weight-card { padding: 18px 15px; }
  .native-section-heading { gap: 8px; }
  .native-section-heading h1 { font-size: 1.55rem; }
  .native-section-heading p { font-size: .65rem; }
  .nutrition-log-summary { gap: 5px; }
  .nutrition-log-summary > span { padding: 8px 10px; font-size: .65rem; }
  .nutrition-info-button { width: 36px; height: 36px; flex-basis: 36px; }
  .nutrition-info-button svg { width: 20px; height: 20px; }
  .food-actions { gap: 5px; margin: 18px 0; }
  .food-actions button { min-height: 47px; gap: 5px; padding-inline: 5px; }
  .food-actions svg { width: 19px; height: 19px; }.food-actions button b { font-size: .61rem; }
  .food-search-callout { min-height: 70px; padding: 12px 14px; }
  .food-search-callout small { font-size: .59rem; }
  .native-food-row { grid-template-columns: 39px minmax(0,1fr) 31px 37px 37px; gap: 6px; min-height: 78px; }
  .native-food-row > strong { display: none; }
  .food-source-icon { width: 36px; height: 36px; }
  .food-row-icon { width: 35px; height: 35px; }
  .food-entry-main b { font-size: .72rem; }.food-entry-main small { font-size: .55rem; }
  .food-history-title { margin-top: 19px; }.food-history-title .secondary-button { padding: 8px 10px; font-size: .6rem; }
}

.modal-drag { width: 54px; height: 5px; margin: -10px auto 18px; border-radius: 999px; background: #64676f; }
@media (min-width: 821px) {
  body:not(.is-coach-workspace) { --sidebar-width: 300px; }
  body:not(.is-coach-workspace) .platform-sidebar { background: #0b0c0f; }
  body:not(.is-coach-workspace) .platform-nav a { min-height: 58px; border-radius: 0; }
  body:not(.is-coach-workspace) .platform-nav a b { font-size: .88rem; }
  body:not(.is-coach-workspace) .platform-nav a.is-active { border-radius: 12px; }
}
@media (max-width: 820px) {
  .athlete-tab-bar { grid-template-columns: repeat(6,minmax(0,1fr)); }
  .native-day-title,.native-progress-card,.native-sc-head,.native-pitch-card,.native-report-library,.native-log-food,.native-weight-card { padding-left: 20px; padding-right: 20px; }
  .native-day-status { margin-left: 20px; margin-right: 20px; }
  .native-day-status > button,.native-day-status > div { padding-left: 8px; padding-right: 8px; }
  .native-day-meta { gap: 16px; padding-left: 20px; padding-right: 20px; }
  .native-secondary-grid { grid-template-columns: 1fr; }
  .report-grid { grid-template-columns: 1fr 1fr; }
  .modal-layer { align-items: end; padding: 0; }
  .modal { width: 100%; max-width: none; max-height: 94dvh; padding: 22px 18px calc(25px + env(safe-area-inset-bottom)); border-radius: 34px 34px 0 0; }
}
@media (max-width: 600px) {
  .throwing-set-grid,.throwing-set-card { grid-template-columns: 1fr; }
  .native-day-title h1,.native-sc-head h1,.native-mechanics-hero h1,.native-card-heading h1,.native-section-heading h1 { font-size: 2rem; }
  .native-day-title { padding-top: 21px; }
  .native-day-title > span,.native-sc-head > b { padding: 7px 9px; font-size: .58rem; }
  .native-day-status { grid-template-columns: 1.2fr .8fr; }
  .native-day-status > button,.native-day-status > div { min-height: 76px; gap: 9px; }
  .native-day-status .complete-mark { width: 30px; height: 30px; }
  .native-day-status .status-streak > i { font-size: 1.3rem; }
  .native-day-status b { font-size: .78rem; }
  .native-day-meta { font-size: .69rem; }
  .native-progress-head > strong { font-size: 2.2rem; }
  .native-progress-card .home-quick-nav a { min-height: 66px; }
  .native-progress-card .home-quick-nav span { font-size: .66rem; }
  .native-exercise-row { min-height: 84px; padding: 10px 12px; }
  .exercise-check { flex-basis: 34px; width: 34px; height: 34px; margin-right: 12px; }
  .exercise-copy b { font-size: .91rem; }.exercise-copy small { font-size: .66rem; }
  .sc-exercise-copy { gap: 8px; }
  .exercise-chevron { flex-basis: 24px; }.exercise-video { flex-basis: 31px; width: 31px; }.exercise-log { flex-basis: 34px; width: 34px; height: 38px; margin-left: 2px; }.exercise-log svg { width: 23px; height: 23px; }
  .native-sc-head { padding-top: 24px; }.native-sc-head > b { top: 20px; right: 20px; }
  .native-sc-head footer { gap: 15px; font-size: .68rem; }
  .native-subnav button { padding: 0 16px; }
  .movement-profile { padding: 13px; }.movement-profile h2 { font-size: 1rem; }.movement-profile header > b { font-size: .63rem; }
  .movement-svg text { font-size: 13px; }.movement-profile footer { gap: 12px; font-size: .65rem; }
  .arm-angle-card { grid-template-columns: 1fr; }.arm-angle-card > div:last-child { justify-items: start; }
  .native-mechanics-hero { align-items: start; flex-direction: column; }.native-mechanics-hero .primary-button { width: 100%; }
  .native-report-tabs b { font-size: .72rem; }.native-report-library { padding: 18px; }.report-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }.report-card-copy { padding: 10px; }.report-card-copy b { font-size: .7rem; }.report-card-copy small { font-size: .58rem; }
  .report-sheet-head { grid-template-columns: auto 1fr; }.report-sheet-head .secondary-button { grid-column: 1/-1; width: 100%; }
  .report-sheet-head.ios-report-head { grid-template-columns: auto minmax(0,1fr) auto; top: -22px; margin: -22px -18px 16px; padding: 18px 18px 12px; }
  .report-sheet-head.ios-report-head .secondary-button { grid-column: auto; width: auto; min-height: 42px; padding-inline: 14px; font-size: .62rem; }
  .ios-report-head .icon-button { width: 40px; height: 40px; }
  .ios-report-head h2 { font-size: 1.02rem; }.ios-report-head p { overflow: hidden; font-size: .57rem; text-overflow: ellipsis; white-space: nowrap; }
  .biomech-report-main-card { padding: 14px; border-radius: 16px; }
  .biomech-evidence { max-width: 125px; font-size: .51rem; }
  .phase-findings header { flex-direction: column; }
  .phase-findings .biomech-phase-card > header { flex-direction: row; }
  .nutrition-week-strip { gap: 3px; padding: 9px 5px; }.nutrition-day { padding: 7px 0; }.nutrition-day > span { width: 40px; height: 40px; }.nutrition-day > span::before { width: 32px; height: 32px; }.nutrition-day > b { font-size: .51rem; }
  .calorie-card { grid-template-columns: 1fr auto; min-height: 210px; padding: 24px 20px; }.calorie-card > div:first-child > strong { font-size: 3.45rem; }.calorie-card > div:first-child > span { font-size: .76rem; }.calorie-ring { width: 114px; height: 114px; }.calorie-ring::before { width: 88px; height: 88px; }.calorie-ring b { font-size: 1.5rem; }
  .nutrition-chips { gap: 5px; }.nutrition-chips button,.nutrition-chips span { padding: 7px 9px; font-size: .56rem; }
  .macro-grid { gap: 7px; }.macro-card { min-height: 170px; padding: 11px 5px; }.macro-card > div strong { font-size: 1.25rem; }.macro-card > div span { font-size: .65rem; }.macro-card > i { width: 55px; height: 55px; }.macro-card > i::after { width: 41px; height: 41px; }.macro-card > b { font-size: .66rem; }.macro-card > small { font-size: .54rem; }
  .native-section-heading > span { padding: 8px 10px; font-size: .65rem; }.food-actions { gap: 5px; }.food-actions button { min-height: 46px; font-size: .82rem; }.food-actions button b { margin-left: 3px; font-size: .62rem; }
  .native-food-row { grid-template-columns: minmax(0,1fr) auto; gap: 9px; }.native-food-row > button { grid-column: 2; }.native-food-row > div small { font-size: .62rem; }
}

/* Coach View parity: these components mirror CoachView.swift rather than the
   generic web dashboard primitives used by the athlete workspace. */
.is-coach-workspace .route-view { width: min(980px, 100%); }
.is-coach-workspace .coach-page-hero { margin-bottom: 14px; padding-inline: 0; }
.is-coach-workspace .coach-page-hero h1 { font-size: clamp(2rem, 5vw, 2.65rem); text-transform: none; }
.coach-home-date { align-self: start; color: var(--secondary); font: italic 800 .8rem var(--font-display); }
.coach-page-primary { width: fit-content; margin: 0 0 20px; padding-inline: 20px; font: italic 850 .84rem var(--font-display); }
.coach-native-card {
  min-width: 0;
  padding: 16px;
  border: 1px solid var(--border-strong);
  border-radius: 14px;
  background: var(--surface);
}
.coach-metrics { margin-bottom: 14px; }
.coach-metrics .metric { min-height: 78px; padding: 12px; border-radius: 12px; text-align: left; }
.coach-metrics .metric > span:first-child { font-size: 1.6rem; }
.coach-metrics .metric small { margin-top: 4px; font-size: .65rem; }
.coach-metrics .metric.is-warning > span:first-child { color: var(--warning); }
.coach-segmented { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px; margin-bottom: 14px; padding: 5px; border-radius: 15px; }
.coach-segmented button { display: flex; min-height: 42px; align-items: center; justify-content: center; gap: 7px; border-radius: 11px; font-size: .76rem; }
.coach-segmented button svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.coach-segmented .is-active { box-shadow: 0 5px 16px rgba(232,41,41,.2); }
.coach-today-table { width: 100%; }
.coach-today-head,.coach-today-row { grid-template-columns: minmax(0,1fr) repeat(3,72px); }
.coach-today-head { font-style: italic; }
.coach-today-row { min-height: 58px; }
.coach-today-row span { min-height: 34px; margin-inline: 4px; }
.coach-empty-copy { margin: 16px 0 3px; color: var(--secondary); font-size: .78rem; }
.coach-attention-card { display: grid; gap: 16px; }
.coach-attention-section { display: grid; gap: 8px; }
.coach-attention-section + .coach-attention-section { padding-top: 4px; border-top: 1px solid var(--border); }
.coach-attention-section > header { display: flex; align-items: center; gap: 9px; }
.coach-attention-section > header svg { width: 17px; height: 17px; fill: none; stroke: var(--accent-bright); stroke-width: 1.9; }
.coach-attention-section > header h3 { margin: 0; font: italic 850 1rem var(--font-display); }
.coach-attention-section > header b { display: grid; min-width: 24px; height: 22px; padding-inline: 6px; place-items: center; border-radius: 999px; background: var(--accent-soft); color: var(--accent-bright); font: italic 850 .68rem var(--font-display); }
.coach-attention-section > header b.is-warning { background: var(--warning-soft); color: var(--warning); }
.coach-compact-row { display: flex; width: 100%; align-items: center; gap: 10px; padding: 5px 0; border: 0; background: transparent; color: var(--primary); text-align: left; cursor: pointer; }
.coach-compact-row > span { display: grid; flex: 1; min-width: 0; gap: 3px; }
.coach-compact-row b { font: italic 800 .82rem var(--font-display); }
.coach-compact-row small { color: var(--secondary); font-size: .67rem; line-height: 1.35; }
.coach-compact-row > strong { color: var(--tertiary); font-size: 1rem; }
.coach-bulk-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.coach-bulk-actions button,.coach-adjustment-row footer button { min-height: 38px; padding: 0 12px; border: 0; border-radius: 10px; background: rgba(255,255,255,.06); color: var(--secondary); font: italic 800 .7rem var(--font-display); cursor: pointer; }
.coach-bulk-actions button.is-accept,.coach-adjustment-row footer button.is-accept { background: var(--success-soft); color: var(--success); }
.coach-bulk-actions button.is-reject { background: rgba(232,41,41,.12); color: var(--accent-bright); }
.coach-adjustment-row { display: grid; gap: 9px; padding: 5px 0; }
.coach-adjustment-row > div { display: grid; gap: 3px; }
.coach-adjustment-row b { font: italic 800 .82rem var(--font-display); }
.coach-adjustment-row small { color: var(--secondary); font-size: .66rem; line-height: 1.4; }
.coach-adjustment-row footer { display: flex; justify-content: flex-end; gap: 8px; }
.coach-adjustment-row footer button { min-width: 82px; }
.coach-attention-empty { display: flex; min-height: 92px; align-items: center; justify-content: center; gap: 10px; color: var(--success); }
.coach-attention-empty svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; }
.coach-attention-empty b { font: italic 850 .9rem var(--font-display); }
.coach-library-tools { display: grid; gap: 14px; margin-bottom: 14px; padding: 16px; border: 1px solid var(--border-strong); border-radius: 14px; background: var(--surface); }
.coach-library-tools .search-wrap { width: 100%; }
.coach-library-tools .search-input { min-height: 48px; background: var(--surface-chrome); }
.coach-library-tools .search-wrap::before { color: var(--accent-bright); font-size: 1.35rem; }
.coach-library-tools > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.coach-library-tools > div > span { display: grid; gap: 3px; }
.coach-library-tools > div b { color: var(--accent-bright); font: italic 850 .68rem var(--font-display); letter-spacing: .11em; }
.coach-library-tools > div small { color: var(--secondary); font-size: .66rem; }
.coach-library-tools select { max-width: 190px; min-height: 42px; padding: 0 31px 0 12px; border: 1px solid var(--border-strong); border-radius: 10px; background: var(--surface-chrome); color: var(--primary); font: italic 800 .68rem var(--font-display); }
.coach-native-list { display: grid; gap: 10px; }
.coach-roster-row,.coach-template-row { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 10px; }
.coach-roster-open { display: flex; padding: 0; }
.coach-roster-open .list-row-main,.coach-template-row .list-row-main { display: grid; gap: 4px; }
.coach-roster-open .list-row-main b,.coach-template-row .list-row-main b { font: italic 850 1rem/1.05 var(--font-display); }
.coach-roster-open .list-row-main small,.coach-template-row .list-row-main small { color: var(--secondary); font-size: .7rem; }
.coach-roster-open .list-row-main small.is-active { color: var(--success); }
.coach-template-row { padding: 16px; }
.coach-template-row > button:first-child { padding: 0; }
.coach-row-action { display: grid; width: 42px; height: 42px; place-items: center; border: 1px solid rgba(250,187,51,.3); border-radius: 10px; background: rgba(250,187,51,.09); color: var(--warning); cursor: pointer; }
.coach-row-action svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.coach-pending-invites { display: grid; gap: 9px; margin: 0 0 16px; }
.coach-pending-invites h2 { margin: 0 0 2px; font: italic 850 1.05rem var(--font-display); }
.coach-pending-invites article { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.coach-pending-invites article > span { display: grid; gap: 4px; }
.coach-pending-invites article b { font: italic 800 .8rem var(--font-display); }
.coach-pending-invites article small { color: var(--secondary); font-size: .65rem; }
.coach-pending-invites article > div { display: flex; gap: 10px; }
.coach-pending-invites button { border: 0; background: transparent; color: var(--accent-bright); font: italic 800 .68rem var(--font-display); cursor: pointer; }
.coach-pending-invites button.is-danger { color: var(--danger); }
.coach-review-details { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin-bottom: 14px; }
.coach-review-details > div { display: grid; gap: 4px; padding: 12px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface-soft); }
.coach-review-details small { color: var(--tertiary); font-size: .6rem; }
.coach-review-details b { font: italic 800 .72rem var(--font-display); }
.modal.coach-review-modal { width: min(880px,100%); }
.coach-review-modal .native-detail-card { margin-block: 14px; }
.coach-calendar-actions { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; margin-bottom: 18px; }
.coach-calendar-actions button { display: grid; min-height: 74px; place-items: center; align-content: center; gap: 7px; font: italic 850 .76rem var(--font-display); }
.coach-calendar-actions svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; }
.coach-team-settings { width: 100%; padding-top: 0; }
.coach-team-settings .coach-page-hero { padding-inline: 0; }
.coach-settings-card { overflow: hidden; border: 1px solid var(--border-strong); border-radius: 14px; background: var(--surface); }
.coach-settings-card > header { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 16px; border-bottom: 1px solid var(--border); }
.coach-settings-card > header p { margin: 0 0 4px; color: var(--accent-bright); font: italic 850 .63rem var(--font-display); letter-spacing: .12em; }
.coach-settings-card > header h2 { margin: 0; font: italic 850 1.12rem var(--font-display); }
.coach-settings-card > div { display: grid; gap: 12px; padding: 16px; }
.coach-settings-card .settings-info-row { min-height: 38px; }
.coach-settings-link { width: fit-content; padding-inline: 15px; text-decoration: none; }
.coach-settings-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.coach-settings-note { margin: -4px 0 0; color: var(--secondary); font-size: .66rem; line-height: 1.45; }
.coach-organization-editor { margin-top: 4px; padding-top: 12px; border-top: 1px solid var(--border); }
.coach-organization-editor > summary { width: fit-content; padding: 10px 14px; border: 1px solid var(--border-strong); border-radius: 10px; background: var(--surface-chrome); font: italic 800 .7rem var(--font-display); cursor: pointer; list-style: none; }
.coach-organization-editor > summary::-webkit-details-marker { display: none; }
.coach-organization-editor[open] > summary { border-color: var(--accent-border); color: var(--accent-bright); }
.coach-organization-editor .coach-team-edit { margin-top: 16px; }
.modal.coach-organization-editor-modal { width: min(720px,100%); max-height: 94dvh; padding: 0; overflow: hidden; border-radius: 28px; background: #0b0c0f; }.coach-organization-editor-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; padding: 23px 24px 17px; border-bottom: 1px solid var(--border); background: #121417; }.coach-organization-editor-head p { margin: 0; color: var(--accent-bright); font: italic 850 .62rem var(--font-display); letter-spacing: .12em; }.coach-organization-editor-head h2 { margin: 5px 0; font: italic 850 1.5rem/1 var(--font-display); }.coach-organization-editor-head span { color: var(--secondary); font-size: .7rem; line-height: 1.45; }.coach-organization-sheet { max-height: calc(94dvh - 112px); padding: 20px 24px 28px; overflow-y: auto; }.coach-organization-sheet fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }.coach-organization-sheet legend { margin: 0 0 9px; color: var(--secondary); font: italic 800 .62rem var(--font-display); letter-spacing: .08em; text-transform: uppercase; }

@media (max-width: 600px) {
  .is-coach-workspace .coach-page-hero h1 { font-size: 2.15rem; }
  .is-coach-workspace .menu-button { display: none; }
  .is-coach-workspace .platform-topbar { padding-left: 16px; }
  .coach-home-date { position: absolute; top: 19px; right: 2px; }
  .coach-page-hero { position: relative; }
  .coach-metrics { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 7px; }
  .coach-metrics .metric { min-height: 74px; padding: 10px 5px; text-align: center; }
  .coach-metrics .metric > span:first-child { font-size: 1.25rem; }
  .coach-metrics .metric small { font-size: .51rem; }
  .coach-segmented button { gap: 5px; padding-inline: 4px; font-size: .69rem; }
  .coach-today-head,.coach-today-row { grid-template-columns: minmax(0,1fr) repeat(3,53px); gap: 3px; }
  .coach-today-row b { padding-left: 2px; font-size: .77rem; }
  .coach-today-row span { margin-inline: 2px; }
  .coach-library-tools { padding: 14px; }
  .coach-library-tools > div { align-items: flex-end; }
  .coach-library-tools select { max-width: 154px; font-size: .62rem; }
  .coach-native-card { border-radius: 18px; }
  .coach-roster-row,.coach-template-row { padding: 15px; }
  .coach-roster-open .list-row-main b,.coach-template-row .list-row-main b { font-size: 1rem; }
  .coach-row-action { width: 44px; height: 44px; }
  .coach-pending-invites article { align-items: flex-start; flex-direction: column; }
  .coach-review-details { grid-template-columns: 1fr; }
  .coach-calendar-actions { gap: 8px; }
  .coach-calendar-actions button { min-height: 82px; padding-inline: 5px; font-size: .7rem; }
  .coach-team-settings { padding-inline: 0; }
  .coach-settings-card { border-radius: 18px; }
  .modal.coach-organization-editor-modal { max-height: 97dvh; border-radius: 30px 30px 0 0; }.coach-organization-editor-head { padding: 19px 15px 15px; }.coach-organization-sheet { max-height: calc(97dvh - 98px); padding: 16px 14px calc(26px + env(safe-area-inset-bottom)); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* Signed-in workspace — mirrors the native iOS PitchTheme and layout system. */
.icon-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.is-authenticated { overscroll-behavior-y: none; }
.platform-shell { background: var(--background); }
.platform-sidebar {
  background: linear-gradient(180deg, rgba(14, 15, 18, .99), rgba(9, 10, 13, .99));
  border-right-color: var(--border);
}
.sidebar-head { height: 72px; padding-inline: 18px; }
.platform-brand { height: 29px; }
.icon-button { width: 40px; height: 40px; border-radius: var(--radius); background: var(--surface); }
.icon-button svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.platform-nav { padding: 14px 12px 22px; }
.nav-label { margin: 20px 8px 8px; color: var(--tertiary); font-size: .58rem; }
.platform-nav a {
  grid-template-columns: 38px minmax(0, 1fr) auto;
  gap: 10px;
  min-height: 48px;
  margin: 4px 0;
  padding: 4px 9px 4px 5px;
  border-radius: var(--radius);
  color: var(--secondary);
}
.platform-nav a > .nav-icon {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border: 1px solid transparent;
  border-radius: var(--radius);
  background: var(--surface-soft);
  color: var(--tertiary);
}
.nav-icon svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
.platform-nav a b { font-size: .79rem; font-weight: 720; }
.platform-nav a:hover { background: var(--surface-soft); }
.platform-nav a.is-active {
  border-color: var(--accent-border);
  background: var(--accent-soft);
  color: var(--primary);
}
.platform-nav a.is-active::before { display: none; }
.platform-nav a.is-active > .nav-icon { border-color: rgba(232, 41, 41, .32); background: rgba(232, 41, 41, .18); color: var(--accent-bright); }
.sidebar-account { min-height: 76px; background: rgba(255, 255, 255, .018); }
.avatar { border-color: var(--accent-border); background: var(--accent-soft); color: var(--primary); }
.platform-topbar {
  min-height: 72px;
  padding: 10px clamp(22px, 4vw, 48px);
  background: rgba(9, 10, 13, .84);
  border-bottom-color: var(--border);
  -webkit-backdrop-filter: saturate(1.25) blur(24px);
  backdrop-filter: saturate(1.25) blur(24px);
}
.platform-topbar h2 { font-family: var(--font-body); font-size: 1.14rem; font-style: normal; font-weight: 820; letter-spacing: -.015em; text-transform: none; }
.platform-topbar .eyebrow { margin-bottom: 2px; font-size: .57rem; }
.sync-state { min-height: 32px; border-radius: 999px; background: var(--surface-soft); }
.platform-main {
  min-height: calc(100vh - 72px);
  padding: 26px clamp(20px, 4vw, 48px) 132px;
  background: var(--background);
}
.route-view { width: min(var(--content-max), 100%); margin-inline: auto; outline: none; }

.page-hero {
  align-items: center;
  gap: 18px;
  margin-bottom: 14px;
  padding: 4px 1px 8px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.page-hero h1 {
  max-width: 740px;
  margin: 4px 0 5px;
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 4vw, 2.15rem);
  font-style: italic;
  line-height: 1.02;
  letter-spacing: -.025em;
  text-transform: uppercase;
}
.page-hero p:not(.eyebrow) { max-width: 680px; color: var(--secondary); font-size: .8rem; line-height: 1.48; }
.page-hero > .primary-button, .page-hero > .secondary-button { align-self: center; }
.hero-stat {
  min-width: 138px;
  padding: 14px 16px;
  border-color: var(--border);
  border-radius: var(--radius);
  background: var(--surface-chrome);
  text-align: left;
}
.hero-stat strong, .hero-stat > span:first-child { font-size: 1.72rem; }
.content-grid { gap: 14px; }
.panel {
  padding: 18px;
  border-color: var(--border);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: none;
}
.panel-header { align-items: center; margin-bottom: 14px; }
.panel-header h3 { margin-top: 2px; font-family: var(--font-body); font-size: 1.08rem; font-style: normal; font-weight: 820; letter-spacing: -.015em; text-transform: none; }
.panel-label { color: var(--tertiary); font-size: .56rem; }
.metric-grid { gap: 10px; }
.metric { min-height: 92px; padding: 16px; border-color: var(--border); border-radius: var(--radius); background: var(--surface-chrome); }
.metric span { font-size: .58rem; }
.metric strong, .metric > span:first-child { font-size: 1.55rem; }
.list { gap: 8px; }
.list-row { min-height: 58px; border-color: var(--border); border-radius: var(--radius); background: var(--surface-soft); }
.list-row:hover { border-color: rgba(255, 255, 255, .15); background: var(--surface-hover); }
.compact-button, .toolbar select { border-radius: var(--radius); }
.status-pill { min-height: 24px; }
.empty-state { border-radius: var(--radius); background: rgba(255, 255, 255, .012); }
.notice { border-radius: var(--radius); background: var(--surface-chrome); }
.field input, .field select, .field textarea, .search-input { border-radius: var(--radius); background: var(--background-raised); }
.primary-button, .secondary-button, .danger-button { min-height: 44px; border-radius: var(--radius); }
.primary-button { border-color: var(--accent); background: linear-gradient(180deg, #ed3535, #d51f28); }
.secondary-button { border-color: var(--border); background: var(--surface-chrome); }
.chart-bar { border-radius: 5px 5px 2px 2px; background: linear-gradient(180deg, #f03a3a, #a90e24); }
.grip-card { border-radius: var(--radius); background: var(--surface-chrome); }
.grip-card .grip-icon { border-radius: var(--radius); }
.paywall {
  min-height: 510px;
  border-radius: var(--radius);
  background: radial-gradient(circle at 50% 0%, rgba(232, 41, 41, .14), transparent 40%), var(--surface);
}
.paywall-mark { border-radius: var(--radius); }
.paywall h2, .paywall h3 { font-size: clamp(2rem, 5vw, 3.15rem); }
.modal-layer { padding: 16px; background: rgba(0, 0, 0, .72); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.modal { padding: 24px; border-color: var(--border); border-radius: var(--modal-radius); background: var(--surface-chrome); }
.modal-header h3 { font-family: var(--font-body); font-style: normal; font-weight: 840; text-transform: none; }
.toast-region { bottom: max(20px, env(safe-area-inset-bottom)); }
.toast { border-radius: var(--radius); background: rgba(27, 29, 32, .97); }
.mobile-tab-bar { display: none; }

@media (max-width: 820px) {
  .platform-sidebar { z-index: 120; }
  .sidebar-scrim { z-index: 110; background: rgba(0, 0, 0, .68); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
  .platform-topbar { display: none; }
  .platform-main { min-height: 100vh; padding: max(16px, env(safe-area-inset-top)) 16px 132px; }
  .mobile-tab-bar {
    position: fixed;
    z-index: 90;
    left: 10px;
    right: 10px;
    bottom: max(10px, env(safe-area-inset-bottom));
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 4px;
    padding: 7px;
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: 22px;
    background: rgba(22, 23, 27, .84);
    box-shadow: 0 15px 45px rgba(0, 0, 0, .48);
    -webkit-backdrop-filter: saturate(1.5) blur(24px);
    backdrop-filter: saturate(1.5) blur(24px);
  }
  .mobile-tab-bar a, .mobile-tab-bar button {
    display: grid;
    place-items: center;
    align-content: center;
    gap: 4px;
    min-width: 0;
    min-height: 54px;
    padding: 5px 2px;
    border: 1px solid transparent;
    border-radius: 15px;
    background: transparent;
    color: var(--tertiary);
    text-decoration: none;
    cursor: pointer;
  }
  .mobile-tab-bar a.is-active { border-color: rgba(232, 41, 41, .25); background: var(--accent-soft); color: var(--primary); }
  .mobile-tab-bar svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
  .mobile-tab-bar a.is-active svg { color: var(--accent-bright); }
  .mobile-tab-bar span { overflow: hidden; width: 100%; font-size: .5rem; font-weight: 760; line-height: 1.1; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
  .toast-region { right: 12px; bottom: calc(92px + env(safe-area-inset-bottom)); width: calc(100vw - 24px); }
}

@media (max-width: 600px) {
  .page-hero { grid-template-columns: 1fr; gap: 12px; }
  .hero-stat { width: 100%; }
  .panel { padding: 16px; }
  .modal { padding: 20px; }
}

@media (max-width: 370px) {
  .mobile-tab-bar { left: 6px; right: 6px; gap: 1px; padding-inline: 5px; }
  .mobile-tab-bar a, .mobile-tab-bar button { min-height: 50px; }
  .mobile-tab-bar span { font-size: .45rem; }
}

/* Native workspace parity — the signed-in web app follows the same shell as iOS. */
.workspace-app-icon {
  width: 36px;
  height: 36px;
  flex: 0 0 auto;
  border-radius: 8px;
  object-fit: cover;
}
.workspace-title { display: grid; flex: 1 1 auto; gap: 1px; min-width: 0; }
.workspace-title p {
  margin: 0;
  color: var(--primary);
  font-family: var(--font-display);
  font-size: 1.12rem;
  font-style: italic;
  line-height: 1;
}
.workspace-title h2 { color: var(--secondary); }
.workspace-switch {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 40px;
  padding: 0 15px;
  border: 1px solid var(--border-strong);
  border-radius: 999px;
  background: var(--background-raised);
  color: var(--primary);
  font-family: var(--font-display);
  font-size: .82rem;
  font-style: italic;
  cursor: pointer;
}
.workspace-switch svg {
  width: 21px;
  height: 21px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.is-coach-workspace .workspace-switch {
  border-color: var(--accent-border);
  background: var(--accent-soft);
  cursor: default;
}
.sidebar-nav-group[hidden] { display: none !important; }
.is-coach-workspace #coach-sidebar-nav .nav-label { color: var(--accent-bright); }
.is-coach-workspace #coach-sidebar-nav a { min-height: 52px; }
.coach-tab-bar[hidden], .athlete-tab-bar[hidden] { display: none !important; }
.metric-grid { margin-bottom: 14px; }
.panel > p { color: var(--secondary); font-size: .76rem; line-height: 1.55; }

@media (max-width: 820px) {
  .platform-shell { width: 100vw; grid-template-columns: minmax(0, 1fr); }
  .platform-workspace { display: grid; grid-template-rows: auto 1fr; min-height: 100vh; }
  .platform-topbar {
    position: sticky;
    top: 0;
    z-index: 85;
    display: flex;
    min-height: 66px;
    padding: max(8px, env(safe-area-inset-top)) 14px 8px;
    background: rgba(9, 10, 13, .92);
    -webkit-backdrop-filter: saturate(1.3) blur(24px);
    backdrop-filter: saturate(1.3) blur(24px);
  }
  .platform-topbar .menu-button { width: 34px; height: 34px; border: 0; background: transparent; }
  .workspace-app-icon { width: 32px; height: 32px; }
  .workspace-title p { font-size: 1rem; }
  .platform-topbar h2 { max-width: 42vw; color: var(--secondary); font-size: .75rem; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .topbar-actions { gap: 6px; }
  .topbar-actions .sync-state, .topbar-actions #refresh-page, .topbar-avatar { display: none; }
  .workspace-switch { min-height: 36px; padding: 0 12px; font-size: .72rem; }
  .workspace-switch svg { width: 19px; height: 19px; }
  .platform-main {
    width: 100%;
    min-width: 0;
    min-height: calc(100vh - 66px);
    padding: 18px 16px calc(112px + env(safe-area-inset-bottom));
  }
  .route-view { width: 100%; max-width: 680px; min-width: 0; }
  .page-hero { margin-bottom: 18px; padding-top: 7px; }
  .page-hero h1 { margin-top: 6px; font-size: clamp(1.85rem, 8vw, 2.15rem); line-height: .96; overflow-wrap: anywhere; }
  .page-hero p:not(.eyebrow) { font-size: .85rem; line-height: 1.42; }
  .eyebrow { font-size: .69rem; letter-spacing: .15em; }
  .panel { padding: 18px; }
  .panel-header h3 { font-family: var(--font-display); font-size: 1.32rem; font-style: italic; line-height: 1; }
  .metric { min-height: 88px; }
  .metric, .metric > span:first-child, .metric small { min-width: 0; overflow-wrap: anywhere; }
  .mobile-tab-bar {
    left: 12px;
    right: 12px;
    bottom: max(12px, env(safe-area-inset-bottom));
    min-height: 78px;
    padding: 8px;
    border-color: rgba(232, 41, 41, .4);
    border-radius: 34px;
    background: rgba(40, 36, 38, .9);
  }
  .athlete-tab-bar { grid-template-columns: repeat(8, minmax(0, 1fr)); }
  .coach-tab-bar { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .mobile-tab-bar a, .mobile-tab-bar button {
    min-height: 60px;
    gap: 4px;
    padding: 5px 1px;
    border-radius: 24px;
    overflow: hidden;
  }
  .mobile-tab-bar a.is-active {
    border-color: rgba(232, 41, 41, .6);
    background: linear-gradient(135deg, rgba(232, 41, 41, .22), rgba(255, 255, 255, .06));
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .03);
  }
  .mobile-tab-bar svg { width: 21px; height: 21px; }
  .mobile-tab-bar span { color: inherit; font-size: clamp(.4rem, 1.6vw, .57rem); font-weight: 520; }
  .coach-tab-bar span { font-size: .62rem; }
}

@media (max-width: 600px) {
  .content-grid { gap: 12px; }
  .span-4, .span-5, .span-6, .span-7, .span-8 { grid-column: span 12; }
  .metric-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .list-row { padding: 13px; }
  .row-actions { flex-wrap: wrap; justify-content: flex-end; }
  .workspace-switch span { display: inline; }
}

@media (max-width: 390px) {
  .platform-main { padding-inline: 12px; }
  .platform-topbar { padding-inline: 10px; gap: 7px; }
  .platform-topbar .menu-button { width: 30px; }
  .workspace-app-icon { width: 30px; height: 30px; }
  .workspace-switch { padding-inline: 9px; }
  .mobile-tab-bar { left: 7px; right: 7px; padding: 6px; }
  .mobile-tab-bar a, .mobile-tab-bar button { min-height: 56px; }
}

.home-quick-nav {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin: 0 0 14px;
  padding: 8px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
}
.home-quick-nav a {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 48px;
  border: 1px solid transparent;
  border-radius: var(--radius);
  color: var(--secondary);
  font-family: var(--font-display);
  font-size: .78rem;
  font-style: italic;
  text-decoration: none;
}
.home-quick-nav a:hover { border-color: var(--accent-border); background: var(--accent-soft); color: var(--primary); }
.home-quick-nav svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.radar-camera { position: relative; overflow: hidden; min-height: 360px; border: 1px solid var(--border); border-radius: var(--radius); background: #030405; }
.radar-camera video { display: block; width: 100%; min-height: 360px; object-fit: cover; }
.radar-reticle { position: absolute; inset: 12%; pointer-events: none; }
.radar-reticle span { position: absolute; display: grid; place-items: center; width: 94px; height: 94px; border: 2px solid rgba(240, 58, 58, .85); border-radius: 50%; color: white; font-size: .62rem; font-weight: 800; text-transform: uppercase; text-shadow: 0 1px 3px black; }
.radar-reticle span:first-child { left: 4%; bottom: 8%; }
.radar-reticle span:last-child { right: 4%; top: 8%; }
.radar-camera-actions { position: absolute; left: 12px; right: 12px; bottom: 12px; display: flex; justify-content: center; gap: 8px; }
.radar-note { margin: 12px 0 0; color: var(--tertiary) !important; font-size: .65rem !important; }
.leaderboard { display: grid; }
.leaderboard-row { display: grid; grid-template-columns: 70px minmax(0, 1fr) auto; gap: 12px; align-items: center; min-height: 50px; padding: 0 10px; border-bottom: 1px solid var(--border); font-size: .72rem; }
.leaderboard-row:last-child { border-bottom: 0; }
.leaderboard-row strong, .leaderboard-row b { font-family: var(--font-display); font-style: italic; }
.leaderboard-row b { color: var(--accent-bright); }
.leaderboard-head { min-height: 34px; color: var(--tertiary); font-size: .56rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.leaderboard-row.is-current { background: var(--accent-soft); }
.leaderboard-row > span small { display: inline-block; margin-left: 8px; padding: 4px 7px; border: 1px solid var(--accent-border); border-radius: 999px; color: white; font: italic 800 .48rem var(--font-display); vertical-align: middle; }
.coach-segmented { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin: 0 0 14px; padding: 7px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface-chrome); }
.coach-segmented button, .coach-segmented a { display: grid; place-items: center; min-height: 50px; border: 1px solid transparent; border-radius: var(--radius); background: transparent; color: var(--secondary); font-family: var(--font-display); font-size: .85rem; font-style: italic; text-decoration: none; }
.coach-segmented .is-active { border-color: var(--accent-border); background: linear-gradient(135deg, #ff434b, #a40e20); color: white; }
.coach-today-table { display: grid; }
.coach-today-head, .coach-today-row { display: grid; grid-template-columns: minmax(0, 1fr) repeat(3, 76px); align-items: center; gap: 8px; min-height: 54px; border-bottom: 1px solid var(--border); }
.coach-today-head { min-height: 36px; color: var(--tertiary); font-size: .59rem; font-weight: 800; text-transform: uppercase; }
.coach-today-row:last-child { border-bottom: 0; }
.coach-today-row b { font-family: var(--font-display); font-style: italic; }
.coach-today-row span { display: grid; place-items: center; min-height: 32px; border-radius: 999px; background: var(--surface-chrome); color: var(--tertiary); }
.coach-today-row .is-ready { background: var(--success-soft); color: var(--success); }
.coach-roster-list .list-row { grid-template-columns: 42px minmax(0, 1fr) auto auto; }
.coach-calendar-list { display: grid; gap: 10px; }
.calendar-event { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 14px; align-items: center; min-height: 82px; padding: 12px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface-soft); }
.calendar-event time { display: grid; place-items: center; min-height: 56px; border-radius: var(--radius); background: var(--accent-soft); color: var(--accent-bright); font-family: var(--font-display); font-size: .9rem; font-style: italic; text-transform: uppercase; }
.calendar-event h4 { margin: 0; font-family: var(--font-display); font-size: 1rem; font-style: italic; }
.calendar-event p { margin: 5px 0 0; color: var(--tertiary); font-size: .67rem; }

@media (max-width: 600px) {
  .home-quick-nav { gap: 4px; }
  .home-quick-nav a { gap: 5px; font-size: .7rem; }
  .radar-camera, .radar-camera video { min-height: 310px; }
  .coach-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .coach-metrics .metric { min-height: 78px; padding: 11px 8px; text-align: center; }
  .coach-metrics .metric > span:first-child { font-size: 1.35rem; }
  .coach-metrics .metric small { font-size: .5rem; }
  .coach-today-head, .coach-today-row { grid-template-columns: minmax(0, 1fr) repeat(3, 52px); }
  .coach-roster-list .list-row { grid-template-columns: 38px minmax(0, 1fr) auto; }
  .coach-roster-list .list-row .compact-button { grid-column: 2 / -1; justify-self: end; }
}

/* Settings mirrors the native iOS workspace: one focused scroll column, layered cards, compact rows and capsule controls. */
.native-settings-page { display: grid; width: min(880px, 100%); gap: 20px; margin: 0 auto; padding: 24px 20px 0; }
.native-settings-header { padding: 4px 6px 6px; }
.native-settings-header > p { margin: 0 0 5px; color: var(--accent-bright); font: italic 850 .74rem var(--font-display); letter-spacing: .13em; }
.native-settings-header h1 { margin: 0; font: italic 900 clamp(2.6rem, 7vw, 4.15rem)/.94 var(--font-display); letter-spacing: -.035em; }
.native-settings-header > span { display: block; max-width: 680px; margin-top: 11px; color: var(--secondary); font-size: .82rem; line-height: 1.52; }
.native-settings-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
.native-settings-card { overflow: hidden; border: 1px solid #2c2f34; border-radius: 22px; background: linear-gradient(145deg, #15171a 0%, #111316 100%); box-shadow: 0 16px 36px rgba(0,0,0,.14); }
.settings-card-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 21px 17px; border-bottom: 1px solid #292c30; }
.settings-card-heading > div { display: flex; min-width: 0; align-items: center; gap: 12px; }
.settings-card-heading > div > span { min-width: 0; }
.settings-card-heading p { margin: 0 0 4px; color: var(--accent-bright); font: italic 850 .65rem var(--font-display); letter-spacing: .13em; }
.settings-card-heading h2 { margin: 0; font: italic 880 1.5rem/1 var(--font-display); letter-spacing: -.015em; }
.settings-row-icon { display: grid; flex: 0 0 auto; width: 38px; height: 38px; place-items: center; border-radius: 50%; background: rgba(242,41,47,.12); color: var(--accent-bright); }
.settings-row-icon svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.settings-info-button { display: grid; flex: 0 0 auto; width: 38px; height: 38px; padding: 0; place-items: center; border: 0; border-radius: 50%; background: #202226; color: var(--accent-bright); cursor: pointer; }
.settings-info-button:hover { background: #292c31; }
.settings-info-button svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.9; }
.settings-card-content { display: grid; gap: 13px; padding: 18px 21px 21px; }
.settings-ios-card { background: radial-gradient(circle at 88% 50%,rgba(235,38,49,.13),transparent 37%),linear-gradient(145deg,#15171a 0%,#111316 100%); }
.settings-ios-promo { display: flex; min-height: 96px; align-items: center; justify-content: space-between; gap: 24px; padding: 4px 2px; }
.settings-ios-promo > div { display: grid; max-width: 490px; gap: 7px; }
.settings-ios-promo b { font: italic 850 1rem/1.15 var(--font-display); }
.settings-ios-promo small { color: var(--secondary); font-size: .68rem; line-height: 1.5; }
.settings-ios-promo > a { display: block; flex: 0 0 auto; border-radius: 9px; transition: transform .16s ease,filter .16s ease; }
.settings-ios-promo > a:hover { filter: brightness(1.08); transform: translateY(-1px); }
.settings-ios-promo > a:focus-visible { outline: 3px solid rgba(242,41,47,.45); outline-offset: 4px; }
.settings-ios-promo img { display: block; width: 184px; max-width: 100%; height: auto; }
.settings-profile-summary { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 13px; align-items: center; margin-bottom: 2px; padding: 13px; border: 1px solid #303339; border-radius: 16px; background: rgba(255,255,255,.035); }
.settings-avatar { display: grid; width: 52px; height: 52px; place-items: center; border: 1px solid #a32229; border-radius: 15px; background: #351216; font: italic 850 1.25rem var(--font-display); }
.settings-profile-summary > div { display: grid; min-width: 0; gap: 4px; }
.settings-profile-summary > div b { overflow: hidden; font: italic 850 1.06rem var(--font-display); text-overflow: ellipsis; white-space: nowrap; }
.settings-profile-summary > div small { overflow: hidden; color: var(--secondary); font-size: .68rem; text-overflow: ellipsis; white-space: nowrap; }
.settings-status-pill { padding: 7px 10px; border-radius: 999px; background: #24262a; color: var(--secondary); font: italic 800 .62rem var(--font-display); white-space: nowrap; }
.settings-status-pill.is-active { background: var(--success-soft); color: var(--success); }
.settings-information { display: grid; border-top: 1px solid #303238; }
.settings-info-row { display: grid; grid-template-columns: minmax(120px, auto) minmax(0, 1fr); gap: 16px; min-height: 48px; align-items: center; border-bottom: 1px solid #303238; }
.settings-info-row > .settings-row-icon { width: 32px; height: 32px; }
.settings-info-row:has(.settings-row-icon) { grid-template-columns: auto minmax(110px, auto) minmax(0, 1fr); }
.settings-info-row > span { color: var(--secondary); font: italic 760 .7rem var(--font-display); }
.settings-info-row > strong { overflow: hidden; font-size: .74rem; font-weight: 580; text-align: right; text-overflow: ellipsis; white-space: nowrap; }
.settings-info-row > strong.settings-value-active { color: var(--success); }
.settings-info-row > strong.settings-value-neutral { color: var(--secondary); }
.settings-action-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; margin-top: 2px; }
.settings-action-grid.three { grid-template-columns: repeat(3, minmax(0,1fr)); }
.settings-action-grid > a { display: flex; align-items: center; justify-content: center; text-decoration: none; }
.settings-full-button { display: flex; width: 100%; margin-top: 2px; justify-content: center; text-decoration: none; }
.settings-copy { margin: 0; color: var(--secondary); font-size: .68rem; line-height: 1.55; }
.settings-toggle-row,.settings-muted-list > label { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 12px; min-height: 62px; align-items: center; padding: 10px 12px; border: 1px solid #303339; border-radius: 15px; background: rgba(255,255,255,.035); cursor: pointer; }
.settings-toggle-row > span,.settings-muted-list > label > span { display: grid; min-width: 0; gap: 4px; }
.settings-toggle-row b,.settings-muted-list b { font: italic 800 .75rem var(--font-display); }
.settings-toggle-row small,.settings-muted-list small { color: var(--secondary); font-size: .61rem; line-height: 1.4; }
.settings-toggle-row input,.settings-muted-list input { position: absolute; opacity: 0; pointer-events: none; }
.settings-toggle-row > i,.settings-muted-list label > i { display: block; width: 45px; height: 27px; padding: 3px; border-radius: 999px; background: #383b40; transition: background .18s ease; }
.settings-toggle-row > i::after,.settings-muted-list label > i::after { display: block; width: 21px; height: 21px; border-radius: 50%; background: #e7e8eb; content: ""; transition: transform .18s ease; }
.settings-toggle-row input:checked ~ i,.settings-muted-list input:checked ~ i { background: var(--accent); }
.settings-toggle-row input:checked ~ i::after,.settings-muted-list input:checked ~ i::after { transform: translateX(18px); }
.settings-toggle-row:has(input:checked) > .settings-row-icon,.settings-muted-list label:has(input:checked) > .settings-row-icon { color: var(--accent-bright); }
.settings-choice-row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; gap: 12px; min-height: 58px; align-items: center; padding: 9px 11px; border: 1px solid #303339; border-radius: 15px; background: rgba(255,255,255,.035); }
.settings-choice-row > span:not(.settings-row-icon) { font: italic 800 .72rem var(--font-display); }
.settings-choice-row select { max-width: 260px; min-height: 38px; padding: 0 8px; border: 0; background: transparent; color: var(--secondary); font: 600 .67rem var(--font-app); text-align: right; appearance: none; cursor: pointer; }
.settings-choice-row > svg { width: 14px; height: 14px; fill: none; stroke: var(--tertiary); stroke-width: 2; }
.settings-reminder-options { display: grid; gap: 10px; }
.settings-reminder-options[hidden],.native-settings-card [hidden] { display: none !important; }
.settings-reminder-summary { display: grid; grid-template-columns: 1fr 1px 1fr; gap: 16px; align-items: center; min-height: 84px; padding: 13px 18px; border: 1px solid #303339; border-radius: 15px; background: rgba(255,255,255,.035); }
.settings-reminder-summary > span { display: grid; gap: 4px; text-align: center; }
.settings-reminder-summary small { color: var(--secondary); font: italic 800 .58rem var(--font-display); letter-spacing: .08em; }
.settings-reminder-summary b { font: italic 850 1.3rem var(--font-display); }
.settings-reminder-summary i { height: 42px; background: #34373c; }
.settings-reminder-days { display: flex; gap: 15px; align-items: baseline; justify-content: space-between; padding: 9px 4px 1px; }
.settings-reminder-days span { color: var(--secondary); font: italic 760 .68rem var(--font-display); }
.settings-reminder-days b { font-size: .67rem; text-align: right; }
.settings-segmented { min-width: 0; margin: 0; padding: 0; border: 0; }
.settings-segmented legend { margin-bottom: 8px; color: var(--secondary); font: italic 780 .68rem var(--font-display); }
.settings-segmented > div { display: flex; gap: 6px; padding: 5px; border: 1px solid #2e3136; border-radius: 999px; background: rgba(255,255,255,.035); }
.settings-segmented label { flex: 1 1 0; min-width: 0; cursor: pointer; }
.settings-segmented input { position: absolute; opacity: 0; pointer-events: none; }
.settings-segmented label span { display: grid; min-height: 38px; padding: 0 8px; place-items: center; border: 1px solid transparent; border-radius: 999px; color: var(--secondary); font: italic 800 .65rem var(--font-display); text-align: center; transition: .16s ease; }
.settings-segmented input:checked + span { border-color: rgba(255,255,255,.18); background: linear-gradient(135deg,#ff3c43,#aa181f); color: white; box-shadow: 0 7px 18px rgba(242,41,47,.2); }
.settings-platform-note { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px; padding: 13px; border: 1px solid #303339; border-radius: 15px; background: rgba(255,255,255,.035); }
.settings-platform-note > span { display: grid; gap: 5px; }
.settings-platform-note b { font: italic 800 .74rem var(--font-display); }
.settings-platform-note small { color: var(--secondary); font-size: .64rem; line-height: 1.5; }
.settings-consent-state { display: grid; grid-template-columns: 1fr auto; gap: 7px 15px; padding: 12px 4px 0; }
.settings-consent-state > span { color: var(--secondary); font: italic 760 .68rem var(--font-display); }
.settings-consent-state > b { padding: 5px 8px; border-radius: 999px; background: #292b30; color: var(--secondary); font: italic 780 .6rem var(--font-display); }
.settings-consent-state > b.is-active { background: var(--success-soft); color: var(--success); }
.settings-consent-state p { grid-column: 1 / -1; margin: 0; color: var(--secondary); font-size: .64rem; line-height: 1.5; }
.settings-legal-actions,.settings-account-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.settings-legal-actions { margin-top: 3px; }
.settings-legal-actions a { display: flex; align-items: center; justify-content: center; text-decoration: none; }
.settings-account-actions { padding-top: 13px; border-top: 1px solid #303238; }
.settings-empty { display: grid; min-height: 150px; align-content: center; justify-items: center; text-align: center; }
.settings-empty.compact { min-height: 110px; }
.settings-empty b { font: italic 850 1rem var(--font-display); }
.settings-empty p { max-width: 470px; margin: 7px 0 0; color: var(--secondary); font-size: .68rem; line-height: 1.5; }
.settings-muted-list,.settings-team-list { display: grid; gap: 10px; }
.settings-team-card { display: grid; gap: 13px; padding: 14px; border: 1px solid #303339; border-radius: 16px; background: rgba(255,255,255,.035); }
.settings-team-card > header { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 11px; align-items: center; }
.settings-team-card > header > span { display: grid; min-width: 0; gap: 3px; }
.settings-team-card > header b { overflow: hidden; font: italic 820 .85rem var(--font-display); text-overflow: ellipsis; white-space: nowrap; }
.settings-team-card > header small { color: var(--secondary); font-size: .6rem; }
.settings-team-card > header em { padding: 6px 9px; border-radius: 999px; background: #292b30; color: var(--secondary); font-size: .58rem; font-style: normal; white-space: nowrap; }
.settings-team-card > header em.is-active { background: var(--success-soft); color: var(--success); }
.settings-team-details { border-top: 1px solid #303238; }
.settings-team-primary > p,.settings-team-summary > p { margin: 0 0 7px; color: var(--tertiary); font: italic 800 .57rem var(--font-display); letter-spacing: .09em; }
.settings-team-primary > div { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; }
.settings-team-primary button { min-height: 46px; padding: 0 7px; border: 1px solid #373a40; border-radius: 11px; background: #1a1c20; color: var(--secondary); font: italic 800 .62rem var(--font-display); cursor: pointer; }
.settings-team-primary button.is-selected { border-color: rgba(242,41,47,.65); background: rgba(242,41,47,.16); color: white; }
.settings-team-primary button:disabled { cursor: default; opacity: .55; }
.settings-team-summary { display: grid; gap: 7px; }
.settings-team-summary > span { display: flex; justify-content: space-between; gap: 14px; color: var(--secondary); font-size: .65rem; }
.settings-team-summary > span b { color: white; font-weight: 630; text-align: right; }
.settings-team-summary > p:not(:first-child) { margin-top: 5px; }
.settings-team-summary > small { color: var(--secondary); font-size: .64rem; line-height: 1.45; }
.settings-leave-team { justify-self: start; padding: 4px 0; border: 0; background: transparent; color: var(--accent-bright); font: italic 800 .67rem var(--font-display); cursor: pointer; }
.settings-sheet-header { margin-bottom: 16px; }
.settings-sheet-form { padding-top: 4px; }
.settings-sheet-identity { padding: 5px 13px; border: 1px solid #303339; border-radius: 15px; background: rgba(255,255,255,.035); }
.profile-editor-modal { width: min(940px, calc(100vw - 32px)); max-width: 940px; max-height: min(92dvh, 960px); overflow-y: auto; overscroll-behavior: contain; }
.profile-editor-modal .settings-sheet-header { position: sticky; top: -28px; z-index: 5; margin: -28px -28px 15px; padding: 28px 28px 16px; border-bottom: 1px solid rgba(255,255,255,.08); background: rgba(20,22,25,.96); backdrop-filter: blur(18px); }
.profile-editor-done { align-self: start; padding: 8px 2px; border: 0; background: transparent; color: var(--primary); font: italic 800 .68rem var(--font-display); cursor: pointer; }
.profile-editor-tabs { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 7px; margin-bottom: 9px; }
.profile-editor-tabs button { display: flex; min-width: 0; min-height: 54px; align-items: center; justify-content: center; gap: 7px; padding: 8px; border: 1px solid #34373c; border-radius: 13px; background: #1a1c20; color: var(--secondary); font: italic 800 .64rem var(--font-display); cursor: pointer; }
.profile-editor-tabs button small { display: grid; width: 22px; height: 22px; flex: 0 0 auto; place-items: center; border-radius: 50%; background: #292c31; color: var(--secondary); font: 760 .58rem var(--font-body); }
.profile-editor-tabs button span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.profile-editor-tabs button.is-active { border-color: rgba(242,41,47,.78); background: rgba(242,41,47,.16); color: white; }
.profile-editor-tabs button.is-active small { background: var(--accent); color: white; }
.profile-editor-progress { height: 4px; margin-bottom: 19px; overflow: hidden; border-radius: 999px; background: rgba(255,255,255,.07); }
.profile-editor-progress i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,var(--accent),#ff6670); transition: width .2s ease; }
.profile-editor-step { min-height: 420px; padding: clamp(17px,3vw,25px); border: 1px solid #303339; border-radius: 19px; background: rgba(255,255,255,.022); }
.profile-editor-step > .form-grid { gap: 15px; }
.profile-editor-group { display: grid; gap: 18px; }
.profile-editor-group-head { display: grid; gap: 4px; padding-bottom: 14px; border-bottom: 1px solid rgba(255,255,255,.09); }
.profile-editor-group-head p { margin: 0; color: var(--accent-bright); font: italic 850 .7rem var(--font-display); letter-spacing: .09em; text-transform: uppercase; }
.profile-editor-group-head span { color: var(--secondary); font-size: .66rem; line-height: 1.4; }
.profile-editor-footer { position: sticky; bottom: -28px; z-index: 5; display: grid; grid-template-columns: auto 1fr auto auto auto; gap: 9px; margin: 20px -28px -28px; padding: 15px 28px calc(20px + env(safe-area-inset-bottom)); border-top: 1px solid rgba(255,255,255,.09); background: rgba(20,22,25,.96); backdrop-filter: blur(18px); }
.profile-editor-footer button:disabled { opacity: .35; cursor: default; }
.profile-editor-save-prompt { position: fixed; z-index: 30; inset: 0; display: grid; place-items: center; padding: 20px; background: rgba(0,0,0,.72); backdrop-filter: blur(10px); }
.profile-editor-save-prompt > section { width: min(560px,100%); padding: clamp(22px,4vw,32px); border: 1px solid rgba(242,41,47,.75); border-radius: 22px; background: #17191d; box-shadow: 0 24px 80px rgba(0,0,0,.55); }
.profile-editor-save-prompt h3 { margin: 7px 0 10px; font: italic 850 clamp(1.35rem,3vw,1.8rem) var(--font-display); }
.profile-editor-save-prompt > section > p:not(.eyebrow) { margin: 0; color: var(--secondary); font-size: .72rem; line-height: 1.5; }
.profile-editor-save-prompt > section > div { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin-top: 22px; }
.settings-bottom-space { height: 92px; }
.macro-card > i::after { display: none; }
@media (min-width: 821px) {
  body:not(.is-coach-workspace) .platform-topbar { display: none; }
  body:not(.is-coach-workspace) .platform-main { min-height: 100vh; }
}
@media (max-width: 820px) {
  .athlete-tab-bar { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .modal-layer { align-items: end; padding: 0; }
  .modal { width: 100%; max-width: none; max-height: 94dvh; padding: 22px 18px calc(25px + env(safe-area-inset-bottom)); border-radius: 34px 34px 0 0; }
}
@media (max-width: 600px) {
  .native-settings-page { padding: 18px 12px 0; }
  .native-settings-header { padding-inline: 5px; }
  .settings-card-heading { padding: 17px 15px 14px; }
  .settings-card-content { padding: 15px; }
  .settings-ios-promo { align-items: flex-start; flex-direction: column; gap: 17px; }
  .settings-ios-promo img { width: 176px; }
  .settings-profile-summary { grid-template-columns: auto minmax(0, 1fr); }
  .settings-profile-summary > .settings-status-pill { grid-column: 1 / -1; justify-self: stretch; text-align: center; }
  .settings-action-grid,.settings-action-grid.three { grid-template-columns: 1fr; }
  .settings-info-row { grid-template-columns: minmax(90px,auto) minmax(0,1fr); }
  .settings-team-card > header { grid-template-columns: auto minmax(0,1fr); }
  .settings-team-card > header > em { grid-column: 1/-1; justify-self: stretch; text-align: center; }
  .settings-choice-row { grid-template-columns: auto minmax(0,1fr) auto; }
  .settings-choice-row select { grid-column: 2; max-width: 100%; text-align: left; }
  .settings-choice-row > svg { grid-column: 3; grid-row: 1 / span 2; }
  .settings-segmented > div { flex-wrap: wrap; border-radius: 17px; }
  .settings-segmented label { flex-basis: calc(50% - 4px); }
  .settings-legal-actions,.settings-account-actions { grid-template-columns: 1fr; }
  .profile-editor-modal { width: 100%; max-height: 95dvh; }
  .profile-editor-modal .settings-sheet-header { top: -22px; margin: -22px -18px 13px; padding: 22px 18px 14px; }
  .profile-editor-tabs { display: flex; overflow-x: auto; padding-bottom: 3px; scrollbar-width: none; }
  .profile-editor-tabs button { min-width: 112px; }
  .profile-editor-step { min-height: 0; padding: 14px; }
  .profile-editor-footer { bottom: calc(-25px - env(safe-area-inset-bottom)); grid-template-columns: repeat(2,minmax(0,1fr)); margin: 16px -18px calc(-25px - env(safe-area-inset-bottom)); padding: 12px 18px calc(18px + env(safe-area-inset-bottom)); }
  .profile-editor-footer > span { display: none; }
  .profile-editor-footer button { min-width: 0; }
  .profile-editor-save-prompt > section > div { grid-template-columns: 1fr; }
}

/* Home tool destinations mirror the large native iOS sheets. */
.tool-destination-head { display: grid; grid-template-columns: 46px minmax(0, 1fr); gap: 15px; align-items: start; margin-bottom: 18px; padding: 25px; border: 1px solid #292c30; border-radius: 22px; background: linear-gradient(145deg, #17191c, #111316); }
.tool-destination-head > a { display: grid; width: 44px; height: 44px; place-items: center; border: 1px solid #34373b; border-radius: 50%; background: #202226; color: white; font-size: 2rem; line-height: 1; text-decoration: none; }
.tool-destination-head p,.tool-card-heading p,.plan-summary p,.plan-week-card > header p,.tool-empty-state > p { margin: 0; color: var(--accent-bright); font-family: var(--font-display); font-size: .72rem; font-style: italic; font-weight: 850; letter-spacing: .1em; }
.tool-destination-head h1 { margin: 1px 0 7px; font-family: var(--font-display); font-size: clamp(2rem, 5vw, 3.15rem); font-style: italic; line-height: .95; }
.tool-destination-head span { display: block; max-width: 850px; color: var(--secondary); font-size: .78rem; line-height: 1.5; }
.tool-card { margin-bottom: 16px; padding: 22px; border: 1px solid #2b2d31; border-radius: 20px; background: #131518; }
.tool-card-heading { display: flex; align-items: start; justify-content: space-between; gap: 18px; margin-bottom: 18px; }
.tool-card-heading h2,.plan-summary h2,.tool-empty-state h2 { margin: 4px 0 0; font-family: var(--font-display); font-size: 1.55rem; font-style: italic; }
.tool-card-heading > span,.tool-card-heading > strong { padding: 7px 10px; border-radius: 999px; background: #24262a; color: var(--secondary); font-size: .67rem; }
.tool-empty { margin: 18px 0 2px; color: var(--secondary); font-size: .75rem; }
.tool-empty-state { display: grid; gap: 7px; min-height: 230px; align-content: center; justify-items: start; }
.tool-empty-state.compact { min-height: 160px; padding: 18px 0; }
.tool-empty-state span { max-width: 570px; color: var(--secondary); line-height: 1.5; }

.equipment-overview { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-bottom: 16px; }
.equipment-overview article { display: grid; gap: 4px; min-height: 112px; padding: 19px; align-content: center; border: 1px solid #2b2d31; border-radius: 18px; background: #17191c; }
.equipment-overview strong { font-family: var(--font-display); font-size: 2rem; font-style: italic; }
.equipment-overview span { color: var(--secondary); font-size: .72rem; }
.equipment-group > header { display: flex; align-items: start; justify-content: space-between; gap: 15px; margin-bottom: 14px; }
.equipment-group > header p { margin: 0 0 5px; font-family: var(--font-display); font-size: 1.2rem; font-style: italic; font-weight: 800; }
.equipment-group > header span { color: var(--secondary); font-size: .7rem; line-height: 1.4; }
.equipment-group > header > b { display: grid; min-width: 32px; height: 32px; place-items: center; border-radius: 50%; background: #24262a; }
.equipment-list { display: grid; gap: 8px; }
.equipment-list article { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto auto; gap: 11px; align-items: center; min-height: 72px; padding: 10px 12px; border: 1px solid #303237; border-radius: 15px; background: #1a1c20; }
.equipment-icon { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 12px; background: rgba(255,180,39,.12); color: #ffb427; font-size: 1.25rem; }.equipment-icon.owned { background: rgba(73,210,140,.12); color: #49d28c; }.equipment-icon.helpful { background: #292b30; color: #d6d8dd; }
.equipment-list article > span { display: grid; gap: 4px; }.equipment-list article > span b { font-family: var(--font-display); font-style: italic; }.equipment-list article > span small { color: var(--secondary); }
.equipment-list article > a,.equipment-list article > button { min-height: 36px; padding: 0 11px; border: 1px solid #41444a; border-radius: 11px; background: #25272b; color: white; font: 700 .63rem var(--font-app); text-decoration: none; cursor: pointer; }.equipment-list article > a { display: grid; place-items: center; }.equipment-list article > button:hover { border-color: var(--accent-border); background: var(--accent-soft); }

.plan-summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.plan-summary > div:first-child > span { display: inline-block; margin-top: 8px; padding: 6px 9px; border: 1px solid var(--accent-border); border-radius: 999px; color: var(--accent-bright); font: italic 800 .62rem var(--font-display); }
.plan-summary > div:last-child { display: grid; min-width: 120px; text-align: right; }.plan-summary > div:last-child strong { font: italic 850 2rem var(--font-display); }.plan-summary > div:last-child small { color: var(--secondary); }
.plan-weeks { display: grid; gap: 15px; }
.plan-week-card { padding: 20px; border: 1px solid #2b2d31; border-radius: 20px; background: #131518; }
.plan-week-card > header { display: flex; align-items: start; justify-content: space-between; gap: 25px; }
.plan-week-card > header span { display: block; margin: 4px 0; color: var(--secondary); font-size: .67rem; }.plan-week-card > header h2 { margin: 2px 0 5px; font: italic 850 1.5rem/1 var(--font-display); }.plan-week-card > header small { color: var(--secondary); line-height: 1.4; }
.plan-week-card > header > strong { display: grid; min-width: 130px; text-align: right; font: italic 850 1.35rem var(--font-display); }.plan-week-card > header > strong small { font: 500 .58rem var(--font-app); }
.plan-reason { margin: 14px 0; padding: 11px 13px; border-radius: 12px; background: #1c1e22; color: var(--secondary); font-size: .68rem; line-height: 1.45; }
.plan-day-list { display: grid; gap: 7px; margin-top: 15px; }.plan-day-list button { display: grid; grid-template-columns: 110px minmax(0, 1fr) auto 95px 16px; gap: 10px; align-items: center; min-height: 54px; padding: 8px 12px; border: 1px solid #303237; border-radius: 13px; background: #1a1c20; color: white; text-align: left; cursor: pointer; }.plan-day-list b,.plan-day-list strong { font-family: var(--font-display); font-style: italic; }.plan-day-list span { overflow: hidden; color: var(--secondary); font-size: .7rem; text-overflow: ellipsis; white-space: nowrap; }.plan-day-list i { padding: 5px 8px; border-radius: 999px; background: var(--accent-soft); font: italic 750 .57rem var(--font-display); }.plan-day-list strong { text-align: right; }.plan-day-list em { color: var(--tertiary); font-size: 1.2rem; }.plan-day-list button:hover { border-color: var(--accent-border); }
.trend-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }.trend-grid > article { min-width: 0; padding: 16px; border: 1px solid #303237; border-radius: 16px; background: #1a1c20; }.trend-grid article > header { display: flex; align-items: start; justify-content: space-between; gap: 12px; }.trend-grid article > header span { display: grid; gap: 4px; }.trend-grid article > header b,.trend-grid article > header strong { font-family: var(--font-display); font-style: italic; }.trend-grid article > header small { color: var(--secondary); }.trend-grid article > header strong { color: white; }

/* Native iOS trends parity */
.native-trends-page { display: grid; width: min(860px, 100%); gap: 16px; margin: 0 auto; padding: 24px 20px 48px; }
.native-trends-header { padding: 0 2px 4px; }
.native-trends-header > a { display: inline-flex; align-items: center; gap: 5px; min-height: 38px; margin-bottom: 8px; color: var(--secondary); font-size: .73rem; font-weight: 760; text-decoration: none; }
.native-trends-header > a:first-letter { color: white; font-size: 1.55rem; }
.native-trends-header h1 { margin: 0; font: italic 850 clamp(2.15rem, 5vw, 3.3rem)/.96 var(--font-display); letter-spacing: -.025em; }
.native-trends-header p { max-width: 640px; margin: 8px 0 0; color: var(--secondary); font-size: .78rem; line-height: 1.5; }
.native-trend-card { min-width: 0; padding: 18px; border: 1px solid #2d3035; border-radius: 19px; background: linear-gradient(145deg, #15171a, #111316); box-shadow: 0 14px 32px rgba(0,0,0,.13); }
.native-trend-card > header,.trend-panel > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.native-trend-card > header > div,.trend-panel > header > div { min-width: 0; }
.native-trend-card > header h2 { margin: 0; font: italic 850 1.3rem/1.05 var(--font-display); }
.native-trend-card > header p { max-width: 620px; margin: 6px 0 0; color: var(--secondary); font-size: .68rem; line-height: 1.45; }
.accent-capsule,.success-capsule,.neutral-capsule { flex: 0 0 auto; padding: 7px 11px; border-radius: 999px; font: italic 800 .65rem var(--font-display); white-space: nowrap; }
.accent-capsule { background: var(--accent-soft); color: var(--accent-bright); }.success-capsule { background: var(--success-soft); color: var(--success); }.neutral-capsule { background: var(--surface-soft); color: var(--secondary); }
.trend-selector { display: flex; gap: 8px; max-width: 100%; margin-top: 14px; padding: 1px 0 3px; overflow-x: auto; scrollbar-width: none; }
.trend-selector::-webkit-scrollbar { display: none; }
.trend-selector button { flex: 0 0 auto; min-height: 34px; padding: 0 13px; border: 1px solid var(--border); border-radius: 999px; background: rgba(255,255,255,.045); color: white; font: italic 800 .65rem var(--font-display); cursor: pointer; }
.trend-selector button:hover { border-color: var(--border-strong); background: rgba(255,255,255,.08); }
.trend-selector button.is-selected { border-color: rgba(255,255,255,.82); background: white; color: #07080a; }
.weight-selector { margin-top: 5px; }
.trend-panel { min-width: 0; margin-top: 13px; padding: 16px; border: 1px solid #303237; border-radius: 16px; background: rgba(255,255,255,.035); }
.trend-panel > header h3 { margin: 0; font: italic 850 .94rem var(--font-display); }
.trend-panel > header p { margin: 4px 0 0; color: var(--secondary); font-size: .65rem; }
.trend-panel > header > strong { color: var(--secondary); font: italic 750 .65rem var(--font-display); white-space: nowrap; }
.trend-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin-top: 13px; }
.trend-metric { display: grid; gap: 5px; min-width: 0; padding: 11px; border-radius: 12px; background: rgba(255,255,255,.05); }
.trend-metric small { color: var(--tertiary); font-size: .55rem; font-weight: 820; text-transform: uppercase; }
.trend-metric b { overflow: hidden; font: italic 820 .75rem var(--font-display); text-overflow: ellipsis; white-space: nowrap; }
.native-line-chart { margin-top: 12px; }
.native-line-chart svg { display: block; width: 100%; height: 145px; overflow: visible; }
.native-line-chart line { stroke: #303237; stroke-width: 1; vector-effect: non-scaling-stroke; }
.native-line-chart polyline { fill: none; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.native-line-chart circle { stroke-width: 3; vector-effect: non-scaling-stroke; cursor: pointer; transition: r .16s ease,filter .16s ease; }
.native-line-chart circle:hover,.native-line-chart circle:focus,.native-line-chart circle.is-selected { r: 7px; filter: drop-shadow(0 0 4px currentColor); outline: none; }
.native-line-chart footer { display: grid; grid-template-columns: minmax(62px,1fr) minmax(140px,2fr) minmax(62px,1fr); align-items: center; gap: 10px; margin-top: 3px; color: var(--tertiary); font-size: .58rem; }
.native-line-chart footer span:nth-child(2) { color: var(--secondary); text-align: center; }
.native-line-chart footer span:last-child { text-align: right; }
.trend-empty { display: grid; gap: 7px; margin-top: 14px; padding: 17px; border: 1px solid #303237; border-radius: 15px; background: rgba(255,255,255,.035); }
.trend-empty h3 { margin: 0; font: italic 850 .98rem var(--font-display); }.trend-empty p { margin: 0; color: var(--secondary); font-size: .69rem; line-height: 1.45; }.trend-empty small { color: var(--tertiary); font-size: .62rem; line-height: 1.45; }
.heatmap-shell { display: grid; grid-template-columns: 16px minmax(0,1fr); gap: 8px; margin-top: 14px; padding: 14px; overflow-x: auto; border: 1px solid #303237; border-radius: 15px; background: rgba(255,255,255,.025); scrollbar-color: #45484e transparent; }
.heatmap-weekdays { display: grid; grid-template-rows: repeat(7,14px); gap: 4px; color: var(--tertiary); font-size: .46rem; }
.heatmap-weekdays span:nth-child(1) { grid-row: 2; }.heatmap-weekdays span:nth-child(2) { grid-row: 4; }.heatmap-weekdays span:nth-child(3) { grid-row: 6; }
.throwing-heatmap { display: grid; grid-auto-flow: column; grid-auto-columns: 14px; grid-template-rows: repeat(7,14px); gap: 4px; min-width: max-content; overflow: visible; }
.throwing-heatmap button { width: 14px; height: 14px; padding: 0; border: 0; border-radius: 4px; background: #24262a; cursor: pointer; }
.throwing-heatmap button:hover,.throwing-heatmap button.is-selected { outline: 2px solid white; outline-offset: 1px; }
.throwing-heatmap .level-1,.heatmap-legend .level-1 { background: rgba(73,210,140,.32); }.throwing-heatmap .level-2,.heatmap-legend .level-2 { background: rgba(73,210,140,.55); }.throwing-heatmap .level-3,.heatmap-legend .level-3 { background: rgba(73,210,140,.76); }.throwing-heatmap .level-4,.heatmap-legend .level-4 { background: #49d28c; }
.heatmap-legend { display: flex; align-items: center; justify-content: flex-end; gap: 5px; margin-top: 9px; color: var(--tertiary); font-size: .54rem; }.heatmap-legend i { width: 12px; height: 12px; border-radius: 3px; background: #24262a; }
.activity-day-detail { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 11px; padding: 12px 14px; border-radius: 13px; background: var(--surface-soft); }
.activity-day-detail div { display: grid; gap: 4px; }.activity-day-detail small { color: var(--accent-bright); font-size: .52rem; font-weight: 850; letter-spacing: .1em; }.activity-day-detail b,.activity-day-detail > strong { font: italic 800 .73rem var(--font-display); }.activity-day-detail > strong { color: var(--success); }
.wellness-trend-list { display: grid; gap: 10px; }.wellness-trend-list .trend-panel { margin-top: 0; }.daily-checkin-card > .trend-selector + .wellness-trend-list { margin-top: 10px; }
.trend-info { display: grid; flex: 0 0 auto; width: 40px; height: 40px; place-items: center; border: 0; border-radius: 50%; background: var(--surface-soft); color: var(--accent-bright); font-size: 1.1rem; cursor: pointer; }
.workload-chart-wrap { position: relative; overflow: hidden; margin-top: 12px; border-radius: 12px; background: linear-gradient(to bottom, rgba(232,41,41,.11) 0 34.8%, transparent 34.8% 43.5%, rgba(73,210,140,.11) 43.5% 65.2%, transparent 65.2% 78.2%, rgba(255,180,39,.08) 78.2% 100%); }
.workload-chart-wrap .native-line-chart { margin-top: 0; padding: 3px 6px; }.workload-chart-wrap .native-line-chart footer { padding: 0 5px 5px; }
.coach-activity-calendar { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 7px; margin-top: 13px; }
.coach-activity-cell { display: grid; place-items: center; min-height: 39px; border-radius: 10px; color: var(--tertiary); background: rgba(255,255,255,.035); font: italic 750 .66rem var(--font-display); }
.coach-activity-cell.is-completed { color: #07140e; background: #49d28c; }.coach-activity-cell.is-scheduled { color: #171005; background: #ffb427; }
.coach-activity-legend { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 11px; color: var(--secondary); font-size: .6rem; }
.coach-activity-legend span { display: inline-flex; align-items: center; gap: 6px; }.coach-activity-legend span::before { width: 9px; height: 9px; border-radius: 3px; background: rgba(255,255,255,.06); content: ""; }.coach-activity-legend .is-completed::before { background: #49d28c; }.coach-activity-legend .is-scheduled::before { background: #ffb427; }
.workload-legend { display: flex; flex-wrap: wrap; gap: 8px 15px; margin-top: 11px; color: var(--secondary); font-size: .57rem; }.workload-legend span { display: flex; align-items: center; gap: 6px; }.workload-legend i { width: 17px; height: 9px; border-radius: 4px; }.workload-legend .is-low i { background: rgba(255,180,39,.35); }.workload-legend .is-optimal i { background: rgba(73,210,140,.42); }.workload-legend .is-danger i { background: rgba(232,41,41,.42); }
.leaderboard-tools { display: flex; justify-content: space-between; gap: 12px; }.leaderboard-tools label { display: grid; min-width: min(380px, 60%); gap: 6px; }.leaderboard-tools label span { color: var(--tertiary); font-size: .6rem; font-weight: 800; text-transform: uppercase; }.leaderboard-tools select { min-height: 45px; padding: 0 13px; border: 1px solid #3a3d42; border-radius: 13px; background: #202226; color: white; }.leaderboard-scope { display: inline-flex; min-height: 45px; align-items: center; align-self: end; padding: 0 14px; border: 1px solid #3a3d42; border-radius: 999px; background: #202226; color: var(--secondary); font-size: .7rem; font-weight: 760; cursor: pointer; }.leaderboard-section h2 { font-size: 1.35rem; }

@media (max-width: 700px) {
  .tool-destination-head { grid-template-columns: 40px minmax(0,1fr); padding: 18px 15px; }.tool-destination-head > a { width: 38px; height: 38px; }.tool-card { padding: 16px; }
  .equipment-list article { grid-template-columns: 38px minmax(0, 1fr) auto; }.equipment-list article > button { grid-column: 2 / -1; justify-self: end; }.equipment-list article > a { grid-column: 3; }
  .plan-week-card { padding: 15px; }.plan-week-card > header { gap: 10px; }.plan-week-card > header > strong { min-width: 82px; font-size: 1rem; }.plan-day-list button { grid-template-columns: 76px minmax(0, 1fr) auto 15px; }.plan-day-list i { display: none; }.plan-day-list strong { font-size: .7rem; }
  .trend-grid { grid-template-columns: 1fr; }.activity-calendar { gap: 4px; }.activity-calendar span { min-height: 49px; border-radius: 10px; }.leaderboard-tools { display: grid; }.leaderboard-tools label { min-width: 100%; }.leaderboard-scope { width: 100%; justify-content: center; }
  .native-trends-page { gap: 13px; padding: 16px 12px 36px; }.native-trends-header { padding-inline: 2px; }.native-trends-header h1 { font-size: 2.25rem; }.native-trend-card { padding: 14px; border-radius: 17px; }.native-trend-card > header h2 { font-size: 1.16rem; }.native-trend-card > header p { font-size: .65rem; }.accent-capsule,.success-capsule,.neutral-capsule { padding: 6px 9px; font-size: .58rem; }.trend-panel { padding: 13px; }.trend-metric { padding: 9px 8px; }.trend-metric b { font-size: .68rem; }.native-line-chart svg { height: 125px; }.heatmap-shell { padding: 11px; }.throwing-heatmap { grid-auto-columns: 12px; grid-template-rows: repeat(7,12px); }.throwing-heatmap button { width: 12px; height: 12px; }.heatmap-weekdays { grid-template-rows: repeat(7,12px); }.activity-day-detail { align-items: flex-start; }
}

@media (max-width: 600px) {
  .pitch-lab-hero { padding-top: 8px; }.pitch-lab-hero h1 { font-size: 2.55rem; }.pitch-lab-hero p:last-child { font-size: .82rem; }
  .pitch-lab-tool { min-height: 99px; padding-inline: 4px; }.pitch-lab-tool > span { width: 40px; height: 40px; }.pitch-lab-tool strong { font-size: .67rem; }
  .pitch-add-card { align-items: flex-start; }.pitch-add-card b { font-size: .82rem; }.pitch-add-card small { font-size: .67rem; }
  .pitch-lab-detail-card,.pitch-grip-library { padding: 20px 16px; }.pitch-lab-detail-card .native-card-heading h1,.pitch-grip-library .native-card-heading h1 { font-size: 2rem; }
  .pitch-recommendation { padding: 17px; }.pitch-recommendation h2 { font-size: 1.4rem; }
  .pitch-data-filter-strip,.pitch-grip-filters { padding-bottom: 2px; }
  .pitch-grip-filters select { max-width: 170px; }
  .pitch-mode-toggle button { padding-inline: 10px; }
  .pitch-saved-controls { align-items: flex-start; }
  .pitch-metrics-shell { --pitch-name-column: min(190px,52vw); }
  .pitch-table-pitch-head,.pitch-table-pitch-cell { padding-inline: 10px; }
  .pitch-table-pitch-cell b { font-size: .66rem; }
  .pitch-arsenal-row > button:first-child strong { display: none; }
  .pitch-detail-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .pitch-detail-actions { grid-template-columns: 1fr; }
  .pitch-detail-actions .danger-button { width: 100%; }
  .pitch-add-form { grid-template-columns: 1fr; }.pitch-add-form .field-wide { grid-column: 1; }
}

/* Daily check-in mirrors the compact native wellness sheet. */
.modal.checkin-modal { width: min(660px, 100%); padding: 18px; border-color: #25282d; border-radius: 26px; background: #090a0d; }
.checkin-modal .modal-drag { margin-top: -5px; margin-bottom: 15px; }
.checkin-header { display: grid; grid-template-columns: 42px minmax(0, 1fr) 42px; align-items: center; gap: 12px; margin-bottom: 15px; }
.checkin-header > div { min-width: 0; }
.checkin-header p,.checkin-prompt { margin: 0; color: var(--accent-bright); font-family: var(--font-display); font-size: .59rem; font-style: italic; font-weight: 850; letter-spacing: .1em; }
.checkin-header h2 { overflow: hidden; margin: 2px 0 0; font-family: var(--font-display); font-size: 1.65rem; font-style: italic; line-height: 1; text-overflow: ellipsis; white-space: nowrap; }
.checkin-close,.checkin-info { display: grid; width: 42px; height: 42px; place-items: center; border: 1px solid #303338; border-radius: 13px; background: #181a1e; color: white; font-size: 1.55rem; line-height: 1; cursor: pointer; }
.checkin-info { border-radius: 50%; color: var(--accent-bright); font-size: 1.15rem; }
.checkin-prompt { margin: 0 0 9px; color: var(--tertiary); }
.checkin-metric-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.checkin-metric { min-width: 0; padding: 12px; border: 1px solid #2d3035; border-radius: 15px; background: #17191d; }
.checkin-metric header { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.checkin-metric header span { overflow: hidden; color: var(--secondary); font-family: var(--font-display); font-size: .76rem; font-style: italic; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.checkin-metric output { color: var(--metric-color); font-family: var(--font-display); font-size: 1.5rem; font-style: italic; line-height: 1; }
.checkin-metric > small { display: block; overflow: hidden; margin-top: 4px; color: var(--tertiary); font-size: .55rem; text-overflow: ellipsis; white-space: nowrap; }
.checkin-metric.is-success { --metric-color: var(--success); }
.checkin-metric.is-warning { --metric-color: var(--warning); }
.checkin-metric.is-accent { --metric-color: var(--accent-bright); }
.checkin-stepper,.checkin-sleep-stepper { display: grid; grid-template-columns: 31px minmax(0, 1fr) 31px; align-items: center; gap: 8px; margin-top: 10px; }
.checkin-stepper button,.checkin-sleep-stepper button { display: grid; width: 31px; height: 31px; place-items: center; padding: 0; border: 1px solid #35383d; border-radius: 10px; background: #24262a; color: white; font-size: 1.05rem; cursor: pointer; }
.checkin-stepper button:active,.checkin-sleep-stepper button:active { transform: scale(.94); }
.checkin-meter { display: block; height: 4px; overflow: hidden; border-radius: 999px; background: #292c31; }
.checkin-meter i { display: block; width: var(--checkin-progress); height: 100%; min-width: 4px; border-radius: inherit; background: var(--metric-color); transition: width .16s ease, background .16s ease; }
.checkin-support-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 10px; }
.checkin-compact-card { display: grid; min-width: 0; min-height: 76px; align-content: start; padding: 11px; border: 1px solid #2d3035; border-radius: 15px; background: #17191d; }
.checkin-compact-card > span { color: var(--tertiary); font-family: var(--font-display); font-size: .55rem; font-style: italic; font-weight: 800; letter-spacing: .07em; }
.checkin-sleep-stepper { grid-template-columns: 31px minmax(0, 1fr) 31px; margin-top: 7px; }
.checkin-sleep-stepper output { overflow: hidden; font-family: var(--font-display); font-size: 1.08rem; font-style: italic; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
.checkin-notes input { width: 100%; min-width: 0; margin-top: 10px; padding: 0; border: 0; outline: 0; background: transparent; color: white; font-size: .76rem; }
.checkin-notes input::placeholder { color: var(--tertiary); }
.checkin-save { width: 100%; margin-top: 10px; }
.checkin-private { display: flex; align-items: center; gap: 6px; margin: 9px 2px 0; color: var(--tertiary); font-size: .59rem; }
.checkin-private span { color: var(--secondary); font-size: .45rem; }

@media (max-width: 600px) {
  .modal.checkin-modal { max-height: 96dvh; padding: 17px 15px calc(16px + env(safe-area-inset-bottom)); border-radius: 30px 30px 0 0; }
  .checkin-header { grid-template-columns: 38px minmax(0,1fr) 38px; gap: 9px; }
  .checkin-close,.checkin-info { width: 38px; height: 38px; }
  .checkin-header h2 { font-size: 1.4rem; }
  .checkin-metric { padding: 10px; }
  .checkin-metric header span { font-size: .68rem; }
  .checkin-metric output { font-size: 1.3rem; }
  .checkin-stepper,.checkin-sleep-stepper { grid-template-columns: 28px minmax(0,1fr) 28px; gap: 6px; }
  .checkin-stepper button,.checkin-sleep-stepper button { width: 28px; height: 28px; }
  .checkin-compact-card { min-height: 70px; padding: 9px; }
}

/* Gear destination follows the native Equipment Setup sheet. */
.native-gear-page { width: min(820px, 100%); margin: 0 auto; padding: 8px 0 30px; }
.gear-native-header { display: grid; grid-template-columns: 44px minmax(0, 1fr); align-items: start; gap: 13px; margin-bottom: 16px; }
.gear-native-header > a { display: grid; width: 44px; height: 44px; place-items: center; border: 1px solid #34373b; border-radius: 50%; background: #202226; color: white; font-size: 2rem; line-height: 1; text-decoration: none; }
.gear-native-header h1 { margin: 0; font-family: var(--font-display); font-size: 1.45rem; font-style: italic; line-height: 1; }
.gear-native-header p { max-width: 650px; margin: 6px 0 0; color: var(--secondary); font-size: .75rem; line-height: 1.5; }
.gear-status-overview { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-bottom: 19px; }
.gear-status-overview article { display: grid; gap: 4px; min-height: 86px; align-content: center; padding: 14px; border: 1px solid #2d3035; border-radius: 15px; background: rgba(255,255,255,.04); }
.gear-status-overview article.is-owned { border-color: rgba(74,209,135,.35); }
.gear-status-overview article.is-needed { border-color: rgba(250,187,51,.35); }
.gear-status-overview article.is-helpful { border-color: var(--border); }
.gear-status-overview span { color: var(--secondary); font-family: var(--font-display); font-size: .72rem; font-style: italic; }
.gear-status-overview strong { font-family: var(--font-display); font-size: 1.65rem; font-style: italic; line-height: 1; }
.gear-section { margin-top: 18px; }
.gear-section > header { margin-bottom: 9px; }
.gear-section > header h2 { margin: 0; font-family: var(--font-display); font-size: .9rem; font-style: italic; }
.gear-section > header p { max-width: 700px; margin: 4px 0 0; color: var(--secondary); font-size: .7rem; line-height: 1.45; }
.gear-inventory-list { display: grid; gap: 10px; }
.gear-inventory-card { padding: 12px; border: 1px solid #303237; border-radius: 15px; background: rgba(255,255,255,.04); }
.gear-inventory-card.is-needed { --gear-tone: var(--warning); border-color: rgba(250,187,51,.24); }
.gear-inventory-card.is-helpful { --gear-tone: var(--accent-bright); border-color: rgba(232,41,41,.24); }
.gear-inventory-card.is-owned { --gear-tone: var(--success); border-color: rgba(74,209,135,.24); }
.gear-item-heading { display: grid; grid-template-columns: 10px minmax(0,1fr) auto; align-items: start; gap: 12px; }
.gear-item-heading > i { width: 10px; height: 10px; margin-top: 4px; border-radius: 50%; background: var(--gear-tone); }
.gear-item-heading > span:nth-child(2) { display: grid; gap: 4px; }
.gear-item-heading b { font-family: var(--font-display); font-size: .82rem; font-style: italic; }
.gear-item-heading small { color: var(--gear-tone); font-family: var(--font-display); font-size: .6rem; font-style: italic; }
.gear-link-mark { color: var(--tertiary); font-size: .95rem; font-weight: 850; }
.gear-item-actions { display: flex; align-items: center; gap: 8px; margin-top: 12px; padding-left: 22px; }
.gear-item-actions button,.gear-item-actions a { display: grid; min-height: 34px; place-items: center; padding: 0 11px; border: 1px solid var(--border-strong); border-radius: 999px; background: var(--accent-soft); color: white; font-family: var(--font-display); font-size: .64rem; font-style: italic; font-weight: 800; text-decoration: none; cursor: pointer; }
.gear-item-actions a { background: var(--surface-soft); }
.gear-item-actions button:hover,.gear-item-actions a:hover { border-color: var(--accent-border); }
.gear-item-actions button:disabled { cursor: wait; opacity: .5; }
.gear-empty { margin: 0; padding: 5px 0; color: var(--secondary); font-size: .7rem; }
.gear-unavailable { display: grid; min-height: 300px; align-content: center; justify-items: start; padding: 24px; border: 1px solid #2d3035; border-radius: 18px; background: #131518; }
.gear-unavailable p { margin: 0; color: var(--accent-bright); font-family: var(--font-display); font-size: .65rem; font-style: italic; letter-spacing: .1em; }
.gear-unavailable h2 { margin: 5px 0; font-family: var(--font-display); font-size: 1.7rem; font-style: italic; }
.gear-unavailable span { max-width: 520px; color: var(--secondary); font-size: .75rem; line-height: 1.5; }

@media (max-width: 600px) {
  .native-gear-page { padding-top: 3px; }
  .gear-native-header { grid-template-columns: 40px minmax(0,1fr); gap: 11px; }
  .gear-native-header > a { width: 40px; height: 40px; }
  .gear-native-header h1 { font-size: 1.25rem; }
  .gear-native-header p { font-size: .68rem; }
  .gear-status-overview { gap: 7px; }
  .gear-status-overview article { min-height: 78px; padding: 11px; }
  .gear-status-overview span { font-size: .64rem; }
  .gear-status-overview strong { font-size: 1.45rem; }
}

/* Program day preview mirrors the native iOS program sheet. */
.modal.plan-day-modal { width: min(760px, 100%); padding: 20px; border-color: #292c31; border-radius: 28px; background: linear-gradient(155deg, #15171b, #090a0d); }
.plan-day-modal .modal-drag { margin-top: -7px; margin-bottom: 18px; }
.plan-preview-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.plan-preview-header h2 { margin: 0; font-family: var(--font-display); font-size: 1.85rem; font-style: italic; line-height: 1; }
.plan-preview-header p { margin: 6px 0 0; color: var(--secondary); font-size: .76rem; line-height: 1.45; }
.plan-preview-header > button { min-width: 62px; min-height: 38px; padding: 0 12px; border: 0; background: transparent; color: white; font-family: var(--font-display); font-size: .76rem; font-style: italic; font-weight: 800; cursor: pointer; }
.plan-preview-stats { display: flex; gap: 8px; margin: 17px 0 22px; }
.plan-preview-stats > span { display: grid; min-width: 120px; gap: 3px; padding: 10px 13px; border: 1px solid #303339; border-radius: 14px; background: rgba(255,255,255,.04); }
.plan-preview-stats small { color: var(--tertiary); font-size: .53rem; font-weight: 800; letter-spacing: .08em; }
.plan-preview-stats b { font-family: var(--font-display); font-size: .78rem; font-style: italic; }
.plan-preview-group { display: grid; gap: 10px; margin-top: 18px; }
.plan-preview-disclosure { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 16px; padding: 0; border: 0; background: transparent; color: white; text-align: left; cursor: pointer; }
.plan-preview-disclosure h3 { margin: 0; font-family: var(--font-display); font-size: 1.18rem; font-style: italic; }
.plan-preview-disclosure span { color: var(--tertiary); font-size: 1rem; font-weight: 900; transition: transform .18s ease; }
.plan-preview-group.is-collapsed .plan-preview-disclosure span { transform: rotate(180deg); }
.plan-preview-items { display: grid; gap: 8px; }
.plan-preview-group.is-collapsed .plan-preview-items { display: none; }
.plan-preview-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 5px 12px; align-items: start; width: 100%; min-height: 76px; padding: 13px 14px; border: 1px solid #303339; border-radius: 15px; background: rgba(255,255,255,.035); color: white; text-align: left; cursor: pointer; transition: border-color .16s ease, background .16s ease, transform .12s ease; }
.plan-preview-item:hover { border-color: rgba(232,41,41,.55); background: rgba(232,41,41,.07); }
.plan-preview-item:active { transform: scale(.995); }
.plan-preview-item > span { display: flex; min-width: 0; align-items: baseline; justify-content: space-between; gap: 14px; }
.plan-preview-item b { min-width: 0; font-family: var(--font-display); font-size: .8rem; font-style: italic; line-height: 1.2; }
.plan-preview-item small { flex: 0 0 auto; color: var(--secondary); font-size: .65rem; line-height: 1.2; }
.plan-preview-item > strong { grid-row: 1 / 3; grid-column: 2; align-self: center; color: var(--tertiary); font-size: 1.25rem; }
.plan-preview-item p { grid-column: 1; margin: 0; color: var(--secondary); font-size: .69rem; line-height: 1.45; }
.plan-preview-notes { display: grid; gap: 8px; margin-top: 20px; }
.plan-preview-notes h3 { margin: 0 0 2px; font-family: var(--font-display); font-size: 1.15rem; font-style: italic; }
.plan-preview-notes > div { display: grid; grid-template-columns: 24px minmax(0,1fr); gap: 10px; align-items: center; min-height: 48px; padding: 9px 12px; border: 1px solid #303339; border-radius: 14px; background: rgba(255,255,255,.035); color: var(--secondary); font-size: .69rem; line-height: 1.45; }
.plan-preview-notes i { display: grid; width: 22px; height: 22px; place-items: center; border-radius: 50%; background: var(--accent-soft); color: white; font-size: .58rem; font-style: normal; font-weight: 800; }
.plan-preview-off { display: grid; min-height: 230px; align-content: center; justify-items: start; margin-top: 12px; padding: 22px; border: 1px solid #303339; border-radius: 18px; background: rgba(255,255,255,.035); }
.plan-preview-off p { margin: 0; color: var(--accent-bright); font-family: var(--font-display); font-size: .63rem; font-style: italic; font-weight: 850; letter-spacing: .09em; }
.plan-preview-off h2 { margin: 5px 0 7px; font-family: var(--font-display); font-size: 1.55rem; font-style: italic; }
.plan-preview-off span,.plan-preview-off small { max-width: 560px; color: var(--secondary); font-size: .72rem; line-height: 1.5; }
.plan-preview-off small { margin-top: 10px; color: var(--tertiary); }

@media (max-width: 600px) {
  .modal.plan-day-modal { max-height: 96dvh; padding: 18px 15px calc(18px + env(safe-area-inset-bottom)); border-radius: 30px 30px 0 0; }
  .plan-preview-header h2 { font-size: 1.55rem; }
  .plan-preview-header p { font-size: .69rem; }
  .plan-preview-stats > span { min-width: 0; flex: 1; }
  .plan-preview-group { margin-top: 16px; }
  .plan-preview-disclosure h3 { font-size: 1.05rem; }
  .plan-preview-item { min-height: 72px; padding: 12px; }
  .plan-preview-item > span { display: grid; justify-content: start; gap: 4px; }
  .plan-preview-item b { font-size: .76rem; }
  .plan-preview-item small,.plan-preview-item p { font-size: .62rem; }
}

/* Native Coach View calendar. */
.coach-native-calendar { padding: 24px; border: 1px solid #2d3035; border-radius: 22px; background: #131518; }
.coach-native-calendar > header { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 18px; }
.coach-native-calendar > header h2 { margin: 0; font: italic 850 1.75rem var(--font-display); text-transform: capitalize; }
.coach-calendar-controls { display: flex; gap: 7px; }
.coach-calendar-controls button { min-width: 38px; min-height: 38px; padding: 0 12px; border: 1px solid #303339; border-radius: 12px; background: var(--surface-soft); color: white; font: italic 800 .68rem var(--font-display); cursor: pointer; }
.coach-calendar-controls button:hover { border-color: rgba(232,41,41,.55); background: var(--accent-soft); }
.coach-calendar-weekdays,.coach-calendar-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 8px; }
.coach-calendar-weekdays { margin-bottom: 8px; }
.coach-calendar-weekdays span { color: var(--tertiary); font: italic 800 .64rem var(--font-display); text-align: center; }
.coach-calendar-day { display: grid; min-height: 76px; align-content: space-between; justify-items: center; padding: 11px 5px 8px; border: 1px solid transparent; border-radius: 14px; background: rgba(255,255,255,.03); color: white; cursor: pointer; }
.coach-calendar-day:hover { border-color: var(--border-strong); background: rgba(255,255,255,.06); }
.coach-calendar-day.is-today { border-color: var(--accent-bright); background: var(--accent-soft); }
.coach-calendar-day.is-selected { box-shadow: 0 0 0 2px var(--accent-bright) inset; background: rgba(239,45,51,.14); }
.coach-calendar-day.is-today b { display: grid; width: 31px; height: 31px; place-items: center; border-radius: 50%; background: var(--accent-bright); }
.coach-calendar-day i { display: flex; min-height: 6px; gap: 3px; }
.coach-calendar-day em { width: 5px; height: 5px; border-radius: 50%; background: var(--warning); }
.coach-calendar-day em.is-game { background: var(--accent-bright); }
.coach-calendar-day em.is-recovery { background: var(--success); }
.coach-calendar-agenda { display: grid; gap: 8px; margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--border); }
.coach-calendar-agenda h3 { margin: 0 0 4px; font: italic 850 1.25rem var(--font-display); }
.coach-calendar-agenda > button { display: grid; grid-template-columns: 60px minmax(0,1fr) auto auto; align-items: center; gap: 14px; min-height: 72px; padding: 10px 13px; border: 1px solid #303339; border-radius: 15px; background: rgba(255,255,255,.025); color: white; text-align: left; cursor: pointer; }
.coach-calendar-agenda > button:hover { border-color: rgba(232,41,41,.5); }
.coach-calendar-agenda time { display: grid; justify-items: center; padding: 7px; border-radius: 12px; background: var(--accent-soft); color: var(--accent-bright); }
.coach-calendar-agenda time b { font: italic 800 .57rem var(--font-display); text-transform: uppercase; }
.coach-calendar-agenda time strong { font: italic 850 1.25rem var(--font-display); }
.coach-calendar-agenda button > span { display: grid; gap: 4px; }
.coach-calendar-agenda button > span b { font: italic 820 .8rem var(--font-display); }
.coach-calendar-agenda button > span small { color: var(--secondary); font-size: .64rem; }
.coach-calendar-agenda button > em { color: var(--warning); font: italic 800 .62rem var(--font-display); }
.coach-month-schedule { display: grid; gap: 15px; }.coach-month-schedule > header { margin: 0; }.coach-month-schedule .coach-calendar-grid { gap: 4px; }.coach-month-schedule .coach-calendar-day { min-height: 58px; }.coach-month-schedule .coach-calendar-day.has-events { background: var(--surface-soft); }.coach-month-schedule .coach-calendar-day.is-selected { box-shadow: none; border-color: transparent; background: var(--accent-soft); }.coach-month-schedule .coach-calendar-day.is-selected b { display: grid; width: 26px; height: 26px; place-items: center; border-radius: 50%; background: var(--accent-bright); }.coach-month-schedule .coach-calendar-day.is-today:not(.is-selected) { border-color: rgba(239,45,51,.75); background: transparent; }.coach-calendar-selected-day { display: grid; gap: 8px; padding-top: 15px; border-top: 1px solid var(--border); }.coach-calendar-selected-day > header { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }.coach-calendar-selected-day h3,.coach-calendar-upcoming > h2 { margin: 0; color: white; font: italic 850 1.05rem var(--font-display); }.coach-calendar-selected-day header small { color: var(--secondary); font-size: .68rem; }.coach-calendar-selected-day > p { margin: 2px 0; padding: 10px 0; color: var(--secondary); font-size: .74rem; }.coach-calendar-upcoming { display: grid; gap: 8px; margin-top: 18px; }.coach-calendar-upcoming > h2 { font-size: 1.25rem; }.coach-calendar-event-row { display: grid; grid-template-columns: 38px minmax(0,1fr) auto; align-items: start; gap: 11px; width: 100%; min-height: 70px; padding: 12px; border: 1px solid #303339; border-radius: 15px; background: rgba(255,255,255,.025); color: white; text-align: left; cursor: pointer; }.coach-calendar-event-row:hover { border-color: rgba(239,45,51,.55); background: rgba(239,45,51,.06); }.coach-calendar-event-row > span:nth-child(2) { display: grid; min-width: 0; gap: 3px; }.coach-calendar-event-row b { overflow: hidden; font: italic 800 .86rem var(--font-display); text-overflow: ellipsis; white-space: nowrap; }.coach-calendar-event-row small,.coach-calendar-event-row em { overflow: hidden; color: var(--secondary); font-size: .67rem; font-style: normal; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }.coach-calendar-event-row em { color: var(--tertiary); }.coach-calendar-event-row > i { align-self: center; color: var(--tertiary); font-size: 1.3rem; font-style: normal; }.coach-calendar-event-icon { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 11px; background: var(--accent-soft); color: var(--accent-bright); font-size: .95rem; }.coach-calendar-event-icon.is-practice,.coach-calendar-event-icon.is-bullpen { color: #ffaf3f; background: rgba(255,175,63,.12); }.coach-calendar-event-icon.is-lift { color: #72aeff; background: rgba(114,174,255,.12); }.coach-calendar-event-icon.is-recovery,.coach-calendar-event-icon.is-off_day { color: var(--success); background: rgba(61,211,139,.12); }.coach-calendar-event-icon.is-travel { color: #bf8aff; background: rgba(191,138,255,.12); }
.coach-calendar-import-guidance { display: grid; grid-template-columns: 32px minmax(0,1fr) auto; align-items: start; gap: 10px; margin: 15px 0; padding: 13px; border: 1px solid rgba(114,174,255,.35); border-radius: 15px; background: rgba(114,174,255,.07); }.coach-calendar-import-guidance > span { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 50%; background: rgba(114,174,255,.16); color: #a8c8ff; font: 800 .78rem serif; }.coach-calendar-import-guidance div { display: grid; gap: 3px; }.coach-calendar-import-guidance b { color: white; font: italic 800 .78rem var(--font-display); }.coach-calendar-import-guidance p { margin: 0; color: var(--secondary); font-size: .71rem; line-height: 1.4; }.coach-calendar-import-guidance button { width: 26px; height: 26px; border: 0; border-radius: 50%; background: transparent; color: var(--tertiary); font-size: 1rem; cursor: pointer; }
.modal:has(.coach-calendar-sheet),.modal:has(.coach-calendar-event-editor) { width: min(720px,100%); max-height: 92dvh; overflow: auto; }.coach-calendar-sheet,.coach-calendar-event-editor { display: grid; gap: 16px; }.coach-calendar-requirements,.coach-calendar-photo-options { display: grid; gap: 10px; }.coach-calendar-requirements h4 { margin: 0 0 2px; color: white; font: italic 800 1rem var(--font-display); }.coach-calendar-requirements article,.coach-calendar-photo-options > button { display: grid; grid-template-columns: 34px minmax(0,1fr) auto; align-items: center; gap: 11px; padding: 12px; border: 1px solid var(--border); border-radius: 14px; background: rgba(255,255,255,.025); color: white; text-align: left; }.coach-calendar-requirements article i,.coach-calendar-photo-options i { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 10px; background: var(--accent-soft); color: var(--accent-bright); font-style: normal; }.coach-calendar-requirements article span,.coach-calendar-photo-options span { display: grid; gap: 3px; }.coach-calendar-requirements b,.coach-calendar-photo-options b { font: italic 800 .8rem var(--font-display); }.coach-calendar-requirements small,.coach-calendar-photo-options small,.coach-calendar-photo-options p { color: var(--secondary); font-size: .7rem; line-height: 1.4; }.coach-calendar-requirements aside { display: grid; gap: 6px; margin-top: 4px; padding: 13px; border: 1px solid var(--border); border-radius: 14px; background: var(--surface-soft); }.coach-calendar-requirements aside b { color: var(--tertiary); font: italic 800 .62rem var(--font-display); letter-spacing: .07em; }.coach-calendar-requirements aside strong { color: white; font: italic 800 .78rem var(--font-display); }.coach-calendar-requirements > p { margin: 0; color: var(--secondary); font-size: .7rem; }.coach-calendar-photo-options > button { cursor: pointer; }.coach-calendar-photo-options > button:hover { border-color: rgba(239,45,51,.5); }.coach-calendar-photo-options em { color: var(--tertiary); font-style: normal; font-size: 1.2rem; }
.coach-calendar-editor-form { display: grid; gap: 13px; }.coach-calendar-editor-form > section { display: grid; gap: 11px; padding: 15px; border: 1px solid var(--border); border-radius: 17px; background: rgba(255,255,255,.025); }.coach-calendar-editor-form > section > header { display: grid; gap: 3px; padding-bottom: 10px; border-bottom: 1px solid var(--border); }.coach-calendar-editor-form header p { margin: 0; color: var(--accent-bright); font: italic 850 .64rem var(--font-display); letter-spacing: .09em; }.coach-calendar-editor-form h4 { margin: 0; color: white; font: italic 850 1.1rem var(--font-display); }.coach-calendar-editor-form header small { color: var(--secondary); font-size: .7rem; line-height: 1.35; }.coach-calendar-editor-form .field { margin: 0; }.coach-calendar-editor-form textarea { min-height: 90px; }.coach-calendar-editor-toggle { display: grid; grid-template-columns: 18px minmax(0,1fr); align-items: center; gap: 10px; min-height: 48px; padding: 10px; border: 1px solid var(--border); border-radius: 12px; cursor: pointer; }.coach-calendar-editor-toggle input,.coach-calendar-athlete-picker input { width: 17px; height: 17px; accent-color: var(--accent-bright); }.coach-calendar-editor-toggle span { display: grid; gap: 2px; }.coach-calendar-editor-toggle b { color: white; font: italic 800 .78rem var(--font-display); }.coach-calendar-editor-toggle small { color: var(--secondary); font-size: .67rem; }.coach-calendar-athlete-picker { display: grid; gap: 7px; padding: 11px; border: 1px solid var(--border); border-radius: 12px; }.coach-calendar-athlete-picker > b { color: var(--secondary); font: italic 800 .67rem var(--font-display); }.coach-calendar-athlete-picker label { display: flex; align-items: center; gap: 9px; min-height: 34px; color: var(--secondary); font-size: .75rem; }.coach-calendar-athlete-picker p { margin: 0; color: var(--warning); font-size: .7rem; }
.calendar-import-list { display: grid; gap: 10px; max-height: min(58vh, 620px); overflow: auto; padding-right: 4px; }
.calendar-import-row { display: grid; grid-template-columns: 34px minmax(180px,1.5fr) minmax(125px,.7fr) minmax(180px,1fr); align-items: end; gap: 12px; padding: 14px; border: 1px solid var(--border); border-radius: 14px; background: var(--surface-soft); }
.calendar-import-row .field { margin: 0; }
.calendar-import-include { display: grid; min-height: 48px; place-items: center; }
.calendar-import-include input { width: 20px; height: 20px; accent-color: var(--accent-bright); }
.calendar-import-date { display: grid; min-height: 48px; align-content: center; gap: 3px; }
.calendar-import-date small,.calendar-import-date span { color: var(--tertiary); font-size: .64rem; }
.calendar-import-date b { color: var(--secondary); font-size: .72rem; }

/* Native-parity calendar import review.  Every extracted value remains editable
   until the coach explicitly accepts the draft. */
.modal:has(.coach-calendar-review) { width: min(820px, 100%); max-height: 92dvh; overflow: auto; }
.coach-calendar-review { display: grid; gap: 15px; }
.coach-calendar-review-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding-bottom: 16px; border-bottom: 1px solid var(--border); }
.coach-calendar-review-head h3 { margin: 3px 0 6px; font: italic 850 clamp(1.55rem, 4vw, 2.15rem) var(--font-display); color: white; }
.coach-calendar-review-head p:last-child { max-width: 550px; margin: 0; color: var(--secondary); }
.coach-calendar-review-intro { display: grid; gap: 7px; padding: 15px; border: 1px solid var(--border); border-radius: 16px; background: rgba(255,255,255,.025); }
.coach-calendar-review-intro h4 { margin: 0; color: white; font: italic 800 1rem var(--font-display); }
.coach-calendar-review-intro > p { margin: 0; color: var(--secondary); font-size: .82rem; line-height: 1.45; }
.coach-calendar-review-warning,.coach-calendar-confidence summary { color: var(--warning); font: italic 800 .76rem var(--font-display); }
.coach-calendar-confidence { margin-top: 3px; }
.coach-calendar-confidence summary { cursor: pointer; }
.coach-calendar-confidence ul { display: grid; gap: 5px; margin: 9px 0 0; padding-left: 19px; color: var(--secondary); font-size: .74rem; line-height: 1.4; }
.coach-calendar-review-bulk { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 13px 15px; border: 1px solid var(--border); border-radius: 16px; background: var(--surface-soft); }
.coach-calendar-review-bulk > div:first-child { display: grid; gap: 4px; }
.coach-calendar-review-bulk b { color: var(--tertiary); font: italic 800 .67rem var(--font-display); letter-spacing: .08em; }
.coach-calendar-review-bulk small { max-width: 405px; color: var(--secondary); font-size: .71rem; line-height: 1.35; }
.coach-calendar-review-bulk > div:last-child { display: flex; gap: 8px; }
.coach-calendar-accept,.coach-calendar-reject { min-height: 42px; padding: 0 13px; border-radius: 12px; font: italic 800 .74rem var(--font-display); cursor: pointer; }
.coach-calendar-accept { border: 1px solid rgba(61,211,139,.45); background: rgba(61,211,139,.12); color: var(--success); }
.coach-calendar-reject { border: 1px solid rgba(239,45,51,.45); background: var(--accent-soft); color: var(--accent-bright); }
.coach-calendar-accept:disabled,.coach-calendar-reject:disabled { cursor: default; opacity: .48; }
.coach-calendar-review-progress { display: flex; align-items: center; gap: 12px; padding: 14px; border: 1px solid rgba(61,211,139,.35); border-radius: 15px; background: rgba(61,211,139,.07); }
.coach-calendar-review-progress > span { width: 20px; height: 20px; border: 3px solid rgba(61,211,139,.25); border-top-color: var(--success); border-radius: 50%; animation: coach-calendar-spin .8s linear infinite; }
.coach-calendar-review-progress div { display: grid; gap: 3px; }.coach-calendar-review-progress b { color: var(--success); font: italic 800 .8rem var(--font-display); }.coach-calendar-review-progress small { color: var(--secondary); font-size: .71rem; }
@keyframes coach-calendar-spin { to { transform: rotate(360deg); } }
.coach-calendar-review-list { display: grid; gap: 10px; }
.coach-calendar-review-event { overflow: hidden; border: 1px solid var(--border); border-radius: 16px; background: rgba(255,255,255,.025); }
.coach-calendar-review-event.is-expanded { border-color: var(--border-strong); }
.coach-calendar-review-event-head { display: grid; grid-template-columns: 38px minmax(0,1fr) auto; align-items: center; width: 100%; gap: 10px; padding: 14px; border: 0; background: transparent; color: white; text-align: left; cursor: pointer; }
.coach-calendar-review-event-head:hover { background: rgba(255,255,255,.035); }.coach-calendar-review-event-head > span:nth-child(2) { display: grid; min-width: 0; gap: 4px; }.coach-calendar-review-event-head b { overflow: hidden; font: italic 800 .96rem var(--font-display); text-overflow: ellipsis; white-space: nowrap; }.coach-calendar-review-event-head small { overflow: hidden; color: var(--secondary); font-size: .7rem; text-overflow: ellipsis; white-space: nowrap; }.coach-calendar-review-event-head small.is-warning { color: var(--warning); }.coach-calendar-review-event-head i { color: var(--tertiary); font-style: normal; font-size: 1.3rem; transition: transform .15s ease; }.coach-calendar-review-event.is-expanded .coach-calendar-review-event-head i { transform: rotate(180deg); }
.coach-calendar-event-icon { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 11px; background: var(--accent-soft); color: var(--accent-bright); font-weight: 900; }
.coach-calendar-review-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 14px; border-top: 1px solid var(--border); background: rgba(0,0,0,.16); }.coach-calendar-review-fields .field { margin: 0; }.coach-calendar-review-fields .field input,.coach-calendar-review-fields .field select { min-height: 44px; }.coach-calendar-toggle { display: flex; align-items: center; gap: 9px; min-height: 44px; padding: 0 11px; border: 1px solid var(--border); border-radius: 12px; color: var(--secondary); font-size: .75rem; cursor: pointer; }.coach-calendar-toggle input,.coach-calendar-targets input,.coach-calendar-reminders input { width: 17px; height: 17px; accent-color: var(--accent-bright); }.coach-calendar-targets { display: grid; grid-template-columns: repeat(auto-fit, minmax(155px, 1fr)); gap: 8px; margin: 0; padding: 12px; border: 1px solid var(--border); border-radius: 12px; }.coach-calendar-targets legend { padding: 0 5px; color: var(--tertiary); font: italic 800 .65rem var(--font-display); }.coach-calendar-targets label,.coach-calendar-reminders label { display: flex; align-items: center; gap: 8px; color: var(--secondary); font-size: .73rem; }.coach-calendar-targets p { margin: 0; color: var(--tertiary); font-size: .72rem; }.coach-calendar-reminders { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 9px; padding: 11px; border: 1px solid var(--border); border-radius: 12px; }.coach-calendar-reminders summary { grid-column: 1 / -1; color: var(--secondary); font: italic 800 .72rem var(--font-display); cursor: pointer; }.coach-calendar-remove-event { justify-self: start; min-height: 36px; padding: 0; border: 0; background: transparent; color: var(--accent-bright); font: italic 800 .7rem var(--font-display); cursor: pointer; }

@media (max-width: 700px) {
  .coach-native-calendar { padding: 16px 12px; }
  .coach-calendar-weekdays,.coach-calendar-grid { gap: 4px; }
  .coach-calendar-day { min-height: 54px; padding: 7px 2px 5px; border-radius: 10px; }
  .coach-calendar-day.is-today b { width: 27px; height: 27px; }
  .coach-calendar-agenda > button { grid-template-columns: 52px minmax(0,1fr) auto; gap: 10px; }
  .coach-calendar-agenda button > em { display: none; }
  .calendar-import-row { grid-template-columns: 28px minmax(0,1fr); align-items: center; }
  .calendar-import-row .field,.calendar-import-date { grid-column: 2; }
  .coach-calendar-review-bulk { align-items: stretch; flex-direction: column; }.coach-calendar-review-bulk > div:last-child { display: grid; grid-template-columns: 1fr 1fr; }.coach-calendar-accept,.coach-calendar-reject { padding: 0 8px; }.coach-calendar-review-fields { grid-template-columns: 1fr; }.coach-calendar-review-fields .field-wide { grid-column: auto; }.coach-calendar-reminders { grid-template-columns: 1fr; }
}

/* Coach program library and autosaving template editor. */
.coach-template-row { display: grid; grid-template-columns: minmax(0,1fr) auto; padding: 0; }
.coach-template-row > button:first-child { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 14px; min-width: 0; padding: 14px 5px; border: 0; background: transparent; color: white; text-align: left; cursor: pointer; }
.coach-template-row > button:first-child:hover b { color: var(--accent-bright); }
.coach-template-actions { display: flex; align-items: center; gap: 7px; }
.template-discipline-icon { display: grid; width: 46px; height: 46px; place-items: center; border-radius: 13px; background: var(--accent-soft); color: var(--accent-bright); font-size: 1.1rem; }.template-discipline-icon svg { width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-width: 2.15; stroke-linecap: round; stroke-linejoin: round; }
.modal.coach-template-editor-modal { width: min(1000px,100%); max-height: 94dvh; padding: 0; overflow: hidden; border-radius: 28px; background: #090a0d; }
.coach-template-editor-head { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 23px 26px; border-bottom: 1px solid var(--border); background: #111316; }
.coach-template-editor-head p { margin: 0; color: var(--accent-bright); font: italic 850 .62rem var(--font-display); letter-spacing: .1em; }.coach-template-editor-head h2 { margin: 4px 0; font: italic 850 1.65rem/1 var(--font-display); }.coach-template-editor-head span { color: var(--secondary); font-size: .68rem; }
.coach-template-editor-scroll { display: grid; gap: 16px; max-height: calc(94dvh - 100px); padding: 22px 26px 38px; overflow-y: auto; }
.coach-template-editor-card { padding: 22px; border: 1px solid #2d3035; border-radius: 20px; background: #131518; }
.progression-explanation { margin-top: 15px; padding: 14px; border: 1px solid rgba(232,41,41,.25); border-radius: 14px; background: var(--accent-soft); }.progression-explanation b { color: var(--accent-bright); font: italic 850 .76rem var(--font-display); }.progression-explanation p { margin: 5px 0 0; color: var(--secondary); font-size: .68rem; line-height: 1.5; }
.coach-template-editor-card .autosave-status { margin-top: 12px; }
.coach-template-week { overflow: hidden; margin-top: 10px; border: 1px solid #303339; border-radius: 16px; background: rgba(255,255,255,.025); }
.coach-template-week-head { display: grid; grid-template-columns: minmax(0,1fr) auto 20px; align-items: center; gap: 12px; width: 100%; min-height: 68px; padding: 13px 16px; border: 0; background: transparent; color: white; text-align: left; cursor: pointer; }.coach-template-week-head span { display: grid; gap: 3px; }.coach-template-week-head small { color: var(--accent-bright); font-size: .54rem; font-weight: 850; letter-spacing: .1em; }.coach-template-week-head b { font: italic 820 .82rem var(--font-display); }.coach-template-week-head em { color: var(--secondary); font-size: .62rem; }.coach-template-week-head svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; transition: transform .16s ease; }.coach-template-week-head[aria-expanded="true"] svg { transform: rotate(180deg); }
.coach-template-week-body { display: grid; gap: 12px; padding: 0 16px 16px; border-top: 1px solid var(--border); }.coach-template-week-body > .field { margin-top: 14px; }
.coach-template-days { display: grid; gap: 7px; }.coach-template-days article { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 10px; padding: 11px 12px; border-radius: 12px; background: rgba(255,255,255,.04); }.coach-template-days article > span { display: grid; gap: 3px; }.coach-template-days b { font: italic 800 .72rem var(--font-display); }.coach-template-days small { color: var(--secondary); font-size: .58rem; }.coach-template-days button { display: grid; width: 30px; height: 30px; place-items: center; border: 0; border-radius: 9px; background: rgba(232,41,41,.12); color: var(--accent-bright); cursor: pointer; }
.coach-template-days .coach-template-day { display: block; padding: 0; overflow: hidden; }
.coach-template-day-head { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 8px; padding: 9px 10px; }
.coach-template-day-head > button:first-child { display: flex; width: 100%; height: auto; align-items: center; justify-content: space-between; gap: 12px; padding: 3px; border-radius: 0; background: transparent; color: white; text-align: left; }
.coach-template-day-head > button:first-child span { display: grid; gap: 3px; }
.coach-template-day-head svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 2; transition: transform .16s ease; }
.coach-template-day-head > button[aria-expanded="true"] svg { transform: rotate(180deg); }
.coach-template-day-body { display: grid; gap: 12px; padding: 13px; border-top: 1px solid var(--border); background: rgba(0,0,0,.17); }
.coach-template-exercises { display: grid; gap: 8px; }
.coach-template-exercises > div { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 8px; }
.coach-template-exercise-fields { display: grid; grid-template-columns: repeat(3,minmax(90px,1fr)); gap: 8px; }
.coach-template-exercise-fields .field-wide { grid-column: 1 / -1; }
.coach-template-exercises > div > button { margin-bottom: 2px; }
.modal.coach-builder-modal { width: min(960px,100%); }.coach-builder-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 24px 26px 18px; border-bottom: 1px solid var(--border); background: #111316; }.coach-builder-head p,.coach-builder-picker-head p { margin: 0; color: var(--accent-bright); font: italic 850 .62rem var(--font-display); letter-spacing: .14em; }.coach-builder-head h2,.coach-builder-picker-head h2 { margin: 5px 0; font: italic 850 1.85rem/1 var(--font-display); }.coach-builder-head span,.coach-builder-picker-head span { display: block; max-width: 620px; color: var(--secondary); font-size: .72rem; line-height: 1.45; }.coach-builder-scroll { display: grid; gap: 16px; max-height: calc(94dvh - 112px); padding: 18px 26px 36px; overflow-y: auto; }.coach-builder-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 5px; border: 1px solid var(--border); border-radius: 17px; background: #17191d; }.coach-builder-actions button { min-height: 50px; }.coach-builder-card { display: grid; gap: 14px; }.coach-builder-card > header { display: grid; grid-template-columns: 36px minmax(0,1fr); align-items: center; gap: 11px; }.coach-builder-card > header > i { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 10px; background: var(--accent-soft); color: var(--accent-bright); font-style: normal; }.coach-builder-card > header span { display: grid; gap: 3px; }.coach-builder-card > header b { font: italic 850 .98rem var(--font-display); }.coach-builder-card > header small { color: var(--secondary); font-size: .65rem; line-height: 1.4; }.coach-builder-assignment-scope { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }.coach-builder-assignment-scope button { display: grid; gap: 3px; min-height: 54px; padding: 10px 12px; border: 1px solid var(--border); border-radius: 11px; background: var(--surface-soft); color: white; text-align: left; cursor: pointer; }.coach-builder-assignment-scope button.is-selected { border-color: rgba(240,45,53,.7); background: var(--accent-soft); }.coach-builder-assignment-scope b { font: italic 800 .72rem var(--font-display); }.coach-builder-assignment-scope small { color: var(--secondary); font-size: .59rem; }.coach-builder-roster { display: grid; gap: 7px; max-height: 240px; overflow-y: auto; }.coach-builder-roster > button { display: grid; grid-template-columns: 21px minmax(0,1fr); gap: 10px; align-items: center; padding: 10px 11px; border: 1px solid var(--border); border-radius: 11px; background: var(--surface-soft); color: white; text-align: left; cursor: pointer; }.coach-builder-roster > button.is-selected { border-color: rgba(240,45,53,.6); background: var(--accent-soft); }.coach-builder-roster > button > i { color: var(--accent-bright); font-style: normal; font-size: .95rem; }.coach-builder-roster span { display: grid; gap: 2px; }.coach-builder-roster b { font: italic 800 .72rem var(--font-display); }.coach-builder-roster small,.coach-builder-all-note { color: var(--secondary); font-size: .62rem; }.coach-builder-all-note { margin: 0; padding: 12px; border-radius: 11px; background: var(--accent-soft); line-height: 1.45; }.coach-builder-publish { display: grid; gap: 9px; padding-top: 3px; border-top: 1px solid var(--border); }.coach-builder-publish > span { margin-top: 11px; font: italic 800 .65rem var(--font-display); }.coach-builder-publish > span.is-ready { color: var(--success); }.coach-builder-publish > span.is-warning { color: var(--warning); }.coach-builder-publish button { min-height: 50px; }.coach-builder-progression { display: grid; gap: 7px; padding: 13px; border: 1px solid rgba(240,45,53,.26); border-radius: 13px; background: var(--accent-soft); }.coach-builder-progression b { color: var(--accent-bright); font: italic 850 .62rem var(--font-display); letter-spacing: .09em; }.coach-builder-progression small,.coach-builder-progression p { color: var(--secondary); font-size: .65rem; line-height: 1.45; }.coach-builder-progression p { margin: 0; }.coach-builder-progression select { min-height: 38px; padding: 0 10px; border: 1px solid var(--border); border-radius: 9px; background: #16181c; color: white; }.autosave-status.is-saved { color: var(--success); }.autosave-status.is-error { color: var(--warning); }.coach-builder-dates { display: grid; grid-template-columns: minmax(180px,.6fr) 1fr; align-items: end; gap: 12px; padding: 12px; border: 1px solid var(--border); border-radius: 13px; background: var(--surface-soft); }.coach-builder-dates label { display: grid; gap: 5px; color: white; font: italic 800 .65rem var(--font-display); }.coach-builder-dates input { min-height: 39px; padding: 0 9px; border: 1px solid var(--border); border-radius: 9px; background: #17191d; color: white; }.coach-builder-dates small { color: var(--secondary); font-size: .62rem; line-height: 1.4; }.coach-builder-week-tabs { display: flex; gap: 7px; overflow-x: auto; padding-bottom: 2px; }.coach-builder-week-tabs button { flex: 0 0 auto; min-width: 62px; min-height: 34px; padding: 0 10px; border: 1px solid var(--border); border-radius: 9px; background: var(--surface-soft); color: var(--secondary); font: italic 800 .6rem var(--font-display); cursor: pointer; }.coach-builder-week-tabs button.is-active { border-color: rgba(240,45,53,.65); background: var(--accent-soft); color: white; }.coach-builder-week-picker { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 6px; }.coach-builder-week-picker button { display: grid; gap: 4px; min-height: 58px; place-items: center; padding: 5px 2px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface-soft); color: var(--tertiary); cursor: pointer; }.coach-builder-week-picker button.is-scheduled { border-color: rgba(240,45,53,.65); background: var(--accent-soft); color: white; }.coach-builder-week-picker small { font: italic 800 .51rem var(--font-display); }.coach-builder-week-picker b { font: italic 850 .95rem var(--font-display); }.coach-builder-week-detail { margin: -3px 0 0; color: var(--secondary); font-size: .61rem; }.coach-builder-days { display: grid; gap: 9px; }.coach-builder-day { overflow: hidden; border: 1px solid var(--border); border-radius: 14px; background: var(--surface-soft); }.coach-builder-day > header { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 8px; padding: 10px; }.coach-builder-day > header > button:first-child { display: grid; grid-template-columns: 20px minmax(0,1fr); gap: 8px; align-items: center; padding: 0; border: 0; background: transparent; color: white; text-align: left; cursor: pointer; }.coach-builder-day > header > button:first-child > i { color: var(--tertiary); font-style: normal; }.coach-builder-day > header span { display: grid; gap: 2px; }.coach-builder-day > header small { color: var(--accent-bright); font: italic 800 .5rem var(--font-display); letter-spacing: .09em; }.coach-builder-day > header b { overflow: hidden; font: italic 800 .79rem var(--font-display); text-overflow: ellipsis; white-space: nowrap; }.coach-builder-day > header em { color: var(--secondary); font: normal .59rem var(--font-body); }.coach-builder-remove { display: grid; width: 31px; height: 31px; place-items: center; border: 1px solid rgba(240,45,53,.32); border-radius: 9px; background: rgba(240,45,53,.09); color: var(--accent-bright); font-size: 1.05rem; cursor: pointer; }.coach-builder-day-body { display: grid; gap: 12px; padding: 13px; border-top: 1px solid var(--border); background: rgba(0,0,0,.15); }.coach-builder-exercise-section { display: grid; gap: 7px; }.coach-builder-exercise-section h4,.coach-builder-library h4 { display: flex; align-items: center; gap: 7px; margin: 0; color: var(--accent-bright); font: italic 800 .56rem var(--font-display); letter-spacing: .08em; text-transform: uppercase; }.coach-builder-exercise-section h4 span,.coach-builder-library h4 span { padding: 3px 6px; border-radius: 999px; background: #1e2025; color: var(--secondary); font-size: .52rem; }.coach-builder-exercise { display: grid; grid-template-columns: minmax(0,1fr) 30px; align-items: center; gap: 8px; padding: 9px; border: 1px solid var(--border); border-radius: 10px; background: #17191d; }.coach-builder-exercise span { display: grid; gap: 2px; }.coach-builder-exercise b { font: italic 800 .68rem var(--font-display); }.coach-builder-exercise small { color: var(--secondary); font-size: .57rem; }.coach-builder-exercise button { display: grid; width: 30px; height: 30px; place-items: center; border: 0; border-radius: 8px; background: rgba(240,45,53,.1); color: var(--accent-bright); cursor: pointer; }.coach-builder-empty,.coach-builder-empty-schedule { margin: 0; color: var(--secondary); font-size: .66rem; line-height: 1.45; }.coach-builder-empty-schedule { display: grid; justify-items: start; gap: 7px; padding: 17px; border: 1px dashed var(--border); border-radius: 13px; text-align: left; }.coach-builder-empty-schedule b { color: white; font: italic 800 .8rem var(--font-display); }.coach-builder-empty-schedule button { min-height: 38px; margin-top: 3px; }.coach-builder-repeat { width: 100%; min-height: 42px; }.coach-builder-search { margin-bottom: 1px; }.coach-builder-library { display: grid; gap: 14px; }.coach-builder-library section { display: grid; gap: 7px; }.coach-builder-library > section > button { display: grid; grid-template-columns: 34px minmax(0,1fr) auto; gap: 10px; align-items: center; padding: 10px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface-soft); color: white; text-align: left; cursor: pointer; }.coach-builder-library > section > button:hover { border-color: rgba(240,45,53,.6); }.coach-builder-library > section > button > i { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 9px; background: var(--accent-soft); color: var(--accent-bright); font-style: normal; }.coach-builder-library > section > button span { display: grid; gap: 2px; }.coach-builder-library > section > button b { font: italic 800 .72rem var(--font-display); }.coach-builder-library > section > button span small { color: var(--secondary); font-size: .58rem; }.coach-builder-library > section > button em { display: grid; justify-items: center; color: var(--accent-bright); font: normal 1.15rem var(--font-body); }.coach-builder-library > section > button em small { font: italic 800 .44rem var(--font-display); letter-spacing: .06em; }.coach-builder-picker-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; padding: 21px 22px 15px; border-bottom: 1px solid var(--border); }.coach-builder-picker { display: grid; gap: 15px; padding: 18px 22px 24px; }.coach-builder-picker > section { display: grid; gap: 9px; padding: 14px; border: 1px solid var(--border); border-radius: 14px; background: var(--surface-soft); }.coach-builder-picker > section > p { margin: 0; color: var(--accent-bright); font: italic 800 .56rem var(--font-display); letter-spacing: .1em; }.coach-builder-picker h3 { margin: 0; font: italic 800 .9rem var(--font-display); }.coach-builder-picker-days { display: grid; gap: 7px; max-height: 220px; overflow-y: auto; }.coach-builder-picker-days label { display: grid; grid-template-columns: 20px minmax(0,1fr); gap: 9px; align-items: center; padding: 9px; border: 1px solid var(--border); border-radius: 10px; background: #17191d; cursor: pointer; }.coach-builder-picker-days input { width: 17px; height: 17px; accent-color: var(--accent-bright); }.coach-builder-picker-days span { display: grid; gap: 2px; }.coach-builder-picker-days b { font: italic 800 .7rem var(--font-display); }.coach-builder-picker-days small { color: var(--secondary); font-size: .58rem; }.coach-builder-picker > .primary-button { min-height: 49px; }
.coach-assignment-picker { display: grid; gap: 7px; max-height: 280px; margin-top: 7px; padding: 8px; overflow-y: auto; border: 1px solid var(--border); border-radius: 14px; background: rgba(0,0,0,.18); }
.coach-assignment-picker label { display: flex; align-items: center; gap: 12px; min-height: 54px; padding: 9px 11px; border-radius: 10px; background: rgba(255,255,255,.035); cursor: pointer; }
.coach-assignment-picker input { width: 20px; height: 20px; accent-color: var(--accent-bright); }
.coach-assignment-picker span { display: grid; gap: 2px; }
.coach-assignment-picker b { font: italic 800 .76rem var(--font-display); }
.coach-assignment-picker small { color: var(--secondary); font-size: .61rem; }
.form-error { padding: 12px 14px; border: 1px solid rgba(255,73,73,.5); border-radius: 12px; background: rgba(140,15,24,.16); color: #ffb6b6; font-size: .67rem; line-height: 1.45; }
.form-error ul { margin: 7px 0 0; padding-left: 18px; }

/* Native S&C analytics and modality-aware set logging. */
.sc-trend-card { min-width: 0; }
.sc-trend-search { max-width: 520px; margin: 15px 0 18px; }
.sc-trend-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; margin-bottom: 14px; }
.sc-trend-summary > span { display: grid; gap: 5px; padding: 13px 14px; border: 1px solid #303339; border-radius: 8px; background: rgba(255,255,255,.035); }
.sc-trend-summary small,.sc-trend-detail small { color: var(--secondary); font-size: .58rem; }
.sc-trend-summary b { font: italic 850 1.2rem var(--font-display); }
.sc-trend-legend { display: flex; flex-wrap: wrap; gap: 16px; margin: 5px 0 10px; color: var(--secondary); font-size: .62rem; font-weight: 750; }
.sc-trend-legend span { display: inline-flex; align-items: center; gap: 7px; }
.sc-trend-legend span::before { width: 19px; height: 3px; border-radius: 99px; background: var(--accent-bright); content: ""; }
.sc-trend-legend .is-secondary::before { background: var(--accent-bright); }
.sc-native-trends .sc-trend-legend .is-primary::before { background: white; }
.sc-native-trends .sc-trend-chart.is-output { --sc-primary-line: var(--accent-bright); --sc-primary-point: white; }
.sc-trend-chart { position: relative; min-height: 220px; overflow: hidden; border: 0; border-radius: 8px; background: transparent; touch-action: none; cursor: crosshair; }
.sc-trend-chart.is-strength { min-height: 240px; --sc-primary-line: white; --sc-primary-point: white; --sc-secondary-line: var(--accent-bright); --sc-secondary-point: var(--accent-bright); }
.sc-trend-chart svg { display: block; width: 100%; height: 220px; overflow: hidden; }
.sc-trend-chart.is-strength svg { height: 240px; }
.sc-trend-chart:focus-visible { outline: 2px solid var(--accent-bright); outline-offset: 2px; }
.sc-chart-grid line { stroke: rgba(255,255,255,.08); stroke-width: 1; }
.sc-chart-grid text { fill: #92959b; font: 500 12px var(--font-body); }
.sc-chart-primary,.sc-chart-secondary { fill: none; stroke: var(--sc-primary-line,var(--accent-bright)); stroke-linecap: round; stroke-linejoin: round; stroke-width: 3; vector-effect: non-scaling-stroke; }
.sc-chart-secondary { stroke: var(--sc-secondary-line,var(--accent-bright)); }
.sc-chart-primary-point { fill: var(--sc-primary-point,white); stroke: var(--sc-primary-line,var(--accent-bright)); stroke-width: 2.5; vector-effect: non-scaling-stroke; }
.sc-chart-secondary-point { fill: var(--sc-secondary-point,var(--accent-bright)); stroke: var(--sc-secondary-point,var(--accent-bright)); stroke-width: 2.5; vector-effect: non-scaling-stroke; }
.sc-chart-primary-point.is-selected,.sc-chart-secondary-point.is-selected { filter: drop-shadow(0 0 5px rgba(239,45,54,.75)); stroke-width: 4; }
.sc-chart-selection { stroke: rgba(185,188,194,.75); stroke-width: 1; stroke-dasharray: 4 4; vector-effect: non-scaling-stroke; }
.sc-trend-hit { position: absolute; z-index: 2; left: var(--x); top: 0; width: var(--hit-width); height: 100%; padding: 0; transform: translateX(-50%); border: 0; background: transparent; cursor: crosshair; }
.sc-trend-hit:focus-visible { border-radius: 8px; outline: 2px solid var(--accent-bright); outline-offset: -3px; }
.sc-trend-detail-region { min-height: 34px; }
.sc-trend-detail { display: grid; grid-template-columns: minmax(110px,1fr) repeat(4,minmax(82px,auto)); gap: 10px; align-items: center; margin-top: 10px; padding: 12px 13px; border: 1px solid #303339; border-radius: 8px; background: rgba(255,255,255,.03); }
.sc-trend-detail > strong { font: italic 800 .72rem var(--font-display); }
.sc-trend-detail > span { display: grid; gap: 3px; }
.sc-trend-detail b { font: italic 780 .7rem var(--font-display); }
.sc-trend-selection-hint { margin: 10px 0 0; color: var(--secondary); font-size: .64rem; }
.sc-trend-empty { padding: 25px; border: 1px dashed #33363c; border-radius: 16px; text-align: center; }
.sc-trend-empty h3 { margin: 0 0 6px; font: italic 850 1.08rem var(--font-display); }
.sc-trend-empty p { margin: 0; color: var(--secondary); font-size: .7rem; }
.modal.sc-exercise-log-modal { width: min(720px,calc(100vw - 24px)); max-height: min(96dvh,980px); padding: 0; overflow: hidden; border: 1px solid #303339; border-radius: 30px; background: #090a0d; box-shadow: 0 30px 100px rgba(0,0,0,.78); }
.sc-log-shell { display: grid; grid-template-rows: auto minmax(0,1fr); max-height: min(96dvh,980px); }
.sc-log-nav { display: grid; grid-template-columns: minmax(76px,1fr) auto minmax(76px,1fr); align-items: center; gap: 12px; min-height: 62px; padding: 8px 18px; border-bottom: 1px solid #24272c; background: #111317; }
.sc-log-nav strong { font: italic 850 .8rem/1 var(--font-display); text-align: center; }
.sc-log-nav button { min-height: 40px; padding: 0; border: 0; background: transparent; color: var(--accent-bright); font: 750 .68rem var(--font-body); cursor: pointer; }
.sc-log-nav button:first-child { justify-self: start; color: #d0d1d4; }.sc-log-nav button:last-child { justify-self: end; }
.sc-log-nav button:disabled { color: #55585f; cursor: default; }
.sc-log-scroll { display: grid; gap: 17px; padding: 14px 20px 30px; overflow-y: auto; overscroll-behavior: contain; }
.sc-log-scroll .modal-drag { margin-top: -5px; margin-bottom: -1px; }
.sc-log-intro h2 { margin: 0; font: italic 900 1.52rem/1.05 var(--font-display); }
.sc-log-intro p { margin: 8px 0 0; color: #9c9ea4; font: italic 800 .57rem/1.35 var(--font-display); letter-spacing: .04em; }
.sc-log-save-help { display: flex; align-items: flex-start; gap: 10px; margin: 0; color: #9fa1a7; font-size: .68rem; line-height: 1.45; }
.sc-log-save-help svg { width: 18px; height: 18px; flex: 0 0 18px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.sc-log-save-help strong { display: grid; width: 18px; height: 18px; flex: 0 0 18px; place-items: center; color: var(--accent-bright); font-size: .8rem; }
.sc-log-prescribed-load { display: flex; align-items: center; gap: 8px; margin: 0; color: #d3d4d8; font-size: .68rem; }
.sc-log-prescribed-load svg { width: 18px; height: 18px; flex: 0 0 18px; fill: none; stroke: var(--accent-bright); stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.sc-log-prescribed-load b { font: italic 820 .67rem var(--font-display); }
.sc-log-ramps { display: grid; gap: 0; padding: 14px; border: 1px solid #303339; border-radius: 14px; background: #141619; }
.sc-log-ramps > p,.sc-log-unit > p,.sc-log-context > p { margin: 0 0 10px; color: #989aa0; font: italic 850 .57rem/1 var(--font-display); letter-spacing: .09em; }
.sc-log-ramps > div { display: flex; justify-content: space-between; gap: 14px; padding: 8px 0; border-top: 1px solid #292c31; font-size: .66rem; }.sc-log-ramps b { font: italic 800 .65rem var(--font-display); }.sc-log-ramps span,.sc-log-ramps small { color: #96989e; }.sc-log-ramps small { margin-top: 8px; font-size: .6rem; line-height: 1.45; }
#sc-log-content { display: grid; gap: 17px; }
.sc-log-unit,.sc-log-context { display: grid; gap: 10px; }
.sc-log-unit > span,.sc-log-context > span { color: #92949a; font-size: .64rem; line-height: 1.45; }
.sc-log-choice { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 3px; padding: 3px; border: 1px solid #303339; border-radius: 12px; background: #15171a; }
.sc-log-choice button { min-height: 38px; padding: 7px 11px; border: 0; border-radius: 9px; background: transparent; color: #96989e; font: italic 800 .62rem var(--font-display); cursor: pointer; }
.sc-log-choice button.is-active { background: #3b171b; color: #fff; box-shadow: inset 0 0 0 1px rgba(232,41,41,.24); }
.sc-body-mass { max-width: 210px; }
.sc-log-sets { display: grid; gap: 10px; }
.sc-native-set { display: grid; gap: 10px; padding: 13px; border: 1px solid #303339; border-radius: 14px; background: #15171a; }
.sc-native-set > p { margin: 0; color: #9a9ca2; font: italic 850 .59rem/1 var(--font-display); letter-spacing: .055em; }
.sc-native-set-fields { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; }
.sc-log-field { display: grid; min-width: 0; gap: 6px; }
.sc-log-field > span { overflow: hidden; color: #aaacb1; font: 780 .56rem/1.1 var(--font-body); letter-spacing: .015em; text-overflow: ellipsis; white-space: nowrap; }
.sc-log-field input,.sc-log-field select { width: 100%; min-width: 0; height: 44px; padding: 0 12px; border: 1px solid #292c31; border-radius: 9px; outline: 0; background: #0b0d10; color: #fff; font: 650 .78rem var(--font-body); }
.sc-log-field input:focus,.sc-log-field select:focus { border-color: rgba(232,41,41,.72); box-shadow: 0 0 0 3px rgba(232,41,41,.1); }
.sc-save-set { display: flex; min-height: 40px; align-items: center; gap: 8px; padding: 0 12px; border: 1px solid #303339; border-radius: 9px; background: #202226; color: #f1f1f3; font: italic 800 .62rem var(--font-display); cursor: pointer; }
.sc-save-set svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.sc-save-set.is-saved { color: #4bd397; }.sc-save-set:disabled:not(.is-saved) { opacity: .48; cursor: default; }
.sc-log-context { padding-top: 5px; }
.sc-log-context .sc-log-field { margin-top: 3px; }
.sc-log-set-controls { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.sc-log-set-controls button { min-height: 42px; border: 1px solid #3a292c; border-radius: 11px; background: #1d1518; color: var(--accent-bright); font: italic 800 .65rem var(--font-display); cursor: pointer; }.sc-log-set-controls button:disabled { opacity: .38; cursor: default; }
.sc-log-footnote { display: flex; align-items: flex-start; gap: 8px; margin: 0; color: #8f9197; font-size: .63rem; line-height: 1.45; }.sc-log-footnote svg { width: 17px; height: 17px; flex: 0 0 17px; fill: none; stroke: currentColor; stroke-width: 1.8; }

/* Native S&C exercise library detail sheet. */
.modal.sc-exercise-detail-modal { width: min(760px,calc(100vw - 24px)); max-height: min(94dvh,960px); padding: 0; overflow: hidden; border: 1px solid #303339; border-radius: 30px; background: #0b0c0f; box-shadow: 0 30px 100px rgba(0,0,0,.78); }
.sc-exercise-detail-head { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 22px 26px 20px; border-bottom: 1px solid #202328; background: linear-gradient(180deg,#111317 0%,#0b0c0f 100%); }
.sc-exercise-detail-head > div { min-width: 0; }
.sc-exercise-detail-head p { margin: 0 0 7px; color: var(--accent-bright); font: italic 880 .66rem/1 var(--font-display); letter-spacing: .12em; }
.sc-exercise-detail-head h2 { margin: 0; font: italic 900 clamp(1.5rem,4vw,2.15rem)/1.05 var(--font-display); letter-spacing: -.025em; }
.sc-exercise-detail-head .icon-button { flex: 0 0 auto; width: 52px; height: 52px; border-color: #32353a; background: #17191d; font-size: 1.55rem; }
.sc-exercise-detail-body { display: grid; gap: 17px; max-height: calc(min(94dvh,960px) - 104px); padding: 22px 26px 34px; overflow-y: auto; overscroll-behavior: contain; }
.sc-exercise-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.sc-exercise-tags span { padding: 7px 11px; border: 1px solid #363940; border-radius: 999px; background: #1b1d21; color: #c5c6ca; font: italic 800 .59rem/1 var(--font-display); letter-spacing: .035em; }
.sc-exercise-demo-button { display: flex; width: 100%; min-height: 52px; align-items: center; justify-content: center; gap: 11px; padding: 12px 18px; border: 1px solid #fa393f; border-radius: 15px; background: linear-gradient(115deg,#fa3238,#bd2028); color: white; box-shadow: 0 10px 28px rgba(232,41,41,.15); cursor: pointer; }
.sc-exercise-demo-button:hover { filter: brightness(1.08); }
.sc-exercise-demo-button svg { width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.sc-exercise-demo-button span { font: italic 880 .82rem/1 var(--font-display); }
.sc-exercise-swap-button { display: flex; width: 100%; min-height: 50px; align-items: center; justify-content: center; gap: 10px; padding: 12px 18px; border: 1px solid #34373c; border-radius: 15px; background: #181a1e; color: #f2f2f4; cursor: pointer; }
.sc-exercise-swap-button:hover { border-color: rgba(232,41,41,.65); background: #20191c; }
.sc-exercise-swap-button svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.sc-exercise-swap-button span { font: italic 860 .76rem/1 var(--font-display); }
.sc-exercise-detail-list { padding: 7px 3px; }
.sc-exercise-detail-list h3 { margin: 0 0 14px; font: italic 880 1rem/1.05 var(--font-display); }
.sc-exercise-detail-list ol { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; counter-reset: sc-detail-item; }
.sc-exercise-detail-list li { display: grid; grid-template-columns: 24px minmax(0,1fr); gap: 10px; align-items: start; padding: 6px 0; counter-increment: sc-detail-item; color: #aeb0b5; font-size: .76rem; line-height: 1.5; }
.sc-exercise-detail-list li::before { color: var(--accent-bright); content: counter(sc-detail-item); font: italic 850 .59rem/1.7 var(--font-display); text-align: center; }
.sc-exercise-detail-list.is-warning h3,.sc-exercise-detail-list.is-warning li::before { color: #f6b72f; }
.sc-exercise-detail-list.is-danger h3,.sc-exercise-detail-list.is-danger li::before { color: #ff5257; }
.sc-exercise-source { margin: 0; padding: 3px 4px; color: #85878d; font-size: .6rem; line-height: 1.45; }

/* Native S&C exercise swap flow. */
.modal.sc-swap-modal { width: min(680px,calc(100vw - 24px)); max-height: min(95dvh,940px); padding: 0; overflow: hidden; border: 1px solid #303339; border-radius: 30px; background: #0b0c0f; box-shadow: 0 30px 100px rgba(0,0,0,.8); }
.sc-swap-modal .sc-exercise-detail-head span { max-width: 520px; line-height: 1.45; }
.sc-swap-body { display: grid; gap: 18px; max-height: calc(min(95dvh,940px) - 118px); padding: 20px 24px 30px; overflow-y: auto; overscroll-behavior: contain; }
.sc-swap-body section { display: grid; gap: 10px; }
.sc-swap-body section > h3 { margin: 0; color: #a1a3a9; font: italic 850 .61rem/1 var(--font-display); letter-spacing: .08em; text-transform: uppercase; }
.sc-swap-options { display: grid; gap: 8px; }
.sc-swap-options button { display: grid; grid-template-columns: 22px minmax(0,1fr); gap: 10px; align-items: center; min-height: 46px; padding: 11px 12px; border: 1px solid #303339; border-radius: 13px; background: #15171a; color: #f0f0f2; text-align: left; cursor: pointer; }
.sc-swap-options button:hover,.sc-swap-options button.is-selected { border-color: rgba(232,41,41,.72); background: #201619; }
.sc-swap-options button > svg { width: 19px; height: 19px; fill: none; stroke: #888b91; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.sc-swap-options button.is-selected > svg { stroke: var(--accent-bright); }
.sc-swap-options button > span { display: grid; min-width: 0; gap: 3px; font-size: .72rem; line-height: 1.35; }
.sc-swap-suggestions button { align-items: start; padding-block: 13px; }
.sc-swap-suggestions b { font: italic 850 .76rem/1.15 var(--font-display); }
.sc-swap-suggestions em { color: var(--accent-bright); font: italic 800 .56rem/1.2 var(--font-display); text-transform: none; }
.sc-swap-suggestions small { color: #96989e; font-size: .62rem; line-height: 1.45; }
.sc-swap-always { display: grid; grid-template-columns: 20px minmax(0,1fr); gap: 11px; align-items: start; padding: 13px; border: 1px solid #303339; border-radius: 13px; background: #15171a; cursor: pointer; }
.sc-swap-always input { width: 18px; height: 18px; margin: 1px 0 0; accent-color: var(--accent); }
.sc-swap-always span { display: grid; gap: 3px; }.sc-swap-always b { font: italic 820 .7rem/1.25 var(--font-display); }.sc-swap-always small { color: #92949a; font-size: .6rem; line-height: 1.4; }
.sc-swap-empty,.sc-swap-pain { margin: 0; padding: 13px; border: 1px solid #303339; border-radius: 13px; background: #15171a; color: #9b9da3; font-size: .66rem; line-height: 1.5; }
.sc-swap-pain { border-color: rgba(246,183,47,.35); color: #f6b72f; }
.sc-swap-submit { width: 100%; min-height: 48px; }.sc-swap-submit:disabled { opacity: .43; cursor: default; }

@media (max-width: 700px) {
  .modal.coach-template-editor-modal { max-height: 97dvh; border-radius: 30px 30px 0 0; }.coach-template-editor-head { padding: 19px 15px; }.coach-template-editor-head h2 { font-size: 1.3rem; }.coach-template-editor-head .secondary-button { min-height: 40px; padding-inline: 12px; white-space: nowrap; }.coach-template-editor-scroll { max-height: calc(97dvh - 90px); padding: 15px 13px calc(26px + env(safe-area-inset-bottom)); }.coach-template-editor-card { padding: 15px; }
  .coach-template-row { grid-template-columns: 1fr; }.coach-template-actions { justify-content: flex-end; padding: 0 5px 12px; }.coach-template-exercise-fields { grid-template-columns: repeat(2,minmax(0,1fr)); }.coach-template-exercise-fields .field-wide { grid-column: 1 / -1; }
  .coach-builder-head { padding: 19px 15px 16px; }.coach-builder-head h2 { font-size: 1.45rem; }.coach-builder-scroll { max-height: calc(97dvh - 100px); padding: 14px 13px calc(28px + env(safe-area-inset-bottom)); }.coach-builder-card { padding: 15px; }.coach-builder-dates { grid-template-columns: 1fr; }.coach-builder-week-picker { gap: 4px; }.coach-builder-week-picker button { min-height: 52px; }.coach-builder-assignment-scope { grid-template-columns: 1fr; }.coach-builder-picker { padding: 15px 14px calc(24px + env(safe-area-inset-bottom)); }.coach-builder-picker-head { padding: 18px 14px 14px; }.coach-builder-picker-head h2 { font-size: 1.35rem; }
  .sc-trend-summary { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; }
  .sc-trend-summary > span { padding: 10px 8px; }
  .sc-trend-summary b { font-size: .88rem; }
  .sc-trend-detail { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .sc-trend-detail > strong { grid-column: 1 / -1; }
  .modal.sc-exercise-log-modal { width: 100%; max-height: 98dvh; border-radius: 30px 30px 0 0; }
  .sc-log-shell { max-height: 98dvh; }
  .sc-log-nav { min-height: 58px; padding-inline: 14px; }
  .sc-log-scroll { padding: 13px 14px calc(27px + env(safe-area-inset-bottom)); }
  .sc-native-set-fields { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .sc-log-field > span { white-space: normal; }
  .modal.sc-exercise-detail-modal { width: 100%; max-height: 97dvh; border-radius: 30px 30px 0 0; }
  .sc-exercise-detail-head { padding: 20px 17px 17px; }
  .sc-exercise-detail-head .icon-button { width: 46px; height: 46px; }
  .sc-exercise-detail-body { max-height: calc(97dvh - 94px); padding: 18px 15px calc(28px + env(safe-area-inset-bottom)); }
  .sc-exercise-detail-list { padding-inline: 3px; }
  .modal.sc-swap-modal { width: 100%; max-height: 98dvh; border-radius: 30px 30px 0 0; }
  .sc-swap-body { max-height: calc(98dvh - 110px); padding: 17px 14px calc(27px + env(safe-area-inset-bottom)); }
}

/* Strength & Conditioning workspace parity with the native Today / Program / Trends / Equipment flow. */
.sc-workspace { width: min(920px,100%); margin: 0 auto; padding-bottom: 30px; }
.sc-workspace-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 17px; padding: 8px 2px 0; }
.sc-workspace-header > div:first-child { min-width: 0; }
.sc-workspace-header p,.sc-program-section > header p,.sc-equipment-head p { margin: 0 0 6px; color: var(--accent-bright); font: italic 900 .7rem/1 var(--font-display); letter-spacing: .08em; }
.sc-workspace-header h1 { margin: 0; color: white; font: italic 900 clamp(1.85rem,5vw,2.55rem)/1 var(--font-display); }
.sc-workspace-header span { display: block; margin-top: 7px; color: #9b9ea4; font-size: .76rem; }
.sc-workspace-actions { display: flex; flex: 0 0 auto; gap: 9px; }
.sc-workspace-actions button { display: grid; width: 46px; height: 46px; place-items: center; padding: 0; border: 1px solid #303339; border-radius: 12px; background: #15171a; color: white; cursor: pointer; }
.sc-workspace-actions svg,.sc-workspace-tabs svg,.sc-session-completion svg,.sc-program-row svg,.sc-equipment-group svg,.sc-native-empty > svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.sc-workspace-tabs { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 4px; margin-bottom: 20px; padding: 4px; border: 1px solid #2b2d31; border-radius: 12px; background: #131518; }
.sc-workspace-tabs button { display: flex; min-width: 0; height: 58px; align-items: center; justify-content: center; gap: 8px; padding: 0 10px; border: 0; border-radius: 9px; background: transparent; color: #9da0a6; cursor: pointer; }
.sc-workspace-tabs button span { overflow: hidden; font: italic 850 .72rem/1 var(--font-display); text-overflow: ellipsis; white-space: nowrap; }
.sc-workspace-tabs button svg { width: 18px; height: 18px; }
.sc-workspace-tabs button.is-active { background: #c92030; color: white; box-shadow: 0 8px 20px rgba(232,41,41,.16); }
.sc-session-card { margin-bottom: 22px; }
.sc-session-card footer span { display: inline-flex; align-items: center; gap: 7px; }
.sc-session-card footer svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.exercise-log.has-performance { color: var(--accent-bright) !important; }
.sc-session-completion { display: grid; gap: 14px; padding: 18px; border: 1px solid #2b2d31; border-radius: 18px; background: #131518; }
.sc-session-completion > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.sc-session-completion > header span,.sc-trend-control > span { color: #999ca2; font: italic 850 .67rem var(--font-display); letter-spacing: .07em; }
.sc-session-completion > header strong { font: italic 850 .82rem var(--font-display); }
.sc-session-completion input[type="range"] { width: 100%; accent-color: var(--accent-bright); }
.sc-session-completion textarea { width: 100%; min-height: 76px; resize: vertical; padding: 12px; border: 1px solid #2b2d31; border-radius: 11px; outline: none; background: #090b0e; color: white; font: 650 .75rem var(--font-body); }
.sc-session-completion textarea:focus { border-color: rgba(232,41,41,.68); box-shadow: 0 0 0 3px rgba(232,41,41,.1); }
.sc-primary-work-hint { margin: -3px 1px 0; color: #92959b; font-size: .63rem; line-height: 1.45; }
.sc-form-section { margin: 3px 0 -2px; color: var(--accent-bright); font: italic 900 .68rem/1 var(--font-display); letter-spacing: .08em; }
.sc-external-form .settings-toggle { margin-top: 4px; padding: 13px; border: 1px solid #303339; border-radius: 12px; background: #15171a; }
.sc-external-form .settings-toggle > span { display: grid; gap: 4px; }
.sc-external-form .settings-toggle b { font: italic 850 .74rem var(--font-display); }
.sc-external-form .settings-toggle small { color: #999ca2; font-size: .62rem; line-height: 1.4; }
.modal.sc-settings-modal { width: min(680px,calc(100vw - 24px)); }
.sc-settings-form .settings-toggle { display: flex; align-items: center; gap: 12px; padding: 13px; border: 1px solid #303339; border-radius: 12px; background: #15171a; }
.sc-settings-form .settings-toggle > input { width: 20px; height: 20px; accent-color: var(--accent-bright); }
.sc-settings-form .settings-toggle > span { display: grid; gap: 4px; }
.sc-settings-form .settings-toggle b { font: italic 850 .74rem var(--font-display); }
.sc-settings-form .settings-toggle small { color: #999ca2; font-size: .62rem; line-height: 1.4; }
.sc-settings-days { min-width: 0; margin: 0; padding: 13px; border: 1px solid #303339; border-radius: 13px; background: #111316; }
.sc-settings-days legend { padding: 0 5px; color: white; font: italic 850 .73rem var(--font-display); }
.sc-settings-days > p { margin: 0 0 9px; color: #92959b; font-size: .62rem; line-height: 1.45; }
.sc-settings-days label { position: relative; display: grid; grid-template-columns: minmax(0,1fr) 22px; align-items: center; min-height: 42px; padding: 0 3px; border-top: 1px solid #2c2f34; color: white; cursor: pointer; }
.sc-settings-days label:first-of-type { border-top: 0; }
.sc-settings-days label input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.sc-settings-days label span { font: italic 800 .69rem var(--font-display); }
.sc-settings-days label svg { width: 20px; height: 20px; fill: none; stroke: #7f8288; stroke-width: 1.8; }
.sc-settings-days label:has(input:checked) svg { color: var(--accent-bright); stroke: currentColor; }
.sc-settings-guidance { margin: -2px 2px 2px; color: #92959b; font-size: .63rem; line-height: 1.5; }
.sc-settings-emphasis label:has(input:checked) { color: white; }
.sc-settings-form .settings-toggle input:disabled + span { opacity: .45; }
.sc-recurring-list { overflow: hidden; border: 1px solid #303339; border-radius: 13px; background: #111316; }
.sc-recurring-list > button { display: flex; width: 100%; min-height: 58px; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 13px; border: 0; border-bottom: 1px solid #303339; background: transparent; color: white; text-align: left; cursor: pointer; }
.sc-recurring-list > button:last-child { border-bottom: 0; }
.sc-recurring-list > button > span { display: grid; min-width: 0; gap: 4px; }
.sc-recurring-list b { overflow: hidden; font: italic 820 .69rem var(--font-display); text-overflow: ellipsis; white-space: nowrap; }
.sc-recurring-list small { overflow: hidden; color: #92959b; font-size: .6rem; text-overflow: ellipsis; white-space: nowrap; }
.sc-recurring-list strong { color: var(--accent-bright); font-size: 1rem; }
.sc-recurring-list > p { margin: 0; padding: 18px 13px; color: #92959b; font-size: .68rem; }
#sc-autosave-status { display: flex; align-items: center; gap: 8px; min-height: 20px; margin: 0; color: #8f9298; font-size: .65rem; }
#sc-autosave-status svg { width: 17px; height: 17px; }
#sc-autosave-status.is-saving { color: #d0d1d4; } #sc-autosave-status.needs-retry { color: #f6b72f; }
.sc-save-session,.sc-complete-session { display: flex; min-height: 46px; align-items: center; justify-content: center; gap: 9px; border-radius: 11px; color: white; font: italic 850 .72rem var(--font-display); cursor: pointer; }
.sc-save-session { border: 1px solid #34373c; background: #202226; }
.sc-complete-session { min-height: 51px; border: 1px solid #ef343b; background: linear-gradient(110deg,#f43138,#b9212a); }
.sc-save-session:disabled,.sc-complete-session:disabled { opacity: .42; cursor: default; }
.sc-program-section { margin-bottom: 22px; }
.sc-program-section > header,.sc-equipment-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 12px; padding: 0 2px; }
.sc-program-section h2,.sc-equipment-head h2 { margin: 0; font: italic 900 1.45rem/1 var(--font-display); }
.sc-program-section > header > span,.sc-equipment-head > div > span { color: #8f9298; font-size: .67rem; }
.sc-program-list { overflow: hidden; border: 1px solid #2b2d31; border-radius: 17px; background: #131518; }
.sc-program-row { display: grid; grid-template-columns: 46px minmax(0,1fr) auto 16px; align-items: center; gap: 12px; width: 100%; min-height: 76px; padding: 12px 14px; border: 0; border-bottom: 1px solid #2f3237; background: transparent; color: white; text-align: left; cursor: pointer; }
.sc-program-row:last-child { border-bottom: 0; }
.sc-program-row > i.sc-program-date { display: grid; width: 42px; height: 48px; place-content: center; gap: 1px; border-radius: 9px; background: #202226; color: white; text-align: center; }
.sc-program-date small { color: #92959b; font: italic 850 .52rem/1 var(--font-display); letter-spacing: .04em; }
.sc-program-date b { font: italic 900 1.1rem/1 var(--font-display); }
.sc-program-row > span { display: grid; min-width: 0; gap: 4px; }
.sc-program-row b { overflow: hidden; font: italic 850 .8rem/1 var(--font-display); text-overflow: ellipsis; white-space: nowrap; }
.sc-program-row small { overflow: hidden; color: #92959b; font-size: .63rem; text-overflow: ellipsis; white-space: nowrap; }
.sc-program-row em { color: #92959b; font: italic 800 .62rem var(--font-display); white-space: nowrap; }
.sc-program-row em.is-complete { color: #43d191; }
.sc-program-status { width: 21px !important; height: 21px !important; }
.sc-program-status.is-complete { color: #43d191; }
.sc-program-row > strong { color: #9a9da3; font-size: 1.25rem; }
.sc-list-empty { margin: 0; padding: 22px; color: #92959b; font-size: .72rem; text-align: center; }
.sc-native-trends { display: grid; gap: 13px; }
.sc-native-trends > header { display: grid; grid-template-columns: minmax(0,1fr) 116px; align-items: end; gap: 10px; }
.sc-trend-control { display: grid; gap: 7px; }
.sc-trend-control > button { display: grid; grid-template-columns: 21px minmax(0,1fr) 18px; align-items: center; gap: 9px; width: 100%; min-height: 52px; padding: 7px 13px; border: 1px solid #303339; border-radius: 12px; background: #131518; color: white; text-align: left; cursor: pointer; }
.sc-trend-control > button:hover { border-color: rgba(239,45,54,.62); background: #17191c; }
.sc-trend-control > button > svg { width: 19px; height: 19px; fill: none; stroke: #9da0a6; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; }
.sc-trend-control > button > svg:last-child { width: 15px; height: 15px; justify-self: end; }
.sc-trend-control button > span { display: grid; min-width: 0; gap: 3px; }
.sc-trend-control button b { overflow: hidden; font: italic 820 .75rem var(--font-display); text-overflow: ellipsis; white-space: nowrap; }
.sc-trend-control button small { overflow: hidden; color: #999ca2; font-size: .6rem; text-overflow: ellipsis; white-space: nowrap; }
.sc-native-trends > article { padding: 14px; border: 1px solid #2b2d31; border-radius: 8px; background: #131518; }
.sc-unit-picker { display: grid; grid-template-columns: repeat(2,1fr); gap: 3px; padding: 4px; border: 1px solid #303339; border-radius: 12px; background: #131518; }
.sc-unit-picker button { min-height: 39px; border: 0; border-radius: 8px; background: transparent; color: #999ca2; font: italic 850 .65rem var(--font-display); cursor: pointer; }
.sc-unit-picker button.is-active { background: #4a171b; color: white; }
.modal.sc-trend-picker-modal { width: min(620px,calc(100vw - 24px)); max-height: min(82dvh,760px); padding: 0; overflow: hidden; border-radius: 28px; background: #090a0d; }
.sc-trend-picker-head { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 20px 22px 15px; border-bottom: 1px solid #292c31; }
.sc-trend-picker-head p { margin: 0 0 6px; color: var(--accent-bright); font: italic 850 .61rem var(--font-display); letter-spacing: .1em; }
.sc-trend-picker-head h2 { margin: 0; font: italic 900 1.45rem/1 var(--font-display); }
.sc-trend-picker-search { display: grid; grid-template-columns: 20px minmax(0,1fr); align-items: center; gap: 9px; margin: 14px 16px 8px; padding: 0 13px; border: 1px solid #303339; border-radius: 12px; background: #15171a; }
.sc-trend-picker-search svg { width: 18px; height: 18px; fill: none; stroke: #9da0a6; stroke-width: 2; }
.sc-trend-picker-search input { min-width: 0; height: 46px; border: 0; outline: 0; background: transparent; color: white; font: 650 .72rem var(--font-body); }
.sc-trend-picker-options { display: grid; gap: 8px; max-height: min(56dvh,520px); padding: 8px 16px 20px; overflow-y: auto; overscroll-behavior: contain; }
.sc-trend-picker-option { display: grid; grid-template-columns: 36px minmax(0,1fr) 22px; align-items: center; gap: 11px; min-height: 66px; padding: 10px 12px; border: 1px solid #303339; border-radius: 10px; background: #15171a; color: white; text-align: left; cursor: pointer; }
.sc-trend-picker-option:hover,.sc-trend-picker-option.is-selected { border-color: rgba(239,45,54,.58); background: rgba(74,23,27,.56); }
.sc-trend-picker-option[hidden] { display: none; }
.sc-trend-picker-option > i { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 8px; background: rgba(239,45,54,.12); color: var(--accent-bright); }
.sc-trend-picker-option > i svg,.sc-trend-picker-check { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; }
.sc-trend-picker-option > span { display: grid; min-width: 0; gap: 4px; }
.sc-trend-picker-option b { font: italic 820 .76rem var(--font-display); }
.sc-trend-picker-option small { color: #999ca2; font-size: .62rem; }
.sc-trend-picker-check { color: var(--accent-bright); }
.sc-trend-picker-empty { margin: 8px 16px 24px; padding: 24px; border: 1px dashed #34373c; border-radius: 12px; color: #999ca2; font-size: .7rem; text-align: center; }
.sc-native-empty { display: grid; justify-items: start; gap: 10px; padding: 23px; border: 1px solid #2b2d31; border-radius: 17px; background: #131518; }
.sc-native-empty > svg { width: 28px; height: 28px; color: var(--accent-bright); }
.sc-native-empty h2 { margin: 0; font: italic 900 1.4rem var(--font-display); }
.sc-native-empty p { max-width: 650px; margin: 0; color: #999ca2; font-size: .74rem; line-height: 1.55; }
.sc-native-empty .eyebrow { margin: 2px 0 -4px; color: var(--accent-bright); font: italic 850 .66rem/1 var(--font-display); letter-spacing: .08em; }
.sc-native-empty .primary-button,.sc-native-empty .secondary-button { margin-top: 7px; }
.sc-rest-day-empty > svg { color: var(--success); }
.sc-next-session { display: grid; gap: 4px; margin-top: 5px !important; padding: 12px 14px; border: 1px solid #303339; border-radius: 11px; background: #1b1d21; }
.sc-next-session b { color: white; font: italic 800 .72rem var(--font-display); }
.sc-next-session span { color: #a3a6ac; }
.modal.sc-intake-modal { width: min(820px,calc(100vw - 24px)); max-height: min(96dvh,1000px); padding: 0; overflow: hidden; border: 1px solid #303339; border-radius: 30px; background: #090a0d; }
#sc-intake-shell { display: flex; max-height: min(96dvh,1000px); flex-direction: column; }
.sc-intake-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 24px 26px 17px; border-bottom: 1px solid #25282d; background: linear-gradient(180deg,#15171b,#0d0e11); }
.sc-intake-top > div { min-width: 0; }
.sc-intake-top p { margin: 0 0 7px; color: var(--accent-bright); font: italic 900 .68rem/1 var(--font-display); letter-spacing: .09em; }
.sc-intake-top h2 { margin: 0; color: white; font: italic 900 clamp(1.5rem,4vw,2.15rem)/1 var(--font-display); }
.sc-intake-top span { display: block; margin-top: 8px; color: #9da0a6; font-size: .75rem; line-height: 1.45; }
.sc-intake-progress { position: relative; height: 27px; flex: 0 0 auto; overflow: hidden; border-bottom: 1px solid #25282d; background: #121417; }
.sc-intake-progress span { position: absolute; z-index: 2; top: 7px; left: 26px; color: #b3b5ba; font: italic 800 .58rem var(--font-display); letter-spacing: .08em; }
.sc-intake-progress i { display: block; height: 100%; background: linear-gradient(90deg,rgba(239,37,52,.44),rgba(239,37,52,.08)); transition: width .2s ease; }
.sc-intake-body { display: grid; gap: 16px; min-height: 0; padding: 22px 26px 26px; overflow-y: auto; }
.sc-intake-help { margin: 0; color: #a0a3a8; font-size: .75rem; line-height: 1.55; }
.sc-intake-stats { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; }
.sc-intake-stats span { display: grid; min-width: 0; gap: 5px; padding: 13px; border: 1px solid #303339; border-radius: 11px; background: #17191d; }
.sc-intake-stats small { color: #8f9298; font: italic 800 .56rem var(--font-display); letter-spacing: .08em; }
.sc-intake-stats b { overflow: hidden; color: white; font: italic 850 .77rem var(--font-display); text-overflow: ellipsis; white-space: nowrap; }
.sc-intake-group { display: grid; min-width: 0; gap: 8px; margin: 0; padding: 14px; border: 1px solid #303339; border-radius: 15px; background: #131518; }
.sc-intake-group legend { padding: 0 7px; color: #9da0a6; font: italic 850 .65rem var(--font-display); letter-spacing: .045em; text-transform: uppercase; }
.sc-intake-choice { position: relative; display: grid; grid-template-columns: 20px minmax(0,1fr) 22px; align-items: center; gap: 10px; min-height: 57px; padding: 10px 12px; border: 1px solid #2c2f34; border-radius: 11px; background: #1a1c20; color: white; cursor: pointer; }
.sc-intake-choice:has(input:checked) { border-color: rgba(239,37,52,.65); background: rgba(76,21,28,.55); }
.sc-intake-choice input { width: 18px; height: 18px; margin: 0; accent-color: var(--accent-bright); }
.sc-intake-choice span { display: grid; min-width: 0; gap: 3px; }
.sc-intake-choice b { font: italic 800 .72rem var(--font-display); }
.sc-intake-choice small { color: #9da0a6; font-size: .63rem; line-height: 1.42; }
.sc-intake-choice i { opacity: 0; color: var(--accent-bright); font-style: normal; font-weight: 900; }
.sc-intake-choice:has(input:checked) i { opacity: 1; }
.sc-movement-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.sc-movement-grid label { display: grid; gap: 9px; padding: 14px; border: 1px solid #303339; border-radius: 12px; background: #15171a; }
.sc-movement-grid b { color: white; font: italic 800 .7rem var(--font-display); }
.sc-movement-grid select,.sc-intake-inline input,.sc-intake-inline select { min-width: 0; min-height: 42px; padding: 0 10px; border: 1px solid #34373c; border-radius: 9px; outline: 0; background: #0d0e11; color: white; font: 700 .7rem var(--font-body); }
.sc-intake-inline { display: grid; grid-template-columns: minmax(130px,1.2fr) minmax(120px,1fr) minmax(95px,.7fr) auto; gap: 8px; }
.sc-intake-saved-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; border-radius: 10px; background: #1c1e22; }
.sc-intake-saved-row span { display: grid; gap: 3px; }
.sc-intake-saved-row b { font: italic 800 .68rem var(--font-display); }
.sc-intake-saved-row small { color: #999ca2; font-size: .61rem; }
.sc-intake-saved-row button { width: 32px; height: 32px; border: 0; border-radius: 8px; background: #292b30; color: #c5c7cc; cursor: pointer; }
.onboarding-repeaters > p { margin: -2px 0 12px; color: var(--secondary); font-size: .74rem; line-height: 1.5; }
.onboarding-repeaters > div { display: grid; gap: 9px; margin-bottom: 12px; }
.onboarding-repeater-row { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)) 36px; align-items: center; gap: 9px; }
.onboarding-repeater-row input { width: 100%; min-width: 0; min-height: 45px; border: 1px solid var(--border); border-radius: 11px; background: var(--surface-soft); color: white; padding: 0 12px; font: 650 .78rem var(--font-body); color-scheme: dark; }
.onboarding-repeater-row button { width: 36px; height: 36px; border: 1px solid var(--border); border-radius: 50%; background: rgba(255,255,255,.045); color: white; font-size: 1rem; cursor: pointer; }
.sc-preset-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.sc-preset-grid button { min-height: 46px; border: 1px solid #34373c; border-radius: 10px; background: #1b1d21; color: #b2b4b9; font: italic 800 .68rem var(--font-display); cursor: pointer; }
.sc-preset-grid button.is-active { border-color: var(--accent-bright); background: #4a171b; color: white; }
#sc-intake-message { min-height: 18px; margin: 0; padding: 0 26px; color: var(--warning); font-size: .7rem; }
.sc-intake-footer { display: flex; justify-content: flex-end; gap: 10px; flex: 0 0 auto; padding: 15px 26px calc(15px + env(safe-area-inset-bottom)); border-top: 1px solid #292c31; background: #111316; }
.sc-intake-footer button { min-width: 125px; }
.sc-equipment-head { align-items: center; }
.sc-equipment-head > div { display: grid; gap: 2px; }
.sc-equipment-head button { min-height: 39px; padding: 0 14px; border: 0; background: transparent; color: var(--accent-bright); font: italic 850 .68rem var(--font-display); cursor: pointer; }
.sc-equipment-group { margin-bottom: 18px; }
.sc-equipment-group > h3 { margin: 0 0 9px 2px; color: #96999f; font: italic 850 .65rem var(--font-display); letter-spacing: .06em; text-transform: uppercase; }
.sc-equipment-group > div { overflow: hidden; border: 1px solid #2b2d31; border-radius: 17px; background: #131518; }
.sc-equipment-group button { display: grid; grid-template-columns: 38px minmax(0,1fr) 24px; align-items: center; gap: 11px; width: 100%; min-height: 68px; padding: 10px 14px; border: 0; border-bottom: 1px solid #303238; background: transparent; color: white; text-align: left; cursor: pointer; }
.sc-equipment-group button:last-child { border-bottom: 0; }
.sc-equipment-group button > i { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 9px; background: #202226; color: #a2a5ab; }
.sc-equipment-group button > span { display: grid; min-width: 0; gap: 4px; }
.sc-equipment-group b { font: italic 850 .75rem var(--font-display); }
.sc-equipment-group small { overflow: hidden; color: #8f9298; font-size: .6rem; text-overflow: ellipsis; white-space: nowrap; }
.sc-equipment-check { color: var(--accent-bright); }
.modal.sc-workout-preview-modal { width: min(720px,calc(100vw - 24px)); max-height: 94dvh; padding: 0; overflow: hidden; border-radius: 30px; background: #0b0c0f; }
.sc-exercise-detail-head span { display: block; margin-top: 6px; color: #999ca2; font-size: .7rem; }
.sc-workout-preview { display: grid; gap: 14px; max-height: calc(94dvh - 110px); padding: 20px 24px 30px; overflow-y: auto; }
.sc-workout-preview section { overflow: hidden; border: 1px solid #303339; border-radius: 14px; background: #15171a; }
.sc-workout-preview h3 { margin: 0; padding: 14px; border-bottom: 1px solid #303339; color: var(--accent-bright); font: italic 850 .75rem var(--font-display); text-transform: uppercase; }
.sc-workout-preview section > div { display: flex; justify-content: space-between; gap: 14px; padding: 13px 14px; border-bottom: 1px solid #303339; }
.sc-workout-preview section > div:last-child { border-bottom: 0; }
.sc-workout-preview b { font: italic 800 .72rem var(--font-display); }.sc-workout-preview span { color: #96999f; font-size: .65rem; }

@media (max-width: 700px) {
  .sc-workspace-tabs button { height: 54px; flex-direction: column; gap: 5px; padding-inline: 5px; }
  .sc-workspace-tabs button span { font-size: .59rem; }
  .sc-workspace-header h1 { font-size: 1.75rem; }
  .sc-workspace-actions button { width: 42px; height: 42px; }
  .sc-native-trends > header { grid-template-columns: 1fr; }
  .sc-unit-picker { width: 116px; justify-self: end; }
  .modal.sc-trend-picker-modal { width: 100%; max-height: 92dvh; border-radius: 28px 28px 0 0; }
  .sc-trend-picker-options { max-height: 66dvh; padding-bottom: calc(24px + env(safe-area-inset-bottom)); }
  .sc-trend-summary { gap: 6px; }
  .sc-trend-summary > span { min-width: 0; padding: 10px 8px; }
  .sc-trend-summary small { overflow-wrap: anywhere; font-size: .5rem; }
  .sc-trend-summary b { font-size: .9rem; white-space: nowrap; }
  .sc-trend-detail { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .sc-trend-detail > strong { grid-column: 1 / -1; }
  .sc-program-row { grid-template-columns: 44px minmax(0,1fr) 14px; padding-inline: 11px; }
  .sc-program-row em { display: none; }
  .modal.sc-workout-preview-modal { width: 100%; max-height: 97dvh; border-radius: 30px 30px 0 0; }
  .modal.sc-settings-modal { width: 100%; max-height: 97dvh; border-radius: 28px 28px 0 0; }
  .modal.sc-intake-modal { width: 100%; max-height: 98dvh; border-radius: 30px 30px 0 0; }
  #sc-intake-shell { max-height: 98dvh; }
  .sc-intake-top { padding: 20px 17px 15px; }
  .sc-intake-progress span { left: 17px; }
  .sc-intake-body { padding: 18px 15px 22px; }
  .sc-intake-stats { grid-template-columns: 1fr; }
  .sc-movement-grid { grid-template-columns: 1fr; }
  .sc-intake-inline { grid-template-columns: 1fr 1fr; }
  #sc-intake-message { padding-inline: 15px; }
  .sc-intake-footer { padding-inline: 15px; }
  .sc-intake-footer button { flex: 1; min-width: 0; }
}

/* Fuel controls must win over the legacy generic food-row button rules. */
.native-food-row > .food-entry-main { width: auto; height: auto; border: 0; border-radius: 0; background: transparent; color: white; }
.native-food-row > .food-row-icon { display: grid; width: 38px; height: 38px; border-radius: 50%; background: transparent; color: var(--tertiary); }
.native-food-row > .food-favorite { border: 1px solid #34363a; background: #1c1e21; }
.native-food-row > .food-favorite.is-active { border-color: rgba(250,187,51,.45); background: rgba(250,187,51,.1); color: var(--warning); }
.native-food-row > .food-delete { border: 1px solid #49341b; background: #211a11; color: var(--warning); }

/* Background nutrition scans mirror the iOS scan-job progress rows. */
.nutrition-scan-jobs { display: grid; gap: 9px; margin: 14px 0; }
.nutrition-scan-jobs[hidden] { display: none; }
.nutrition-scan-job { display: grid; gap: 11px; padding: 13px; border: 1px solid #34373c; border-radius: 15px; background: rgba(255,255,255,.045); }
.nutrition-scan-job-heading { display: grid; grid-template-columns: 38px minmax(0,1fr) auto; align-items: center; gap: 12px; }
.nutrition-scan-job-heading > i { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 50%; background: rgba(232,41,41,.16); color: var(--accent-bright); }
.nutrition-scan-job-heading > i svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.9; }
.nutrition-scan-job-heading > span { display: grid; min-width: 0; gap: 3px; }
.nutrition-scan-job-heading b { overflow: hidden; font: italic 850 .88rem var(--font-display); text-overflow: ellipsis; white-space: nowrap; }
.nutrition-scan-job-heading small { overflow: hidden; color: var(--secondary); font-size: .7rem; text-overflow: ellipsis; white-space: nowrap; }
.nutrition-scan-job-heading > strong { min-width: 40px; color: var(--secondary); font: italic 850 .75rem var(--font-display); text-align: right; }
.nutrition-scan-progress { position: relative; overflow: hidden; height: 7px; border-radius: 999px; background: #2b2d31; }
.nutrition-scan-progress > i { position: relative; display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,#ed282f,#ff555a); transition: width .32s ease; }
.nutrition-scan-job.is-running .nutrition-scan-progress > i::after,.nutrition-scan-job.is-queued .nutrition-scan-progress > i::after { content: ""; position: absolute; inset: 0; width: 48%; background: linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent); animation: nutrition-scan-shimmer 1.25s ease-in-out infinite; }
.nutrition-scan-job > p { margin: -1px 0 0 50px; color: var(--warning); font-size: .67rem; line-height: 1.45; }
.nutrition-scan-job.is-completed .nutrition-scan-job-heading > i { color: var(--success); background: rgba(68,207,143,.16); }
.nutrition-scan-job.is-completed .nutrition-scan-progress > i { background: var(--success); }
.nutrition-scan-job.is-failed .nutrition-scan-job-heading > i { color: var(--warning); background: rgba(250,187,51,.14); }
.nutrition-scan-job.is-failed .nutrition-scan-progress > i { background: var(--warning); }
.nutrition-scan-review-button,.nutrition-scan-dismiss-button { min-height: 34px; border: 0; cursor: pointer; }
.nutrition-scan-review-button { padding: 0 13px; border-radius: 17px; background: rgba(68,207,143,.14); color: var(--success); font: italic 850 .72rem var(--font-display); }
.nutrition-scan-dismiss-button { display: grid; width: 34px; padding: 0; place-items: center; border-radius: 50%; background: rgba(255,255,255,.055); color: var(--secondary); font-size: 1rem; }
@keyframes nutrition-scan-shimmer { from { transform: translateX(-140%); } to { transform: translateX(270%); } }

/* Native AI Meal Scan parity. */
.modal.nutrition-meal-modal { width: min(720px,calc(100vw - 24px)); max-width: 720px; max-height: min(96dvh,940px); padding: 0; overflow: hidden; border: 1px solid #24272c; border-radius: 32px; background: #090a0d; box-shadow: 0 28px 90px rgba(0,0,0,.72); }
.nutrition-meal-ai { display: grid; grid-template-rows: auto minmax(0,1fr) auto; max-height: min(96dvh,940px); color: #f7f7f8; }
.meal-ai-header { display: grid; grid-template-columns: 58px minmax(0,1fr) 58px; align-items: center; gap: 18px; padding: 16px 18px 14px; border-bottom: 1px solid rgba(255,255,255,.025); background: linear-gradient(180deg,#0b0c0f 0%,#090a0d 100%); }
.meal-ai-round-button { display: grid; width: 58px; height: 58px; padding: 0; place-items: center; border: 1px solid #34373d; border-radius: 50%; background: #25272b; color: white; cursor: pointer; }
.meal-ai-round-button:hover { border-color: #4b4e55; background: #2d3035; }
.meal-ai-round-button svg { width: 27px; height: 27px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-width: 2.2; }
.meal-ai-title { display: flex; min-height: 58px; align-items: center; justify-content: center; gap: 13px; padding: 0 20px; border-radius: 30px; background: #202226; }
.meal-ai-title svg { width: 30px; height: 30px; fill: none; stroke: var(--accent-bright); stroke-width: 1.8; }
.meal-ai-title h2 { margin: 0; font: italic 880 1.42rem/1 var(--font-display); letter-spacing: -.02em; }
.meal-ai-scroll { display: grid; gap: 16px; padding: 18px; overflow-y: auto; overscroll-behavior: contain; }
.meal-ai-card { padding: 28px 30px; border: 1px solid #2c2f34; border-radius: 20px; background: #121417; }
.meal-ai-card > h3 { margin: 0; font: italic 900 1.86rem/1.05 var(--font-display); letter-spacing: -.025em; }
.meal-ai-intro { max-width: 590px; margin: 12px 0 23px; color: #c4c4c8; font-size: .9rem; line-height: 1.48; }
.meal-ai-section-title { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; margin: 18px 0 13px; }
.meal-ai-section-title h4 { margin: 0; font: italic 880 1.48rem/1 var(--font-display); }
.meal-ai-section-title span { color: #c5c5c9; font-size: 1.25rem; font-variant-numeric: tabular-nums; }
.meal-ai-photo-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.meal-ai-photo-actions button { display: flex; min-height: 78px; align-items: center; justify-content: center; gap: 14px; padding: 15px; border: 1px solid #383b41; border-radius: 16px; background: #27292d; color: #f7f7f8; cursor: pointer; }
.meal-ai-photo-actions button:hover:not(:disabled) { border-color: #55585f; background: #303237; }
.meal-ai-photo-actions button:disabled { opacity: .32; cursor: default; }
.meal-ai-photo-actions svg { width: 31px; height: 31px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.meal-ai-photo-actions b { font: italic 850 1.12rem var(--font-display); }
.meal-ai-previews { display: flex; gap: 12px; margin-top: 14px; overflow-x: auto; }
.meal-ai-previews figure { position: relative; flex: 0 0 76px; height: 76px; margin: 0; overflow: visible; border: 1px solid #41444a; border-radius: 14px; background: #202226; }
.meal-ai-previews img { width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }
.meal-ai-previews button { position: absolute; top: -7px; right: -7px; display: grid; width: 25px; height: 25px; padding: 0; place-items: center; border: 2px solid #121417; border-radius: 50%; background: #e82929; color: white; cursor: pointer; }
.meal-ai-previews button svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 2.2; }
.meal-ai-previews figcaption { position: absolute; right: 5px; bottom: 5px; display: grid; min-width: 20px; height: 20px; place-items: center; border-radius: 10px; background: rgba(0,0,0,.72); color: white; font-size: .54rem; font-weight: 800; }
#meal-description { width: 100%; min-height: 150px; resize: vertical; padding: 18px 19px; border: 1px solid #373a40; border-radius: 16px; outline: none; background: #292b2f; color: white; font: 500 .92rem/1.45 var(--font-body); }
#meal-description::placeholder { color: #c4c4c7; opacity: 1; }
#meal-description:focus,.meal-ai-context input:focus,.meal-ai-context textarea:focus { border-color: rgba(247,52,58,.8); box-shadow: 0 0 0 3px rgba(232,41,41,.12); }
.meal-ai-readiness { display: flex; min-height: 48px; align-items: center; gap: 13px; margin-top: 16px; padding: 11px 14px; border: 1px solid #303339; border-radius: 13px; background: #1b1d20; color: #c1c1c5; font-size: .75rem; }
.meal-ai-readiness svg { width: 22px; height: 22px; flex: 0 0 22px; fill: none; stroke: var(--accent-bright); stroke-width: 2; }
.meal-ai-readiness[data-ready="true"] { border-color: rgba(68,207,143,.32); color: #d8f5e7; }
.meal-ai-readiness[data-ready="true"] svg { stroke: #45cf90; }
.meal-ai-disclosure { display: grid; grid-template-columns: 48px minmax(0,1fr) 22px; width: 100%; min-height: 78px; align-items: center; gap: 14px; margin-top: 18px; padding: 13px 16px; border: 1px solid #34373c; border-radius: 16px; background: #1d1f22; color: white; text-align: left; cursor: pointer; }
.meal-ai-disclosure > i { display: grid; width: 45px; height: 45px; place-items: center; border-radius: 50%; background: rgba(232,41,41,.2); color: var(--accent-bright); }
.meal-ai-disclosure > i svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.meal-ai-disclosure > span { display: grid; gap: 4px; }
.meal-ai-disclosure b { font: italic 850 .96rem var(--font-display); }
.meal-ai-disclosure small { color: #b8b8bc; font-size: .7rem; line-height: 1.35; }
.meal-ai-disclosure .meal-ai-chevron { width: 20px; height: 20px; fill: none; stroke: white; stroke-width: 2.2; transition: transform .18s ease; }
.meal-ai-disclosure[aria-expanded="true"] .meal-ai-chevron { transform: rotate(90deg); }
.meal-ai-context { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 13px; margin-top: 14px; padding: 17px; border: 1px solid #31343a; border-radius: 16px; background: rgba(0,0,0,.18); }
.meal-ai-context label { display: grid; gap: 7px; color: #d3d3d6; font-size: .65rem; font-weight: 800; }
.meal-ai-context input,.meal-ai-context textarea { width: 100%; min-width: 0; padding: 12px 13px; border: 1px solid #36393f; border-radius: 11px; outline: none; background: #24262a; color: white; font: 500 .72rem/1.35 var(--font-body); }
.meal-ai-context label:nth-last-child(-n+2) { grid-column: 1 / -1; }
.meal-ai-context textarea { resize: vertical; }
.meal-ai-warning { display: flex; align-items: flex-start; gap: 12px; padding: 15px 17px; border: 1px solid rgba(250,187,51,.28); border-radius: 15px; background: rgba(250,187,51,.07); color: #d5c8a4; }
.meal-ai-warning svg { width: 21px; height: 21px; flex: 0 0 21px; fill: none; stroke: #fabb33; stroke-width: 1.8; }
.meal-ai-warning p { margin: 0; font-size: .68rem; line-height: 1.46; }
.meal-ai-error { padding: 15px 17px; border: 1px solid rgba(255,73,73,.42); border-radius: 15px; background: rgba(140,15,24,.15); }
.meal-ai-error b { color: #ff6565; font: italic 850 .78rem var(--font-display); }
.meal-ai-error p { margin: 5px 0 0; color: #ffc5c5; font-size: .67rem; line-height: 1.4; }
.meal-ai-footer { padding: 14px 18px calc(14px + env(safe-area-inset-bottom)); border-top: 1px solid #2b2d32; background: rgba(31,32,35,.96); backdrop-filter: blur(20px); }
.meal-ai-footer button { display: flex; width: 100%; min-height: 68px; align-items: center; justify-content: center; gap: 10px; border: 0; border-radius: 16px; background: linear-gradient(100deg,#ff3b40,#a91822); color: white; cursor: pointer; font: italic 900 1.18rem var(--font-display); box-shadow: 0 10px 28px rgba(214,30,38,.18); }
.meal-ai-footer button:disabled { background: #3a3b3e; color: #747579; cursor: default; box-shadow: none; }
.meal-ai-footer .button-spinner { display: none; }
.meal-ai-footer button.is-loading .button-spinner { display: inline-block; }

@media (max-width: 600px) {
  .modal.nutrition-meal-modal { width: 100%; max-height: 98dvh; border-right: 0; border-bottom: 0; border-left: 0; border-radius: 30px 30px 0 0; }
  .nutrition-meal-ai { max-height: 98dvh; }
  .meal-ai-header { grid-template-columns: 54px minmax(0,1fr) 54px; gap: 10px; padding: 12px 12px 10px; }
  .meal-ai-round-button { width: 54px; height: 54px; }
  .meal-ai-title { min-height: 54px; padding-inline: 10px; }
  .meal-ai-title h2 { font-size: 1.08rem; }
  .meal-ai-title svg { width: 25px; height: 25px; }
  .meal-ai-scroll { padding: 12px; }
  .meal-ai-card { padding: 21px 18px; }
  .meal-ai-card > h3 { font-size: 1.55rem; }
  .meal-ai-intro { font-size: .78rem; }
  .meal-ai-photo-actions { gap: 9px; }
  .meal-ai-photo-actions button { min-height: 70px; gap: 9px; padding-inline: 9px; }
  .meal-ai-photo-actions b { font-size: .9rem; }
  .meal-ai-photo-actions svg { width: 27px; height: 27px; }
  .meal-ai-section-title h4 { font-size: 1.25rem; }
  .meal-ai-section-title span { font-size: 1.05rem; }
  #meal-description { min-height: 138px; font-size: .82rem; }
  .meal-ai-context { grid-template-columns: 1fr; }
  .meal-ai-context label:nth-last-child(-n+2) { grid-column: auto; }
  .meal-ai-footer { padding: 12px 12px calc(12px + env(safe-area-inset-bottom)); }
  .meal-ai-footer button { min-height: 62px; }
  .native-food-row { grid-template-columns: 39px minmax(0,1fr) 31px 37px 37px; gap: 6px; min-height: 78px; }
  .native-food-row > strong { display: none; }
  .native-food-row > .food-entry-main,.native-food-row > .food-row-icon { grid-column: auto; }
  .native-food-row > .food-row-icon { width: 35px; height: 35px; }
  .food-actions button b { margin-left: 0; }
}

/* Fuel plan, bodyweight, and detailed nutrition — mirrors the native disclosure sections. */
.nutrition-native-sections { display: grid; gap: 14px; }
.nutrition-disclosure { overflow: hidden; border: 1px solid #2b2d31; border-radius: 19px; background: #131518; }
.nutrition-disclosure > header { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: stretch; }
.nutrition-disclosure-toggle { display: flex; min-width: 0; min-height: 84px; align-items: center; justify-content: space-between; gap: 18px; padding: 18px 23px; border: 0; background: transparent; color: #fff; text-align: left; cursor: pointer; }
.nutrition-disclosure-toggle > span { display: grid; min-width: 0; gap: 5px; }
.nutrition-disclosure-toggle b { font: italic 900 1.42rem/1 var(--font-display); }
.nutrition-disclosure-toggle small { overflow: hidden; color: #a9abb1; font-size: .76rem; text-overflow: ellipsis; white-space: nowrap; }
.nutrition-disclosure-toggle > svg { width: 22px; height: 22px; flex: 0 0 22px; fill: none; stroke: #d4d5d8; stroke-width: 2.2; transition: transform .18s ease; }
.nutrition-disclosure.is-open .nutrition-disclosure-toggle > svg { transform: rotate(90deg); }
.nutrition-section-info { display: grid; width: 62px; place-items: center; border: 0; border-left: 1px solid #2d3035; background: transparent; color: var(--accent-bright); cursor: pointer; }
.nutrition-section-info svg { width: 27px; height: 27px; fill: none; stroke: currentColor; stroke-width: 2; }
.nutrition-section-body { display: grid; gap: 15px; padding: 0 22px 22px; border-top: 1px solid #292c31; }
.nutrition-section-body[hidden] { display: none; }

.nutrition-plan-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; padding-top: 20px; }
.nutrition-plan-summary > span,.nutrition-macro-insights > span,.nutrition-weight-stats > span { display: grid; min-width: 0; gap: 4px; padding: 14px; border: 1px solid #303339; border-radius: 14px; background: #1c1e22; }
.nutrition-plan-summary small,.nutrition-macro-insights small,.nutrition-weight-stats small { color: #888b91; font: italic 780 .65rem var(--font-display); text-transform: uppercase; }
.nutrition-plan-summary b,.nutrition-macro-insights b,.nutrition-weight-stats b { color: white; font: italic 850 .96rem var(--font-display); }
.nutrition-plan-form { display: grid; gap: 18px; }
.nutrition-plan-form fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.nutrition-plan-form legend,.nutrition-plan-weight > span { margin-bottom: 9px; color: #f3f3f4; font: italic 850 .9rem var(--font-display); }
.nutrition-plan-form fieldset > p,.nutrition-plan-weight > small { margin: 9px 2px 0; color: #93959a; font-size: .68rem; line-height: 1.4; }
.nutrition-segmented { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 5px; padding: 5px; border: 1px solid #303338; border-radius: 15px; background: #1a1c20; }
.nutrition-segmented label,.nutrition-ease-options label { position: relative; cursor: pointer; }
.nutrition-segmented input,.nutrition-ease-options input { position: absolute; opacity: 0; pointer-events: none; }
.nutrition-segmented span { display: grid; min-height: 48px; place-items: center; border: 1px solid transparent; border-radius: 11px; color: #9da0a6; font: italic 850 .78rem var(--font-display); }
.nutrition-segmented label.is-selected span { border-color: #d52f38; background: linear-gradient(110deg,rgba(235,42,50,.36),rgba(111,17,24,.5)); color: white; }
#nutrition-rate { width: 100%; accent-color: var(--accent-bright); }
.nutrition-range-labels { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 4px; margin-top: 4px; }
.nutrition-range-labels span { color: #777a80; font: italic 700 .58rem var(--font-display); text-align: center; }
.nutrition-range-labels span.is-selected { color: var(--accent-bright); }
.nutrition-ease-options { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; }
.nutrition-ease-options label > span { display: grid; min-height: 76px; align-content: center; gap: 5px; padding: 12px; border: 1px solid #303339; border-radius: 14px; background: #1b1d21; }
.nutrition-ease-options b { color: #d7d8db; font: italic 820 .79rem var(--font-display); }
.nutrition-ease-options small { color: #85888e; font-size: .6rem; line-height: 1.3; }
.nutrition-ease-options label.is-selected > span { border-color: #d32d36; background: rgba(197,33,42,.14); }
.nutrition-ease-options label.is-selected b { color: white; }
.nutrition-plan-weight { display: grid; }
.nutrition-plan-weight[hidden],.nutrition-plan-form fieldset[hidden] { display: none; }
.nutrition-plan-weight input,.nutrition-weight-form input { width: 100%; min-height: 49px; border: 1px solid #35383e; border-radius: 12px; outline: none; background: #0c0d10; color: white; padding: 0 14px; }
.nutrition-plan-weight input:focus,.nutrition-weight-form input:focus { border-color: #d83039; box-shadow: 0 0 0 3px rgba(216,48,57,.1); }
.nutrition-macro-insights { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; }
.nutrition-plan-adjustment { padding: 14px 16px; border: 1px solid rgba(239,40,52,.3); border-radius: 14px; background: rgba(175,25,36,.1); }
.nutrition-plan-adjustment b { color: #ff545d; font: italic 850 .82rem var(--font-display); }
.nutrition-plan-adjustment p { margin: 6px 0 0; color: #b7b8bd; font-size: .66rem; line-height: 1.45; }
.nutrition-rate-summary { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; margin-bottom: 9px; }
.nutrition-rate-summary > b { color: white; font: italic 850 1rem var(--font-display); }
.nutrition-rate-summary > span { color: #d4d5d8; font: italic 750 .7rem var(--font-display); text-align: right; }
.nutrition-rate-summary small { color: #85888e; font: 600 .62rem var(--font-body); }
.nutrition-goal-progress { display: grid; gap: 10px; }
.nutrition-goal-progress > div { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.nutrition-goal-progress span { display: grid; gap: 4px; padding: 12px; border: 1px solid #303339; border-radius: 13px; background: rgba(255,255,255,.035); }
.nutrition-goal-progress small { color: #898c92; font: italic 780 .62rem var(--font-display); text-transform: uppercase; }
.nutrition-goal-progress b { color: white; font: italic 850 .82rem var(--font-display); }
.nutrition-goal-progress p,.nutrition-plan-guardrail { margin: 0; padding: 13px 14px; border: 1px solid #303339; border-radius: 13px; background: rgba(255,255,255,.035); color: #aaacb1; font-size: .66rem; line-height: 1.45; }
.nutrition-plan-guardrail { border-color: rgba(74,209,135,.25); background: rgba(74,209,135,.06); }
.nutrition-plan-guardrail b { display: block; margin-bottom: 5px; color: #4ad187; font: italic 850 .74rem var(--font-display); }
.nutrition-plan-guardrail p { margin: 0; }
.nutrition-save-plan { width: 100%; }
.nutrition-plan-explainer { display: grid; gap: 10px; margin-bottom: 17px; }
.nutrition-plan-explainer p { display: grid; gap: 4px; margin: 0; padding: 14px; border: 1px solid #303339; border-radius: 13px; background: #181a1e; }
.nutrition-plan-explainer b { color: white; font: italic 850 .84rem var(--font-display); }
.nutrition-plan-explainer span { color: #a9abb0; font-size: .7rem; line-height: 1.45; }

.nutrition-weight-panel { margin-top: 20px; padding: 20px; border: 1px solid #303339; border-radius: 17px; background: #191b1f; }
.nutrition-weight-panel + .nutrition-weight-panel { margin-top: 0; }
.nutrition-panel-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.nutrition-panel-heading > div { display: grid; gap: 3px; }
.nutrition-panel-heading p { margin: 0; color: var(--accent-bright); font: italic 800 .65rem var(--font-display); letter-spacing: .05em; }
.nutrition-panel-heading h3 { margin: 0; color: white; font: italic 900 1.35rem/1 var(--font-display); }
.nutrition-panel-heading small { color: #93969c; font-size: .65rem; }
.nutrition-panel-heading > b { padding: 7px 10px; border-radius: 999px; background: #272a2f; color: #c5c7cb; font: italic 750 .65rem var(--font-display); }
.nutrition-weight-setup { padding: 22px 17px; border: 1px dashed #3a3d43; border-radius: 14px; text-align: center; }
.nutrition-weight-setup b { color: #e1e2e4; font: italic 800 .78rem var(--font-display); }
.nutrition-weight-setup p { margin: 6px 0 0; color: #85888e; font-size: .65rem; }
.nutrition-weight-stats { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin-top: 13px; }
.nutrition-weight-chart { height: 150px; margin-top: 13px; overflow: hidden; border: 1px solid #2b2e33; border-radius: 13px; background: rgba(255,255,255,.025); }
.nutrition-weight-chart svg { display: block; width: 100%; height: 100%; }
.nutrition-weight-chart .weight-grid { fill: none; stroke: rgba(255,255,255,.07); stroke-width: 1; }
.nutrition-weight-chart .weight-area { fill: url(#nutrition-weight-fill); }
.nutrition-weight-chart .weight-line { fill: none; stroke: var(--weight-chart); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.nutrition-weight-chart .weight-point { fill: var(--weight-chart); stroke: white; stroke-width: 2; }
.nutrition-weight-chart text { fill: #7d8087; font: italic 700 8px var(--font-display); }
.nutrition-weight-form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.nutrition-weight-form label { display: grid; gap: 7px; color: #c9cace; font-size: .67rem; font-weight: 750; }
.nutrition-weight-form > div { display: grid; grid-column: 1/-1; grid-template-columns: 1fr 1.5fr; gap: 10px; }
.nutrition-reminder-panel { display: grid; gap: 13px; }
.nutrition-reminder-heading { display: grid; grid-template-columns: 34px minmax(0,1fr) auto; align-items: center; gap: 11px; }
.nutrition-reminder-heading > i { display: grid; width: 32px; height: 32px; place-items: center; border-radius: 50%; background: rgba(255,255,255,.05); color: var(--accent-bright); }
.nutrition-reminder-heading > i svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 2; }
.nutrition-reminder-heading > span { display: grid; gap: 3px; }
.nutrition-reminder-heading b { color: white; font: italic 850 .88rem var(--font-display); }
.nutrition-reminder-heading small { color: #92959b; font-size: .62rem; }
.nutrition-reminder-switch { position: relative; display: block; width: 45px; height: 27px; cursor: pointer; }
.nutrition-reminder-switch input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.nutrition-reminder-switch span { position: absolute; inset: 0; border-radius: 999px; background: #34363b; transition: background .18s ease; }
.nutrition-reminder-switch span::after { content: ""; position: absolute; top: 3px; left: 3px; width: 21px; height: 21px; border-radius: 50%; background: white; box-shadow: 0 1px 4px rgba(0,0,0,.45); transition: transform .18s ease; }
.nutrition-reminder-switch input:checked + span { background: var(--accent); }
.nutrition-reminder-switch input:checked + span::after { transform: translateX(18px); }
.nutrition-reminder-switch input:focus-visible + span { outline: 2px solid white; outline-offset: 3px; }
.nutrition-reminder-controls { display: grid; gap: 11px; }
.nutrition-reminder-controls[hidden] { display: none; }
.nutrition-reminder-controls > label { display: grid; gap: 7px; color: #c9cace; font-size: .67rem; font-weight: 750; }
.nutrition-reminder-controls input[type="time"] { width: 100%; min-height: 47px; border: 1px solid #35383e; border-radius: 12px; background: #0c0d10; color: white; padding: 0 13px; color-scheme: dark; }
.nutrition-reminder-controls > div { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }
.nutrition-reminder-controls > div button { min-height: 36px; border: 1px solid #303339; border-radius: 13px; background: rgba(255,255,255,.035); color: #9b9da3; font: italic 780 .64rem var(--font-display); cursor: pointer; }
.nutrition-reminder-controls > div button.is-selected { border-color: rgba(232,41,41,.55); background: rgba(232,41,41,.13); color: white; }
.nutrition-reminder-controls > p { margin: 0; color: #777a81; font-size: .59rem; line-height: 1.4; }
.nutrition-weight-logs { display: grid; }
.nutrition-weight-logs > button { display: grid; grid-template-columns: minmax(0,1fr) auto 20px; min-height: 62px; align-items: center; gap: 12px; border: 0; border-bottom: 1px solid #303339; background: transparent; color: white; text-align: left; cursor: pointer; }
.nutrition-weight-logs > button:last-child { border-bottom: 0; }
.nutrition-weight-logs span { display: grid; gap: 3px; }
.nutrition-weight-logs b { font: italic 780 .76rem var(--font-display); }
.nutrition-weight-logs small { color: #85888e; font-size: .6rem; }
.nutrition-weight-logs strong { font: italic 850 .82rem var(--font-display); }
.nutrition-weight-logs svg { width: 19px; height: 19px; fill: none; stroke: #a3a5aa; stroke-width: 2; }

.nutrition-detail-group { display: grid; gap: 11px; margin-top: 20px; }
.nutrition-detail-group + .nutrition-detail-group { margin-top: 5px; }
.nutrition-detail-group > h3 { margin: 0; color: #f4f4f5; font: italic 900 1.25rem var(--font-display); }
.nutrition-detail-group > div { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.nutrition-detail-card { position: relative; display: grid; grid-template-columns: minmax(0,1fr) auto 17px; align-items: start; gap: 9px; min-height: 118px; padding: 15px; border: 1px solid #303339; border-radius: 15px; background: #1b1d21; color: white; text-align: left; cursor: pointer; }
.nutrition-detail-card > span { display: grid; min-width: 0; gap: 5px; }
.nutrition-detail-card > span b { overflow: hidden; font: italic 800 .78rem var(--font-display); text-overflow: ellipsis; white-space: nowrap; }
.nutrition-detail-card > span small,.nutrition-detail-card > small { color: #8d9096; font-size: .58rem; }
.nutrition-detail-card > strong { font: italic 900 1rem var(--font-display); white-space: nowrap; }
.nutrition-detail-card > strong small { color: #a8aab0; font: 600 .58rem var(--font-body); }
.nutrition-detail-card > svg { width: 17px; height: 17px; fill: none; stroke: #9da0a6; stroke-width: 2; }
.nutrition-detail-card > i,.nutrition-metric-summary > i { position: relative; grid-column: 1/-1; display: block; height: 5px; overflow: hidden; border-radius: 4px; background: #303339; }
.nutrition-detail-card > i em,.nutrition-metric-summary > i em { display: block; width: var(--metric-progress); height: 100%; border-radius: inherit; background: var(--metric-color, #ef2834); }
.nutrition-detail-card > i mark { position: absolute; left: 80%; top: 0; width: 3px; height: 100%; background: rgba(255,255,255,.35); }
.nutrition-detail-card:hover { border-color: #44474d; background: #202226; }
.nutrition-creatine-control { display: grid; grid-template-columns: 38px minmax(0,1fr) auto 36px auto; align-items: center; gap: 10px; padding: 12px; border: 1px solid #303339; border-radius: 14px; background: rgba(255,255,255,.035); }
.nutrition-creatine-control > i { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 50%; background: color-mix(in srgb,var(--metric-color) 15%,transparent); color: var(--metric-color); }
.nutrition-creatine-control svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; }
.nutrition-creatine-control > span { display: grid; gap: 2px; }
.nutrition-creatine-control > span b { color: white; font: italic 800 .78rem var(--font-display); }
.nutrition-creatine-control > span small { color: #898c92; font-size: .59rem; }
.nutrition-creatine-control label { display: flex; align-items: center; gap: 5px; }
.nutrition-creatine-control input { width: 70px; height: 36px; border: 1px solid #34373c; border-radius: 10px; background: rgba(255,255,255,.04); color: white; padding: 0 9px; text-align: right; }
.nutrition-creatine-control label small { color: #999ca2; font: italic 700 .64rem var(--font-display); }
.nutrition-creatine-control > button { display: grid; width: 34px; height: 34px; place-items: center; border: 0; border-radius: 50%; background: var(--accent); color: white; font-weight: 900; cursor: pointer; }
.nutrition-creatine-control > button.is-delete { background: rgba(255,255,255,.05); color: #ff5b63; }
.nutrition-creatine-control > button.is-delete svg { width: 15px; height: 15px; }
.chart[style*="--chart-color"] .chart-bar { background: var(--chart-color); opacity: .76; }
.nutrition-trend-header .eyebrow,.nutrition-trend-header + .nutrition-range-tabs + .nutrition-metric-summary > div strong { color: var(--metric-color); }
.nutrition-range-tabs { display: flex; gap: 7px; margin: 0 0 16px; overflow-x: auto; }
.nutrition-range-tabs button { flex: 0 0 auto; min-height: 34px; padding: 0 13px; border: 1px solid #303339; border-radius: 999px; background: rgba(255,255,255,.04); color: #b5b7bc; font: italic 750 .64rem var(--font-display); cursor: pointer; }
.nutrition-range-tabs button.is-selected { border-color: white; background: white; color: #090a0d; }
.nutrition-trend-stats { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin-bottom: 12px; }
.nutrition-trend-stats span { display: grid; gap: 4px; min-width: 0; padding: 11px; border-radius: 12px; background: rgba(255,255,255,.045); }
.nutrition-trend-stats small { color: #85888e; font: italic 700 .58rem var(--font-display); text-transform: uppercase; }
.nutrition-trend-stats b { overflow: hidden; color: white; font: italic 800 .72rem var(--font-display); text-overflow: ellipsis; white-space: nowrap; }
.nutrition-trend-modal { width: min(640px,100%); overflow-x: hidden; }
.nutrition-trend-modal * { min-width: 0; }
.nutrition-trend-modal #nutrition-trend-history { width: 100%; max-width: 100%; overflow: hidden; }
.nutrition-metric-chart-heading { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 10px 15px; max-width: 100%; }
.nutrition-metric-chart-heading span { display: grid; min-width: 0; gap: 3px; }
.nutrition-metric-chart-heading span:last-child { text-align: right; }
.nutrition-metric-chart-heading small { color: #85888e; font: italic 700 .6rem var(--font-display); text-transform: uppercase; }
.nutrition-metric-chart-heading b { overflow-wrap: anywhere; color: white; font: italic 850 .82rem var(--font-display); }
.nutrition-metric-chart-heading span:last-child b { color: var(--metric-color); }
.nutrition-recorded-days-note { margin: 10px 2px 18px; color: #777a81; font-size: .61rem; }
.nutrition-metric-summary,.nutrition-metric-history { display: grid; width: 100%; max-width: 100%; min-width: 0; gap: 13px; margin-bottom: 15px; padding: 19px; overflow: hidden; border: 1px solid #303339; border-radius: 16px; background: #181a1e; }
.nutrition-metric-summary > span { display: flex; align-items: baseline; gap: 8px; }
.nutrition-metric-summary > span strong { min-width: 0; overflow-wrap: anywhere; color: white; font: italic 900 clamp(2rem,9vw,3rem)/.9 var(--font-display); }
.nutrition-metric-summary > span small { color: #aaa; }
.nutrition-metric-summary > div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 12px; color: #aaa; font-size: .7rem; }
.nutrition-metric-summary > div strong { color: white; }
.nutrition-metric-summary p { margin: 0; color: #92959b; font-size: .66rem; }
.nutrition-metric-history h3 { margin: 0; font: italic 850 1.05rem var(--font-display); }
.nutrition-line-chart { position: relative; width: 100%; max-width: 100%; min-width: 0; padding: 4px 0 0; overflow: hidden; border-radius: 12px; background: linear-gradient(180deg,rgba(255,255,255,.025),rgba(255,255,255,.008)); }
.nutrition-line-chart svg { display: block; width: 100%; max-width: 100%; height: auto; overflow: hidden; touch-action: manipulation; }
.nutrition-chart-grid { stroke: rgba(255,255,255,.085); stroke-width: 1; vector-effect: non-scaling-stroke; }
.nutrition-chart-axis-label,.nutrition-chart-date-label,.nutrition-chart-target-label { fill: #85888e; font-family: var(--font-ui); font-size: 11px; font-weight: 700; }
.nutrition-chart-date-label { fill: #9b9da3; }
.nutrition-chart-target { stroke: var(--metric-color); stroke-width: 1.5; stroke-dasharray: 5 5; opacity: .62; vector-effect: non-scaling-stroke; }
.nutrition-chart-target-label { fill: var(--metric-color); font-style: italic; text-transform: uppercase; }
.nutrition-chart-area { pointer-events: none; }
.nutrition-chart-line { fill: none; stroke: var(--metric-color); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.nutrition-chart-point { fill: #181a1e; stroke: var(--metric-color); stroke-width: 3; cursor: pointer; outline: none; vector-effect: non-scaling-stroke; transition: r .16s ease,fill .16s ease; }
.nutrition-chart-point:hover,.nutrition-chart-point:focus,.nutrition-chart-point.is-active { r: 7px; fill: var(--metric-color); }
.nutrition-chart-tooltip { position: absolute; z-index: 2; top: 10px; left: 50%; display: grid; gap: 2px; max-width: calc(100% - 20px); padding: 7px 10px; border: 1px solid color-mix(in srgb,var(--metric-color) 55%,#444); border-radius: 9px; background: rgba(8,9,12,.94); box-shadow: 0 8px 24px rgba(0,0,0,.35); color: white; pointer-events: none; transform: translateX(-50%); }
.nutrition-chart-tooltip[hidden] { display: none; }
.nutrition-chart-tooltip b { overflow: hidden; font-size: .6rem; text-overflow: ellipsis; white-space: nowrap; }
.nutrition-chart-tooltip span { overflow: hidden; color: var(--metric-color); font: italic 800 .69rem var(--font-display); text-overflow: ellipsis; white-space: nowrap; }
.nutrition-chart-hint { margin: -3px 10px 10px; color: #777a81; font-size: .56rem; text-align: center; }

/* Full-depth nutrition editor shared with the native NutritionFoodEntry model. */
.modal.nutrition-food-editor-modal { width: min(820px,calc(100vw - 30px)); max-height: min(96dvh,1080px); padding: 0; overflow-x: hidden; border: 1px solid #303339; border-radius: 30px; background: #0b0c0f; box-shadow: 0 34px 110px rgba(0,0,0,.78); }
.nutrition-food-editor-modal * { min-width: 0; box-sizing: border-box; }
.nutrition-food-editor-shell { width: 100%; overflow: hidden; }
.nutrition-food-editor-shell > .modal-drag { margin: 13px auto 3px; }
.nutrition-food-editor-header { position: sticky; z-index: 4; top: 0; margin: 0; padding: 16px 22px 18px; border-bottom: 1px solid #292c31; background: rgba(11,12,15,.96); backdrop-filter: blur(18px); }
.nutrition-food-editor-header h3 { color: white; font: italic 900 clamp(1.45rem,4vw,2rem)/1 var(--font-display); text-transform: none; }
.nutrition-food-editor-header p:last-child { max-width: 560px; color: #999ca3; }
.nutrition-food-editor { display: grid; gap: 14px; padding: 18px 22px 0; }
.nutrition-editor-section,.nutrition-editor-disclosure,.nutrition-editor-review { width: 100%; overflow: hidden; border: 1px solid #303339; border-radius: 19px; background: #15171b; }
.nutrition-editor-section { padding: 18px; }
.nutrition-editor-section > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 16px; }
.nutrition-editor-section > header p { margin: 0 0 3px; color: var(--accent); font: italic 850 .65rem/1 var(--font-display); letter-spacing: .12em; }
.nutrition-editor-section > header h4 { margin: 0; color: white; font: italic 850 1.1rem/1.12 var(--font-display); }
.nutrition-editor-section > header > span,.nutrition-editor-section > header > small { flex: 0 0 auto; padding: 7px 9px; border-radius: 999px; background: rgba(255,255,255,.055); color: #aeb0b5; font-size: .6rem; font-weight: 750; }
.nutrition-editor-field-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 13px; width: 100%; }
.nutrition-editor-wide { grid-column: 1 / -1; }
.nutrition-editor-field { display: grid; align-content: start; gap: 7px; margin: 0; }
.nutrition-editor-field > span:first-child { color: #b9bbc0; font-size: .68rem; font-weight: 780; }
.nutrition-editor-field input,.nutrition-editor-field textarea { width: 100%; max-width: 100%; min-height: 48px; border: 1px solid #34373d; border-radius: 12px; outline: 0; background: #090a0d; color: white; padding: 0 13px; font: 650 .78rem var(--font-ui); transition: border-color .18s,box-shadow .18s; }
.nutrition-editor-field textarea { min-height: 130px; padding-block: 12px; line-height: 1.55; resize: vertical; }
.nutrition-editor-field input:focus,.nutrition-editor-field textarea:focus { border-color: rgba(239,37,52,.72); box-shadow: 0 0 0 3px rgba(239,37,52,.1); }
.nutrition-editor-number { position: relative; display: block; width: 100%; }
.nutrition-editor-number input { padding-right: 80px; }
.nutrition-editor-number small { position: absolute; top: 50%; right: 13px; max-width: 66px; overflow: hidden; color: #7f8288; font-size: .61rem; font-weight: 740; text-overflow: ellipsis; white-space: nowrap; pointer-events: none; transform: translateY(-50%); }
.nutrition-editor-totals { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; margin-top: 16px; padding-top: 15px; border-top: 1px solid #303339; }
.nutrition-editor-totals span { display: grid; gap: 4px; padding: 11px 10px; overflow: hidden; border-radius: 12px; background: rgba(255,255,255,.045); }
.nutrition-editor-totals small { overflow: hidden; color: #7f8288; font: italic 750 .52rem var(--font-display); text-overflow: ellipsis; white-space: nowrap; }
.nutrition-editor-totals b { overflow: hidden; color: white; font: italic 850 .78rem var(--font-display); text-overflow: ellipsis; white-space: nowrap; }
.nutrition-editor-disclosure > summary { display: grid; grid-template-columns: minmax(0,1fr) auto 22px; align-items: center; gap: 12px; min-height: 88px; padding: 16px 18px; list-style: none; cursor: pointer; user-select: none; }
.nutrition-editor-disclosure > summary::-webkit-details-marker { display: none; }
.nutrition-editor-disclosure > summary span { display: grid; gap: 3px; }
.nutrition-editor-disclosure > summary small { color: var(--accent); font: italic 800 .57rem var(--font-display); letter-spacing: .1em; }
.nutrition-editor-disclosure > summary b { color: white; font: italic 850 .98rem var(--font-display); }
.nutrition-editor-disclosure > summary em { color: #85888f; font-size: .62rem; font-style: normal; line-height: 1.4; }
.nutrition-editor-disclosure > summary strong { padding: 7px 9px; border-radius: 999px; background: rgba(255,255,255,.055); color: #a5a8ae; font-size: .58rem; white-space: nowrap; }
.nutrition-editor-disclosure > summary > i { color: #b8bac0; font-size: 1.25rem; font-style: normal; text-align: center; transition: transform .18s; }
.nutrition-editor-disclosure[open] > summary > i { transform: rotate(180deg); }
.nutrition-editor-disclosure-body { padding: 0 18px 18px; border-top: 1px solid #303339; }
.nutrition-editor-disclosure-body > .nutrition-editor-field-grid { padding-top: 17px; }
.nutrition-editor-subgroup { padding-top: 17px; }
.nutrition-editor-subgroup + .nutrition-editor-subgroup { margin-top: 17px; border-top: 1px solid #2b2e33; }
.nutrition-editor-subgroup h4 { margin: 0 0 12px; color: var(--accent); font: italic 820 .72rem var(--font-display); text-transform: uppercase; }
.nutrition-editor-review { padding: 14px 16px; border-color: rgba(255,184,56,.35); background: rgba(255,184,56,.075); }
.nutrition-editor-review b { color: #ffb838; font: italic 820 .76rem var(--font-display); }
.nutrition-editor-review p { margin: 4px 0 0; color: #c2b89e; font-size: .65rem; line-height: 1.5; }
.nutrition-editor-actions { position: sticky; z-index: 5; bottom: 0; display: flex; align-items: center; gap: 9px; margin: 4px -22px 0; padding: 15px 22px calc(17px + env(safe-area-inset-bottom)); border-top: 1px solid #303339; background: rgba(11,12,15,.96); backdrop-filter: blur(18px); }
.nutrition-editor-actions > span { flex: 1; }
.nutrition-editor-actions .danger-button.is-armed { border-color: #ff4650; background: #c81f2b; color: white; }

@media (max-width: 600px) {
  .nutrition-disclosure-toggle { min-height: 76px; padding: 16px 15px; }
  .nutrition-disclosure-toggle b { font-size: 1.18rem; }
  .nutrition-disclosure-toggle small { font-size: .65rem; }
  .nutrition-section-info { width: 50px; }
  .nutrition-section-body { padding: 0 12px 14px; }
  .nutrition-plan-summary { gap: 6px; padding-top: 14px; }
  .nutrition-plan-summary > span,.nutrition-macro-insights > span,.nutrition-weight-stats > span { padding: 10px 8px; }
  .nutrition-plan-summary b,.nutrition-macro-insights b,.nutrition-weight-stats b { font-size: .77rem; }
  .nutrition-ease-options { grid-template-columns: 1fr; }
  .nutrition-ease-options label > span { min-height: 59px; }
  .nutrition-weight-panel { margin-top: 14px; padding: 15px 12px; }
  .nutrition-weight-form { grid-template-columns: 1fr; }
  .nutrition-weight-form > div { grid-column: auto; }
  .nutrition-detail-group > div { grid-template-columns: 1fr; }
  .nutrition-detail-card { min-height: 105px; }
  .nutrition-trend-modal { padding-inline: 15px; }
  .nutrition-metric-summary,.nutrition-metric-history { padding: 15px 12px; }
  .nutrition-trend-stats { gap: 6px; }
  .nutrition-trend-stats span { padding: 9px 7px; }
  .nutrition-chart-axis-label,.nutrition-chart-date-label,.nutrition-chart-target-label { font-size: 12px; }
  .nutrition-creatine-control { grid-template-columns: 34px minmax(0,1fr) auto 34px; }
  .nutrition-creatine-control > button.is-delete { grid-column: 4; }
  .modal.nutrition-food-editor-modal { width: 100%; max-height: 98dvh; border-width: 1px 0 0; border-radius: 30px 30px 0 0; }
  .nutrition-food-editor-header { padding: 14px 15px 16px; }
  .nutrition-food-editor { gap: 11px; padding: 14px 13px 0; }
  .nutrition-editor-section { padding: 15px 13px; }
  .nutrition-editor-field-grid { grid-template-columns: 1fr; gap: 11px; }
  .nutrition-editor-wide { grid-column: auto; }
  .nutrition-editor-totals { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .nutrition-editor-disclosure > summary { grid-template-columns: minmax(0,1fr) auto 18px; gap: 8px; padding: 14px 13px; }
  .nutrition-editor-disclosure > summary em { max-width: 235px; }
  .nutrition-editor-disclosure-body { padding: 0 13px 15px; }
  .nutrition-editor-actions { margin-inline: -13px; padding-inline: 13px; }
  .nutrition-editor-actions .secondary-button { display: none; }
}
@media (max-width: 600px) {
  .pitch-design-context-grid,.pitch-design-summary { grid-template-columns: 1fr; }
  .pitch-design-context-head { align-items: flex-start; }
  .pitch-design-context-head > span { display: none; }
  .pitch-design-options p { align-items: flex-start; flex-direction: column; }
  .pitch-design-options p span { text-align: left; }
}

/* Coach template builder: exercise library mirrors the native section, sort, and grouping controls. */
.coach-builder-library-card { gap: 0; overflow: hidden; }
.coach-builder-library-heading { display: grid; grid-template-columns: 36px minmax(0,1fr) auto 20px; align-items: center; gap: 11px; width: 100%; padding: 0; border: 0; background: transparent; color: var(--primary); text-align: left; cursor: pointer; }
.coach-builder-library-heading > i { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 10px; background: var(--accent-soft); color: var(--accent-bright); font-style: normal; }
.coach-builder-library-heading > span { display: grid; gap: 3px; }
.coach-builder-library-heading b { font: italic 850 .98rem var(--font-display); }
.coach-builder-library-heading small { color: var(--secondary); font-size: .65rem; line-height: 1.4; }
.coach-builder-library-heading > em { min-width: 24px; padding: 4px 7px; border-radius: 999px; background: var(--surface-soft); color: var(--secondary); font: normal .62rem var(--font-body); text-align: center; }
.coach-builder-library-heading > strong { color: var(--tertiary); font-size: 1rem; text-align: center; }
.coach-builder-library-body { display: grid; gap: 12px; padding-top: 15px; }
.coach-builder-search { position: relative; display: grid; grid-template-columns: 18px minmax(0,1fr) auto; align-items: center; gap: 8px; min-height: 46px; margin: 0; padding: 0 12px; border: 1px solid var(--border); border-radius: 11px; background: var(--surface-chrome); }
.coach-builder-search > span { color: var(--tertiary); }
.coach-builder-search input { width: 100%; min-height: 42px; padding: 0; border: 0; outline: 0; background: transparent; color: var(--primary); }
.coach-builder-search button { display: grid; width: 22px; height: 22px; place-items: center; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--tertiary); font-size: 1.1rem; cursor: pointer; }
.coach-builder-library-sort { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 5px; padding: 5px; border: 1px solid var(--border); border-radius: 13px; background: var(--surface-chrome); }
.coach-builder-library-sort button { min-height: 38px; border: 0; border-radius: 9px; background: transparent; color: var(--secondary); font: italic 800 .64rem var(--font-display); cursor: pointer; }
.coach-builder-library-sort button.is-active { background: linear-gradient(180deg,#f62b3b,#d81727); color: #fff; }
.coach-builder-library-notice { display: grid; gap: 3px; margin: 0; padding: 11px 12px; border: 1px solid rgba(240,45,53,.26); border-radius: 11px; background: var(--accent-soft); }
.coach-builder-library-notice b { color: var(--accent-bright); font: italic 850 .61rem var(--font-display); letter-spacing: .08em; text-transform: uppercase; }
.coach-builder-library-notice span { color: var(--secondary); font-size: .62rem; line-height: 1.45; }
.coach-builder-library-group { display: grid; grid-template-columns: 15px auto minmax(10px,1fr) auto; align-items: center; gap: 7px; width: 100%; padding: 2px 0; border: 0; background: transparent; color: var(--secondary); text-align: left; cursor: pointer; }
.coach-builder-library-group:disabled { cursor: default; }
.coach-builder-library-group > i { color: var(--tertiary); font-style: normal; text-align: center; }
.coach-builder-library-group > b { color: var(--secondary); font: italic 800 .58rem var(--font-display); letter-spacing: .1em; text-transform: uppercase; }
.coach-builder-library-group > span { height: 1px; background: var(--border); }
.coach-builder-library-group > em { color: var(--tertiary); font: normal .6rem var(--font-body); }
.coach-builder-library-section { display: inline-flex; width: fit-content; padding: 3px 7px; border-radius: 999px; background: var(--accent-soft); color: var(--accent-bright) !important; font: italic 800 .5rem var(--font-display) !important; letter-spacing: .04em; }
.coach-builder-destination-head { display: grid; gap: 10px; }
.coach-builder-destination-head > span { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.coach-builder-destination-head b { color: var(--secondary); font-size: .68rem; }
.coach-builder-destination-head > span button { padding: 0; border: 0; background: transparent; color: var(--accent-bright); font: italic 800 .65rem var(--font-display); cursor: pointer; }
.coach-builder-destination-mode { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px; padding: 4px; border: 1px solid var(--border); border-radius: 11px; background: #17191d; }
.coach-builder-destination-mode button { min-height: 34px; padding: 0 8px; border: 0; border-radius: 8px; background: transparent; color: var(--secondary); font: italic 800 .58rem var(--font-display); cursor: pointer; }
.coach-builder-destination-mode button.is-active { background: var(--accent-soft); color: var(--primary); box-shadow: inset 0 0 0 1px rgba(240,45,53,.42); }
.coach-builder-destination-head small { color: var(--secondary); font-size: .6rem; line-height: 1.4; }

/* Native-style disclosures, progression choices, and form controls in the template builder. */
.coach-builder-section-heading { display: grid; grid-template-columns: 36px minmax(0,1fr) 20px; align-items: center; gap: 11px; width: 100%; padding: 0; border: 0; background: transparent; color: var(--primary); text-align: left; cursor: pointer; }
.coach-builder-section-heading > i { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 10px; background: var(--accent-soft); color: var(--accent-bright); font-style: normal; }
.coach-builder-section-heading > span { display: grid; gap: 3px; }
.coach-builder-section-heading > span b { font: italic 850 .98rem var(--font-display); }
.coach-builder-section-heading > span small { color: var(--secondary); font-size: .65rem; line-height: 1.4; }
.coach-builder-section-heading > strong { color: var(--tertiary); font-size: 1rem; text-align: center; }
.coach-builder-section-body { display: grid; gap: 14px; padding-top: 14px; }
.coach-builder-modal .coach-builder-section-body .form-grid { gap: 12px; }
.coach-builder-modal .field { gap: 6px; margin: 0; }
.coach-builder-modal .field > span:first-child { color: var(--secondary); font: italic 800 .61rem var(--font-display); letter-spacing: .045em; }
.coach-builder-modal .field input,.coach-builder-modal .field select,.coach-builder-modal .field textarea { border-color: var(--border-strong); background: var(--surface-chrome); box-shadow: inset 0 1px 0 rgba(255,255,255,.025); font-size: .76rem; }
.coach-builder-modal .field input,.coach-builder-modal .field select { min-height: 44px; }
.coach-builder-modal .field textarea { min-height: 92px; }
.coach-builder-modal .field input::placeholder,.coach-builder-modal .field textarea::placeholder { color: var(--tertiary); }
.coach-builder-modal .field input:focus,.coach-builder-modal .field select:focus,.coach-builder-modal .field textarea:focus { border-color: rgba(240,45,53,.76); box-shadow: 0 0 0 3px rgba(240,45,53,.12), inset 0 1px 0 rgba(255,255,255,.04); }
.coach-builder-compact-action { min-height: 38px; padding: 0 12px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface-soft); color: var(--secondary); font: italic 800 .63rem var(--font-display); cursor: pointer; }
.coach-builder-progression { gap: 12px; padding: 14px; }
.coach-builder-progression-heading { display: grid; grid-template-columns: 32px minmax(0,1fr); align-items: center; gap: 10px; }
.coach-builder-progression-heading > i { display: grid; width: 32px; height: 32px; place-items: center; border-radius: 8px; background: rgba(240,45,53,.14); color: var(--accent-bright); font-style: normal; }
.coach-builder-progression-heading span { display: grid; gap: 2px; }
.coach-builder-progression-heading b { color: var(--accent-bright); font: italic 850 .61rem var(--font-display); letter-spacing: .1em; }
.coach-builder-progression-heading small { color: var(--secondary); font-size: .62rem; }
.coach-builder-progression-options { display: grid; gap: 8px; }
.coach-builder-progression-options button { display: grid; grid-template-columns: 20px minmax(0,1fr); align-items: center; gap: 9px; width: 100%; min-height: 50px; padding: 8px 10px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface-chrome); color: var(--primary); text-align: left; cursor: pointer; }
.coach-builder-progression-options button.is-selected { border-color: rgba(240,45,53,.74); background: var(--accent-soft); }
.coach-builder-progression-options button > i { color: var(--accent-bright); font-style: normal; font-size: .95rem; }
.coach-builder-progression-options span { display: grid; gap: 2px; }
.coach-builder-progression-options b { color: var(--primary); font: italic 800 .7rem var(--font-display); }
.coach-builder-progression-options small { color: var(--secondary); font-size: .59rem; line-height: 1.35; }
.coach-builder-progression-explanation { display: grid; gap: 4px; margin: 0; padding: 10px 11px; border: 1px solid rgba(240,45,53,.24); border-radius: 10px; background: rgba(240,45,53,.06); }
.coach-builder-progression-explanation b { color: var(--accent-bright); font: italic 800 .61rem var(--font-display); }
.coach-builder-progression-explanation span { color: var(--secondary); font-size: .61rem; line-height: 1.45; }

@media (max-width: 600px) {
  .coach-builder-library-heading { grid-template-columns: 34px minmax(0,1fr) auto 18px; gap: 9px; }
  .coach-builder-library-heading > i { width: 34px; height: 34px; }
  .coach-builder-library-heading small { font-size: .6rem; }
  .coach-builder-library-body { padding-top: 13px; }
}

/* Template-builder controls follow the native Coach View's large, decisive touch targets. */
.coach-builder-head { background: linear-gradient(180deg,#0d0e11 0%,#090a0d 100%); }
.coach-builder-head h2 { font-size: clamp(1.85rem,4vw,2.55rem); letter-spacing: -.028em; }
.coach-builder-autosave { display: block; margin-top: 10px; color: var(--success) !important; font: italic 850 .67rem/1 var(--font-display) !important; letter-spacing: .035em; }
.coach-builder-actions { padding: 8px; border-radius: 23px; background: linear-gradient(115deg,#202124,#17181b); box-shadow: inset 0 0 0 1px rgba(255,255,255,.035); }
.coach-builder-actions button { border-radius: 17px; font: italic 850 .78rem var(--font-display); }
.coach-builder-actions .primary-button { background: linear-gradient(108deg,#ff3b42,#b5161e); box-shadow: 0 8px 22px rgba(240,45,53,.18); }
.coach-builder-card { padding: 20px; border-color: #2a2d31; border-radius: 21px; background: linear-gradient(145deg,#15171a,#121417); }
.coach-builder-section-heading { grid-template-columns: 48px minmax(0,1fr) 26px; gap: 14px; }
.coach-builder-section-heading > i { width: 48px; height: 48px; border-radius: 14px; font-size: 1.05rem; background: #3a171b; }
.coach-builder-section-heading > span b { font-size: 1.15rem; }
.coach-builder-section-heading > span small { font-size: .78rem; }
.coach-builder-section-heading > strong { font-size: 1.45rem; }
.coach-builder-section-body { gap: 18px; padding-top: 19px; }
.coach-builder-assignment-scope { gap: 10px; }
.coach-builder-assignment-scope button { grid-template-columns: 40px minmax(0,1fr) 28px; align-items: center; min-height: 78px; padding: 12px 15px; border-radius: 15px; background: #1b1d21; }
.coach-builder-assignment-scope button > i { display: grid; width: 40px; height: 40px; place-items: center; border-radius: 12px; background: #25272b; color: #e4e5e8; font-style: normal; }
.coach-builder-assignment-scope button > span { display: grid; gap: 4px; }
.coach-builder-assignment-scope button b { font-size: .87rem; }
.coach-builder-assignment-scope button small { color: var(--secondary); font-size: .68rem; }
.coach-builder-assignment-scope button > em,.coach-builder-roster > button > em { color: #aeb0b5; font: normal 1.5rem/1 var(--font-body); text-align: center; }
.coach-builder-assignment-scope button.is-selected { border-color: #d7252e; background: #3a171b; box-shadow: inset 0 0 0 1px rgba(240,45,53,.2); }
.coach-builder-assignment-scope button.is-selected > i,.coach-builder-assignment-scope button.is-selected > em,.coach-builder-roster > button.is-selected > em { color: var(--accent-bright); }
.coach-builder-roster { gap: 10px; max-height: 340px; padding: 0; border: 0; background: transparent; }
.coach-builder-roster > button { grid-template-columns: 44px minmax(0,1fr) 30px; min-height: 68px; padding: 11px 14px; border-radius: 14px; background: #1b1d21; }
.coach-builder-roster > button > i { display: grid; width: 40px; height: 40px; place-items: center; border-radius: 50%; background: #292b30; color: #c7c9ce; font-size: .72rem; }
.coach-builder-roster b { font-size: .82rem; }.coach-builder-roster small { font-size: .66rem; }
.coach-builder-publish { gap: 12px; margin-top: 4px; }.coach-builder-publish > span { margin-top: 14px; font-size: .74rem; }.coach-builder-publish button { min-height: 57px; font-size: .79rem; }
.coach-builder-type-field > span,.coach-builder-length-field > span { display: flex !important; justify-content: space-between; align-items: center; }.coach-builder-length-field > span > b { color: var(--primary); font-size: .82rem; }.coach-builder-length-field > small { color: var(--secondary); font-size: .71rem; }
.coach-builder-choice { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 5px; padding: 6px; border: 1px solid #303339; border-radius: 17px; background: #1b1d21; }
.coach-builder-choice button { display: flex; min-height: 70px; align-items: center; justify-content: center; gap: 12px; padding: 8px; border: 0; border-radius: 13px; background: transparent; color: #c7c8cc; font: italic 850 .84rem/1.05 var(--font-display); text-align: left; cursor: pointer; }.coach-builder-choice button b { font: inherit; }.coach-builder-discipline-icon { width: 25px; height: 25px; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 2.15; stroke-linecap: round; stroke-linejoin: round; }.coach-builder-choice button.is-selected { background: linear-gradient(108deg,#fb3840,#b51820); color: #fff; box-shadow: inset 0 0 0 1px rgba(255,255,255,.17); }
.coach-builder-length-choice { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 9px; }.coach-builder-length-choice button { min-height: 54px; border: 1px solid #33363b; border-radius: 13px; background: #202226; color: #c9cacf; font: italic 850 1rem var(--font-display); cursor: pointer; }.coach-builder-length-choice button.is-selected { border-color: #d3252d; background: #3a171b; color: #fff; }
.coach-builder-description-field > span { display: flex !important; justify-content: space-between; }.coach-builder-description-field > span small { color: var(--tertiary); font: normal .62rem var(--font-body); }
.coach-builder-block-overview { display: grid; gap: 7px; padding: 17px; border: 1px solid #303339; border-radius: 17px; background: #111316; }.coach-builder-block-overview > b { font: italic 850 1.05rem var(--font-display); }.coach-builder-block-overview > small,.coach-builder-block-overview > em { color: var(--secondary); font-size: .72rem; line-height: 1.45; }.coach-builder-block-overview > em { font-style: normal; }
.coach-builder-week-tabs { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 9px; margin-top: 9px; overflow: visible; }.coach-builder-week-tabs button { display: grid; min-width: 0; min-height: 66px; place-items: center; gap: 2px; padding: 6px; border-radius: 13px; background: #202226; }.coach-builder-week-tabs button i { color: var(--tertiary); font-style: normal; font-size: 1rem; }.coach-builder-week-tabs button span { font: italic 850 .7rem var(--font-display); }.coach-builder-week-tabs button.is-active { border-color: #ea2c34; background: #3a171b; }.coach-builder-week-tabs button.is-active i { color: #fff; }
.coach-builder-dates { grid-template-columns: 1fr; align-items: stretch; gap: 10px; padding: 16px; border-radius: 17px; background: #111316; }.coach-builder-dates > b { color: var(--accent-bright); font: italic 850 .69rem var(--font-display); letter-spacing: .12em; }.coach-builder-dates > small { font-size: .74rem; }.coach-builder-dates label { grid-template-columns: minmax(0,1fr) auto; align-items: center; padding: 12px 14px; border: 1px solid #303339; border-radius: 14px; background: #202226; }.coach-builder-dates label span { font-size: .78rem; }.coach-builder-dates input { min-width: 170px; min-height: 46px; border: 0; border-radius: 999px; background: #36383d; font-size: .78rem; }
.coach-builder-week-heading { display: flex; justify-content: space-between; gap: 10px; margin: 0; color: #c8c9ce; font: italic 850 .7rem var(--font-display); letter-spacing: .085em; }.coach-builder-week-heading span { color: var(--secondary); font: normal .68rem var(--font-body); letter-spacing: 0; }
.coach-builder-week-picker button { grid-template-rows: auto 1fr auto; min-height: 78px; border-radius: 14px; background: #202226; }.coach-builder-week-picker button b { font-size: 1.12rem; }.coach-builder-week-picker button em { min-height: 14px; color: var(--tertiary); font-style: normal; font-size: .74rem; }.coach-builder-week-picker button.is-scheduled { background: #3a171b; }.coach-builder-week-picker button.is-scheduled em { color: #fff; }
.coach-builder-next-date { width: 100%; min-height: 54px; border: 1px solid #b91d26; border-radius: 14px; background: #3a171b; color: #fff; font: italic 850 .8rem var(--font-display); cursor: pointer; }.coach-builder-next-date:hover { background: #4a1c20; }
.coach-builder-day { border-radius: 17px; background: #15171a; }.coach-builder-day > header { padding: 15px; }.coach-builder-day > header b { font-size: 1rem; }.coach-builder-day > header em { font-size: .73rem; }.coach-builder-remove { width: 46px; height: 46px; border-radius: 13px; background: #30281b; color: #ffc132; font-size: 1.5rem; }.coach-builder-day-body { gap: 16px; padding: 16px; }
.modal.coach-builder-modal { border: 1px solid #272a2f; box-shadow: 0 34px 100px rgba(0,0,0,.72); }.coach-builder-picker-head { padding: 25px 26px 22px; background: #090a0d; }.coach-builder-picker-head h2 { font-size: clamp(1.65rem,4vw,2.45rem); }.coach-builder-picker-head span { font-size: .84rem; }.coach-builder-picker { gap: 19px; padding: 21px 26px 24px; background: #0b0c0f; }.coach-builder-picker-notice { display: grid; grid-template-columns: 30px minmax(0,1fr); gap: 5px 10px; margin: 0; padding: 16px; border: 1px solid #646973; border-radius: 16px; background: #1b1d21; }.coach-builder-picker-notice b { grid-column: 1 / -1; color: #fff; font: italic 850 .87rem var(--font-display); }.coach-builder-picker-notice span { grid-column: 2; color: var(--secondary); font-size: .76rem; line-height: 1.45; }
.coach-builder-picker > section { gap: 13px; padding: 17px; border-radius: 18px; background: #15171a; }.coach-builder-picker h3 { font-size: 1rem; }.coach-builder-picker-days { max-height: 330px; gap: 10px; }.coach-builder-picker-days label { grid-template-columns: 22px minmax(0,1fr) 24px; min-height: 65px; padding: 12px 14px; border-radius: 13px; background: #202226; }.coach-builder-picker-days label:has(input:checked) { border-color: #d7252e; background: #3a171b; }.coach-builder-picker-days input { appearance: none; width: 20px; height: 20px; border: 2px solid #aeb0b5; border-radius: 50%; background: transparent; }.coach-builder-picker-days input:checked { border-color: var(--accent-bright); background: var(--accent-bright); box-shadow: inset 0 0 0 4px #3a171b; }.coach-builder-picker-days b { font-size: .82rem; }.coach-builder-picker-days small { font-size: .68rem; }.coach-builder-picker-days label em::after { color: #aeb0b5; content: "○"; font-style: normal; font-size: 1.35rem; }.coach-builder-picker-days label:has(input:checked) em::after { color: var(--accent-bright); content: "✓"; }
.coach-builder-picker-days > button { display: grid; grid-template-columns: 22px minmax(0,1fr) 28px; align-items: center; gap: 11px; width: 100%; min-height: 65px; padding: 12px 14px; border: 1px solid var(--border); border-radius: 13px; background: #202226; color: var(--primary); text-align: left; cursor: pointer; }
.coach-builder-picker-days > button.is-selected { border-color: #d7252e; background: #3a171b; box-shadow: inset 0 0 0 1px rgba(240,45,53,.16); }
.coach-builder-picker-days > button > i { color: #aeb0b5; font: normal 1.15rem/1 var(--font-body); text-align: center; }
.coach-builder-picker-days > button.is-selected > i { color: var(--accent-bright); }
.coach-builder-picker-days > button > span { display: grid; gap: 3px; min-width: 0; }
.coach-builder-picker-days > button b { overflow: hidden; color: var(--primary); text-overflow: ellipsis; white-space: nowrap; }
.coach-builder-picker-days > button small { color: var(--secondary); line-height: 1.35; }
.coach-builder-picker-days > button > em { color: var(--tertiary); font: normal .66rem var(--font-body); text-align: right; }
.coach-builder-prescription > p { grid-column: 1 / -1; margin: 0 0 2px; color: var(--secondary); font-size: .71rem; }.coach-builder-picker-actions { position: sticky; bottom: -24px; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 0 -26px -24px; padding: 17px 26px calc(17px + env(safe-area-inset-bottom)); border-top: 1px solid #292c31; background: rgba(10,11,14,.97); }.coach-builder-picker-actions button { min-height: 55px; font: italic 850 .8rem var(--font-display); }

/* Match the native exercise-library and prescription-sheet hierarchy. */
.modal.coach-builder-exercise-modal { width: min(900px,100%); max-height: 94dvh; padding: 0; overflow-y: auto; border-radius: 28px; background: #090a0d; }
.coach-builder-library-heading { min-height: 74px; }
.coach-builder-library-heading > em { min-width: 44px; padding: 8px 11px; background: #202226; font: italic 850 .78rem var(--font-display); }
.coach-builder-library-sort button { display: flex; align-items: center; justify-content: center; gap: 9px; min-height: 48px; font-size: .76rem; }
.coach-builder-library-sort button::before { color: currentColor; font: normal 800 .82rem var(--font-body); }
.coach-builder-library-sort button:nth-child(1)::before { content: "▱"; }
.coach-builder-library-sort button:nth-child(2)::before { content: "Aa"; }
.coach-builder-library-sort button:nth-child(3)::before { content: "◇"; font-size: 1.05rem; }
.coach-builder-library-notice { position: relative; grid-template-columns: 46px minmax(0,1fr); gap: 3px 12px; min-height: 88px; align-content: center; padding: 14px 16px 14px 62px; border-color: #646973; background: #1b1d21; overflow: hidden; }
.coach-builder-library-notice::before { position: absolute; left: 20px; top: 50%; display: grid; width: 32px; height: 32px; place-items: center; border-radius: 50%; background: #3b3e44; color: #f3f3f5; content: "i"; font: 800 .9rem var(--font-body); transform: translateY(-50%); }
.coach-builder-library-notice::after { position: absolute; left: 2px; top: 12px; bottom: 12px; width: 3px; border-radius: 999px; background: #f0f1f4; content: ""; }
.coach-builder-library-notice b,.coach-builder-library-notice span { grid-column: 2; }
.coach-builder-library-notice b { color: var(--primary); font-size: .76rem; letter-spacing: 0; text-transform: none; }
.coach-builder-library-notice span { font-size: .72rem; }
.coach-builder-library-group { min-height: 28px; }
.coach-builder-library-group > b { font-size: .68rem; }
.coach-builder-library > section > button.coach-builder-library-group { display: grid; grid-template-columns: 15px auto minmax(10px,1fr) auto; min-height: 28px; padding: 2px 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.coach-builder-library > section > button.coach-builder-library-group:hover { border-color: transparent; background: transparent; }
.coach-builder-library > section > button.coach-builder-library-group > i { display: block; width: auto; height: auto; border-radius: 0; background: transparent; color: var(--tertiary); }
.coach-builder-library > section > button[data-builder-library] { min-height: 82px; padding: 13px 14px; border-color: #303339; background: #15171a; }
.coach-builder-library > section > button[data-builder-library]:focus { outline: none; }
.coach-builder-library > section > button[data-builder-library]:focus-visible { border-color: var(--accent-bright); box-shadow: 0 0 0 2px rgba(240,45,53,.2); }
.coach-builder-library > section > button[data-builder-library] > i { width: 42px; height: 42px; border-radius: 11px; background: #3a171b; }
.coach-builder-library > section > button[data-builder-library] b { font-size: .85rem; }
.coach-builder-library > section > button[data-builder-library] span { gap: 4px; }
.coach-builder-library > section > button[data-builder-library] span small:not(.coach-builder-library-section) { font-size: .68rem; }
.coach-builder-library-section { gap: 4px; padding: 4px 9px; font-size: .6rem !important; }
.coach-builder-library-section::before { content: "●"; font-size: .48rem; }
.coach-builder-library > section > button[data-builder-library] > em { font-size: 1.45rem; }
.coach-builder-library > section > button[data-builder-library] > em small { font-size: .52rem; }
.coach-builder-destination-mode { gap: 9px; padding: 0; border: 0; background: transparent; }
.coach-builder-destination-mode button { min-height: 54px; border: 1px solid #303339; border-radius: 13px; background: #202226; font-size: .72rem; }
.coach-builder-destination-mode button::before { margin-right: 8px; color: currentColor; font: normal 800 .9rem var(--font-body); }
.coach-builder-destination-mode button:first-child::before { content: "↔"; }
.coach-builder-destination-mode button:last-child::before { content: "▦"; }
.coach-builder-destination-mode button.is-active { border-color: #d7252e; background: #3a171b; }
.coach-builder-picker > section { border-color: #303339; }
.coach-builder-picker > section:first-of-type { padding: 18px; }
.coach-builder-picker-days > button { grid-template-columns: 24px minmax(0,1fr); }
.coach-builder-picker-days > button > em { display: none; }
.coach-builder-picker-days > button.is-selected > i { display: grid; width: 24px; height: 24px; place-items: center; border-radius: 50%; background: var(--accent-bright); color: #17191d; font-size: .78rem; }
.coach-builder-prescription { gap: 13px !important; }
.coach-builder-prescription > .field { min-width: 0; }
.coach-builder-prescription > .field > span { text-transform: uppercase; }
.coach-builder-program-section { position: relative; grid-template-columns: 44px minmax(0,1fr); gap: 2px 12px !important; min-height: 64px; align-content: center; padding: 10px 13px 10px 64px; border: 1px solid #303339; border-radius: 13px; background: #202226; }
.coach-builder-program-section::before { position: absolute; left: 14px; top: 50%; display: grid; width: 40px; height: 40px; place-items: center; border-radius: 11px; background: #3a171b; color: var(--accent-bright); content: "●"; transform: translateY(-50%); }
.coach-builder-program-section > span { grid-column: 2; color: var(--tertiary) !important; font-size: .58rem !important; }
.coach-builder-program-section > select { grid-column: 2; min-height: 28px !important; padding: 0 28px 0 0 !important; border: 0 !important; background-color: transparent !important; color: var(--primary); font: italic 850 .86rem var(--font-display); box-shadow: none !important; }
.coach-builder-picker-actions .primary-button { background: linear-gradient(108deg,#ff3b42,#b5161e); }

/* Builder icons are SVG-backed so their shape does not depend on platform glyph fonts. */
.coach-builder-icon { display: block; width: 1em; height: 1em; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.coach-builder-library-heading > i .coach-builder-icon { width: 21px; height: 21px; }
.coach-builder-library-heading > strong .coach-builder-icon { width: 18px; height: 18px; transition: transform .18s ease; }
.coach-builder-library-heading[aria-expanded="false"] > strong .coach-builder-icon { transform: rotate(-90deg); }
.coach-builder-search > span .coach-builder-icon { width: 18px; height: 18px; }
.coach-builder-search button .coach-builder-icon { width: 15px; height: 15px; }
.coach-builder-library-sort button::before,.coach-builder-destination-mode button::before { content: none !important; }
.coach-builder-library-sort button .coach-builder-icon { width: 19px; height: 19px; }
.coach-builder-library-sort button > span { font: normal 800 .88rem/1 var(--font-body); }
.coach-builder-library-sort button > b,.coach-builder-destination-mode button > b { font: inherit; }
.coach-builder-library-notice { grid-template-columns: 34px minmax(0,1fr); padding: 14px 16px; }
.coach-builder-library-notice::before { content: none; }
.coach-builder-library-notice > .coach-builder-icon { grid-column: 1; grid-row: 1 / span 2; align-self: center; width: 32px; height: 32px; padding: 7px; border-radius: 50%; background: #3b3e44; color: #f3f3f5; }
.coach-builder-library > section > button.coach-builder-library-group > i .coach-builder-icon { width: 15px; height: 15px; transition: transform .18s ease; }
.coach-builder-library > section > button.coach-builder-library-group[aria-expanded="false"] > i .coach-builder-icon { transform: rotate(-90deg); }
.coach-builder-library > section > button[data-builder-library] > i .coach-builder-icon { width: 23px; height: 23px; }
.coach-builder-library > section > button[data-builder-library] > em .coach-builder-icon { width: 25px; height: 25px; }
.coach-builder-destination-mode button { display: flex; align-items: center; justify-content: center; gap: 9px; }
.coach-builder-destination-mode button .coach-builder-icon { width: 19px; height: 19px; }
.coach-builder-picker-days > button > i .coach-builder-icon { width: 22px; height: 22px; }
.coach-builder-picker-days > button.is-selected > i .coach-builder-icon { width: 17px; height: 17px; }
.coach-builder-program-section { grid-template-columns: 40px minmax(0,1fr); padding: 10px 13px; }
.coach-builder-program-section::before { content: none; }
.coach-builder-program-section > .coach-builder-icon { grid-column: 1; grid-row: 1 / span 2; align-self: center; width: 40px; height: 40px; padding: 9px; border-radius: 11px; background: #3a171b; color: var(--accent-bright); }
.coach-builder-picker-actions button { display: flex; align-items: center; justify-content: center; gap: 8px; }
.coach-builder-picker-actions button .coach-builder-icon { width: 21px; height: 21px; }
.coach-builder-picker-notice > .coach-builder-icon { grid-column: 1; grid-row: 1 / span 2; width: 30px; height: 30px; padding: 5px; border-radius: 50%; background: #3b3e44; color: #f3f3f5; }
.coach-builder-picker-notice b,.coach-builder-picker-notice span { grid-column: 2; }
.coach-builder-autosave { display: inline-flex !important; align-items: center; gap: 6px; }
.coach-builder-autosave .coach-builder-icon { width: 14px; height: 14px; flex: 0 0 14px; }
.coach-builder-head .icon-button .coach-builder-icon,.coach-builder-picker-head .icon-button .coach-builder-icon { width: 20px; height: 20px; }
@media (max-width: 700px) {
  .modal.coach-builder-exercise-modal { width: 100%; max-height: 97dvh; border-radius: 30px 30px 0 0; }
}
@media (max-width: 700px) {
  .coach-builder-card { padding: 17px; }.coach-builder-section-heading { grid-template-columns: 43px minmax(0,1fr) 20px; gap: 11px; }.coach-builder-section-heading > i { width: 43px; height: 43px; }.coach-builder-section-heading > span b { font-size: 1.04rem; }.coach-builder-section-heading > span small { font-size: .71rem; }.coach-builder-actions { border-radius: 19px; }.coach-builder-actions button { min-height: 54px; }.coach-builder-choice button { min-height: 63px; font-size: .72rem; }.coach-builder-length-choice { gap: 6px; }.coach-builder-length-choice button { min-height: 49px; }.coach-builder-dates input { min-width: 0; max-width: 146px; }.coach-builder-week-tabs { gap: 6px; }.coach-builder-week-tabs button { min-height: 59px; }.coach-builder-week-picker button { min-height: 72px; }.coach-builder-picker-actions { margin-inline: -14px; padding-inline: 14px; }.coach-builder-picker-notice { padding: 14px; }
}

/* Keep the roster and program-library hierarchy above legacy list styling. */
.coach-native-list.coach-roster-list,.coach-native-list.coach-template-list { display: grid; gap: 11px; }
.coach-native-card.coach-roster-row,.coach-native-card.coach-template-row { min-height: 82px; padding: 9px 11px; border-color: #303339; border-radius: 17px; background: linear-gradient(145deg,#17191d,#141619); }
.coach-native-card.coach-template-row > button:first-child { grid-template-columns: 46px minmax(0,1fr) 20px; gap: 12px; padding: 4px; }
.coach-native-card.coach-roster-row .coach-roster-open { grid-template-columns: 45px minmax(0,1fr) 20px; gap: 12px; padding: 4px; }
@media (max-width: 700px) { .coach-native-card.coach-roster-row,.coach-native-card.coach-template-row { min-height: 76px; padding: 8px; } }

.coach-calendar-weather { color: #b9cdf0 !important; }
.coach-calendar-weather-credit { display: inline-block; margin: 8px 0 0; color: var(--tertiary); font-size: .62rem; text-decoration: none; }
.coach-calendar-weather-credit:hover { color: var(--secondary); text-decoration: underline; }

/* Fuel summary follows NutritionTrackerView's card hierarchy and dimensions. */
.fuel-workspace { gap: 14px; min-width: 0; }
.fuel-workspace .nutrition-week-strip { display: flex; gap: 10px; max-width: 100%; min-width: 0; padding: 12px; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: thin; }
.fuel-workspace .nutrition-day { flex: 0 0 48px; gap: 7px; padding: 8px 0; border: 1px solid var(--border); background: rgba(255,255,255,.025); box-shadow: none; }
.fuel-workspace .nutrition-day.is-selected { border-color: rgba(255,255,255,.25); background: rgba(255,255,255,.08); }
.fuel-workspace .nutrition-day.is-selected > b { color: var(--primary); }
.fuel-workspace .nutrition-day > b { font-size: 10px; }
.fuel-workspace .nutrition-day > span { width: 34px; height: 34px; }
.fuel-workspace .nutrition-day > span::before { width: 29px; height: 29px; }
.fuel-workspace .nutrition-day i { font-size: 12px; }
.fuel-workspace .calorie-card { min-height: 200px; gap: 18px; padding: 22px; border: 1px solid rgba(255,255,255,.2); border-radius: 18px; box-shadow: 0 12px 20px rgba(238,42,49,.12); }
.fuel-workspace .calorie-card > div:first-child { min-width: 0; }
.fuel-workspace .calorie-card p { color: var(--secondary); font-size: 12px; }
.fuel-workspace .calorie-card > div:first-child > strong { font-size: 46px; line-height: 1.05; }
.fuel-workspace .calorie-card > div:first-child > span { font-size: 13px; }
.fuel-workspace .calorie-ring { width: 120px; height: 120px; }
.fuel-workspace .calorie-ring::before { width: 96px; height: 96px; }
.fuel-workspace .calorie-ring b { font-size: 20px; margin-top: -10px; }
.fuel-workspace .calorie-ring small { font-size: 10px; margin-top: 27px; }
.fuel-workspace .nutrition-chips { flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.fuel-workspace .nutrition-chips button,.fuel-workspace .nutrition-chips > span { padding: 7px 10px; font-size: 10px; }
.fuel-workspace .macro-grid { gap: 8px; min-width: 0; }
.fuel-workspace .macro-card { min-width: 0; min-height: 136px; gap: 9px; padding: 12px 8px; border-radius: 18px; background: rgba(255,255,255,.04); }
.fuel-workspace .macro-card > div { white-space: nowrap; }
.fuel-workspace .macro-card > div strong { font-size: 20px; }
.fuel-workspace .macro-card > div span { font-size: 10px; }
.fuel-workspace .macro-card > i { width: 46px; height: 46px; margin: 0; }
.fuel-workspace .macro-card > i::after { display: block; width: 36px; height: 36px; }
.fuel-workspace .macro-card > .macro-icon svg { width: 17px; height: 17px; }
.fuel-workspace .macro-card > b { font-size: 11px; }
.fuel-workspace .macro-card > small { margin-top: -6px; font-size: 9px; }
.fuel-workspace .macro-card > small.is-over-target { color: var(--warning); }
.fuel-workspace .native-log-food { padding: 16px; border-radius: 18px; }
.fuel-workspace .native-log-food .native-section-heading h1 { font-size: 22px; line-height: 1.2; }
.modal.sc-history-modal { --line: var(--border); --muted: var(--secondary); --red: var(--accent); --text: var(--primary); width: min(720px, 100%); background: #090b0d; overflow-anchor: none; }
.sc-history-modal .modal-header h3 { font: italic 850 26px/1.15 var(--font-display); }
.sc-history-modal .eyebrow, .sc-history-block > h4 { color: var(--red); font: italic 850 12px/1.3 var(--font-display); letter-spacing: .07em; }
.sc-history-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; margin: 20px 0; }
.sc-history-summary > div { display: grid; gap: 6px; padding: 14px; border: 1px solid var(--line); border-radius: 8px; background: #191b1e; }
.sc-history-summary b { font: italic 850 18px var(--font-display); }
.sc-history-summary span { color: var(--muted); font-size: 11px; }
.sc-history-block { margin: 20px 0; }
.sc-history-block > h4 { margin: 0 0 10px; text-transform: uppercase; }
.sc-history-exercise { padding: 16px; border: 1px solid var(--line); border-radius: 8px; background: #121416; }
.sc-history-exercise + .sc-history-exercise { margin-top: 10px; }
.sc-history-exercise header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.sc-history-exercise h4 { margin: 0; font: italic 800 17px/1.25 var(--font-display); }
.sc-history-exercise header span { color: var(--muted); font-size: 10px; white-space: nowrap; }
.sc-history-exercise > p { margin: 8px 0; color: var(--muted); font-size: 12px; }
.sc-history-sets { list-style: none; padding: 0; margin: 12px 0; font-size: 12px; }
.sc-history-sets li { padding: 9px; border-radius: 6px; background: #1b1d20; margin-top: 6px; }
.sc-history-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin-top: 12px; }
.sc-history-actions button { min-height: 44px; padding: 9px; font-size: 12px; }
.sc-history-actions [data-edit-history-exercise] { color: var(--red); }
.sc-history-actions .is-complete { color: var(--success); }
.sc-history-modal .form-footer { grid-column: 1 / -1; display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 10px; }
.sc-history-modal .form-footer button { font-size: 14px; }
#sc-history-error:not([hidden]) { padding: 14px; border: 1px solid var(--red); border-radius: 8px; color: var(--text); }
@media (max-width: 440px) {
  .sc-history-modal .modal-header h3 { font-size: 23px; }
  .sc-history-summary > div { padding: 10px; }
  .sc-history-exercise header { flex-wrap: wrap; gap: 6px; }
}
@media (max-width: 440px) {
  .fuel-workspace .calorie-card { gap: 10px; padding: 18px; }
  .fuel-workspace .calorie-ring { width: 102px; height: 102px; }
  .fuel-workspace .calorie-ring::before { width: 80px; height: 80px; }
  .fuel-workspace .nutrition-chips { gap: 5px; }
  .fuel-workspace .nutrition-chips button,.fuel-workspace .nutrition-chips > span { padding: 5px 7px; }
}

/* iOS HomeSessionHeader / HomeOverviewCard and CoachCompactStatus dimensions.
   Desktop keeps its wider layout; mobile follows the native card hierarchy. */
.coach-today-row .is-progress { color: var(--accent-bright); background: var(--accent-soft); }
.coach-today-row .is-pending { color: var(--warning); background: var(--warning-soft); }
.coach-today-row .is-none { color: var(--tertiary); background: rgba(255,255,255,.05); }
.coach-metrics .metric:last-child:not(.is-warning) > span:first-child { color: var(--success); }
.coach-metrics .metric small { font-size: .6875rem; line-height: 1.3; }
.coach-native-calendar { min-width: 0; }
.coach-native-calendar > header { flex-wrap: wrap; }
.coach-native-calendar > header h2 { min-width: 0; overflow-wrap: anywhere; }
.coach-calendar-controls { flex-wrap: wrap; }
.coach-calendar-grid,.coach-calendar-weekdays { min-width: 0; }
@media (max-width: 600px) {
  .native-day-card,.native-progress-card { border-radius: 8px; }
  .native-day-card { margin-bottom: 14px; }
  .native-day-title { padding: 14px 14px 10px; gap: 12px; }
  .native-day-title h1 { font-size: 24px; line-height: 1.1; }
  .native-day-title p { font-size: 11px; }
  .native-day-title > span { border-radius: 6px; background: var(--accent-soft); font-size: 10px; }
  .native-day-status { margin-inline: 14px; }
  .native-day-status > button,.native-day-status > div { min-height: 58px; gap: 9px; padding: 6px 8px; }
  .native-day-status b { font-size: 13px; }
  .native-day-status small { font-size: 10px; }
  .native-day-meta { padding: 10px 14px 14px; gap: 14px; }
  .native-progress-card { padding: 12px; margin-bottom: 20px; }
  .native-progress-head > strong { font-size: 26px; }
  .native-progress-track { height: 7px; margin-block: 10px; border-radius: 3px; }
  .native-progress-card .home-quick-nav { padding-top: 10px; }
  .native-progress-card .home-quick-nav a { min-height: 52px; border-radius: 6px; }
  .native-progress-card .home-quick-nav svg { width: 20px; height: 20px; }
  .native-progress-card .home-quick-nav span { font-size: 11px; }
  .coach-metrics .metric { min-height: 64px; padding: 10px 5px; border-radius: 11px; }
  .coach-metrics .metric > span:first-child { font-size: 20px; }
  .coach-metrics .metric small { font-size: 11px; overflow-wrap: anywhere; }
  .is-coach-workspace .coach-page-hero h1 { font-size: 27px; }
  .coach-today-head,.coach-today-row { grid-template-columns: minmax(0,1fr) repeat(3,48px); }
  .coach-today-row { min-height: 44px; }
  .coach-today-row span { min-height: 24px; margin-inline: 2px; border-radius: 999px; }
  .coach-native-calendar > header h2 { font-size: 24px; }
}
