:root {
  --navy: #09254b;
  --navy-deep: #061a38;
  --blue: #1268d3;
  --cyan: #4bd7e8;
  --green: #17a673;
  --amber: #e99d28;
  --red: #da4c50;
  --ink: #13213a;
  --muted: #68768b;
  --line: #dfe6ef;
  --paper: #f3f6fa;
  --white: #fff;
  --shadow: 0 22px 55px rgba(10, 32, 67, 0.11);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  min-width: 320px;
  color: var(--ink);
  background:
    radial-gradient(circle at 95% 2%, rgba(75, 215, 232, 0.13), transparent 24rem),
    var(--paper);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
}
button, input, select, textarea { font: inherit; }
button { color: inherit; }

.app-header {
  min-height: 82px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  padding: 16px clamp(22px, 5vw, 72px);
  color: #fff;
  background: linear-gradient(108deg, #071a33, #0a2b53 72%, #0d3a68);
  border-bottom: 2px solid var(--cyan);
}
.official-app-title { display:flex; align-items:center; gap:10px; color:#dce9f5; font-size:11px; font-weight:900; letter-spacing:.17em; }
.official-app-title i { width:8px; height:8px; border-radius:50%; background:var(--cyan); box-shadow:0 0 15px rgba(75,215,232,.78); }
.official-label { display: flex; flex-direction: column; align-items: flex-end; gap: 7px; text-align: right; }
.official-label strong { font-size: clamp(16px, 2vw, 22px); letter-spacing: .1em; }
.official-label span { color: #cbdaf0; font-size: 14px; }

.page-shell { width: min(1180px, calc(100% - 36px)); margin: 24px auto 72px; }
.pilot-banner {
  display: flex; align-items: center; gap: 14px; margin-bottom: 16px; padding: 12px 16px;
  border: 1px solid #b9dfe5; border-radius: 13px; color: #1c5963; background: #eafafd;
}
.pilot-banner > span { flex: 0 0 auto; padding: 5px 8px; border-radius: 7px; color: #fff; background: #158c9b; font-size: 10px; font-weight: 900; letter-spacing: .12em; }
.pilot-banner p { margin: 0; font-size: 13px; }

.card, .form-workspace, .recent-section {
  border: 1px solid var(--line); border-radius: 22px; background: var(--white); box-shadow: var(--shadow);
}
.profile-card { padding: clamp(22px, 4vw, 38px); }
.access-card { padding: clamp(24px, 5vw, 46px); }
.access-state { display: flex; align-items: center; gap: 20px; max-width: 800px; margin: 0 auto; }
.access-state .access-icon {
  width: 68px; height: 68px; flex: 0 0 68px; display: grid; place-items: center;
  border-radius: 19px; color: #fff; background: var(--blue); font-size: 20px; font-weight: 900;
  letter-spacing: .08em; box-shadow: 0 12px 26px rgba(18,104,211,.2);
}
.access-state h1 { margin: 5px 0 6px; color: var(--navy); font-size: clamp(24px, 4vw, 34px); line-height: 1.1; }
.access-state p { margin: 0; color: var(--muted); font-size: 16px; line-height: 1.5; }
.access-state small { display: block; margin-top: 9px; color: #88414a; font-size: 14px; line-height: 1.45; }
.error-state .access-icon { background: var(--red); box-shadow: 0 12px 26px rgba(218,76,80,.18); }
.access-content { min-width: 0; width: 100%; }
.phone-activation-form { display: grid; gap: 12px; margin-top: 24px; }
.phone-activation-form label { font-size: 16px; font-weight: 700; color: var(--navy); }
.phone-activation-form input { width: 100%; min-width: 0; font-size: 16px; }
.phone-activation-form .primary-button { width: 100%; min-height: 48px; white-space: normal; }
.access-state .phone-activation-form p, .access-state .phone-privacy-note { font-size: 14px; line-height: 1.6; }
.access-retry { margin: 18px 0 12px; min-height: 44px; white-space: normal; }
.access-state .phone-privacy-note { padding-top: 12px; border-top: 1px solid var(--line, #dce4ef); }
.acceptance-card { margin-bottom: 22px; padding: clamp(24px, 5vw, 46px); border-top: 4px solid var(--cyan); }
.acceptance-heading { max-width: 820px; }
.acceptance-heading h1 { margin: 7px 0 10px; color: var(--navy); font-size: clamp(25px, 4vw, 38px); }
.acceptance-heading p { margin: 0; color: var(--muted); line-height: 1.55; }
.acceptance-form { display: grid; gap: 10px; max-width: 900px; margin-top: 24px; }
.acceptance-form > label { display: grid; grid-template-columns: 22px 1fr; align-items: start; gap: 11px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 11px; background: #f8fafc; font-size: 14px; line-height: 1.45; }
.acceptance-form input { width: 18px; height: 18px; margin: 1px 0 0; accent-color: var(--blue); }
.acceptance-form a, footer a { color: #0e62bc; font-weight: 800; }
.acceptance-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 8px; }
.acceptance-form > p { margin: 0; color: var(--muted); font-size: 12px; }
.identified-official {
  display: grid; grid-template-columns: 64px 1fr auto; align-items: center; gap: 17px;
  margin-bottom: 23px; padding: 18px 20px; border: 1px solid #b7d9cd; border-radius: 18px;
  background: linear-gradient(110deg, #fff, #f1fbf7); box-shadow: 0 12px 32px rgba(10,32,67,.07);
}
.official-avatar { width: 64px; height: 64px; display: grid; place-items: center; border-radius: 17px; color: #fff; background: var(--navy); font-size: 20px; font-weight: 900; overflow: hidden; }
.official-avatar img { width: 100%; height: 100%; display: block; object-fit: cover; }
.identified-official h1 { margin: 4px 0 3px; color: var(--navy); font-size: clamp(22px, 3vw, 30px); line-height: 1.05; }
.identified-official p { margin: 0; color: var(--muted); font-size: 14px; font-weight: 700; letter-spacing: .035em; }
.verified-pill { padding: 8px 11px; border-radius: 999px; color: #0c6f4c; background: #dff5eb; font-size: 12px; font-weight: 900; letter-spacing: .055em; }
.profile-photo-actions { display: grid; justify-items: end; gap: 6px; }
.logout-button { min-height: 34px; padding: 7px 10px; border: 1px solid #b9c7d5; border-radius: 9px; color: var(--navy); background: #fff; font-size: 10px; font-weight: 900; letter-spacing: .045em; cursor: pointer; }
.logout-button:hover { border-color: var(--blue); color: var(--blue); }
.photo-upload-button { position: relative; display: inline-flex; align-items: center; justify-content: center; min-height: 34px; padding: 7px 10px; border: 1px solid #9fc6b7; border-radius: 9px; color: #0c6f4c; background: #fff; font-size: 10px; font-weight: 900; letter-spacing: .045em; cursor: pointer; }
.photo-upload-button:hover { border-color: var(--green); background: #f1fbf7; }
.photo-upload-button input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.profile-photo-actions small { max-width: 150px; color: var(--muted); font-size: 9px; line-height: 1.25; text-align: right; }
.device-setup {
  display: grid; grid-template-columns: minmax(240px, .7fr) minmax(0, 1.3fr); gap: 24px;
  margin-bottom: 18px; padding: clamp(22px, 4vw, 34px); border-top: 4px solid var(--cyan);
}
.device-setup-heading h2, .install-card h2 { margin: 5px 0 7px; color: var(--navy); font-size: clamp(22px, 3vw, 30px); }
.device-setup-heading p, .install-card p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.5; }
.device-setup-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.device-setup-form .primary-button { grid-column:1/-1; justify-self:end; }
.source-disclosure { display:flex; flex-direction:column; justify-content:center; gap:3px; padding:10px 12px; border:1px solid #b9dfe5; border-radius:11px; color:#557080; background:#effbfc; }
.source-disclosure strong { color:#158c9b; font-size:10px; letter-spacing:.1em; }
.source-disclosure span { font-size:11px; line-height:1.35; }
.device-option {
  min-height: 116px; display: grid; grid-template-columns: 45px 1fr; grid-template-rows: auto auto;
  align-items: center; column-gap: 12px; padding: 14px; border: 1px solid #cbd6e3; border-radius: 15px;
  text-align: left; background: #fff; cursor: pointer; transition: transform .16s, border-color .16s, box-shadow .16s;
}
.device-option > span { grid-row: 1 / 3; width: 45px; height: 45px; display: grid; place-items: center; border-radius: 12px; color: #fff; font-weight: 900; }
.device-option.polar > span { background: #d71946; }
.device-option.garmin > span { background: #1674b9; }
.device-option strong { align-self: end; color: var(--navy); font-size: 16px; letter-spacing: .07em; }
.device-option small { align-self: start; color: var(--muted); font-size: 12px; line-height: 1.3; }
.device-option:hover { transform: translateY(-2px); border-color: var(--blue); box-shadow: 0 10px 24px rgba(10,32,67,.1); }
.device-option:disabled { cursor: wait; opacity: .58; transform: none; }
.device-setup-status { grid-column: 1 / -1; margin: -8px 0 0; color: #8a5a0b; font-size: 12px; font-weight: 800; }
.body-metrics-setup {
  display: grid; grid-template-columns: minmax(250px, .72fr) minmax(0, 1.28fr); gap: 28px;
  margin-bottom: 18px; padding: clamp(22px, 4vw, 34px); border-top: 4px solid var(--green);
}
.body-metrics-heading h2 { margin: 5px 0 7px; color: var(--navy); font-size: clamp(22px, 3vw, 30px); }
.body-metrics-heading p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.5; }
.body-metrics-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; }
.body-metrics-form .primary-button { grid-column: 1 / -1; justify-self: end; }
.body-metrics-status { grid-column: 1 / -1; margin: 0; color: var(--muted); font-size: 12px; font-weight: 700; }
.saved-height, .measurement-week { min-height: 79px; display: flex; flex-direction: column; justify-content: center; padding: 10px 13px; border: 1px solid #cfd8e4; border-radius: 11px; background: #f8fafc; }
.saved-height span, .measurement-week span { color: var(--muted); font-size: 10px; font-weight: 900; letter-spacing: .09em; }
.saved-height strong, .measurement-week strong { margin-top: 3px; color: var(--navy); font-size: 18px; }
.saved-height small, .measurement-week small { margin-top: 3px; color: var(--muted); font-size: 11px; line-height: 1.3; }
.install-card {
  display: grid; grid-template-columns: 58px minmax(0, 1fr) auto; align-items: center; gap: 17px;
  margin-bottom: 18px; padding: 18px 20px; border: 1px solid #b9dfe5; border-radius: 18px;
  background: linear-gradient(110deg, #fff, #eafafd); box-shadow: 0 12px 32px rgba(10,32,67,.07);
}
.install-rm-icon { width: 58px; height: 58px; display: grid; place-items: center; border-radius: 16px; color: #fff; background: var(--navy-deep); font-size: 18px; font-weight: 900; box-shadow: inset 0 0 0 2px rgba(75,215,232,.34); }
.install-card h2 { font-size: 20px; }
.install-actions { display: flex; align-items: center; gap: 8px; }
.section-heading, .workspace-heading, .quest-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 24px; }
.section-heading h1, .section-heading h2, .quest-heading h2, .workspace-heading h2 { margin: 5px 0 0; color: var(--navy); line-height: 1.08; }
.section-heading h1 { font-size: clamp(24px, 4vw, 36px); }
.section-heading h2, .workspace-heading h2 { font-size: clamp(23px, 3.2vw, 32px); }
.step { display: inline-block; color: var(--blue); font-size: 11px; font-weight: 900; letter-spacing: .14em; }
.status-pill, .test-badge { display: inline-flex; align-items: center; justify-content: center; padding: 8px 11px; border-radius: 999px; color: #8b3440; background: #fdecef; font-size: 11px; font-weight: 800; letter-spacing: .05em; white-space: nowrap; }
.status-pill.ready { color: #0c6f4c; background: #e3f7ef; }
.lead { max-width: 730px; margin: 13px 0 26px; color: var(--muted); line-height: 1.55; }

.form-grid { display: grid; gap: 17px; }
.identity-grid, .three-columns { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.four-columns { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.two-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
label { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
label > span, fieldset legend { color: #3f4c61; font-size: 14px; font-weight: 800; letter-spacing: .01em; }
label b, fieldset b { color: var(--red); }
input, select, textarea {
  width: 100%; border: 1px solid #cfd8e4; border-radius: 11px; color: var(--ink); background: #fff;
  outline: none; transition: border-color .18s, box-shadow .18s, background .18s;
}
input, select { min-height: 48px; padding: 10px 12px; }
textarea { padding: 12px; resize: vertical; line-height: 1.5; }
input::placeholder, textarea::placeholder { color: #9aa6b7; }
input:focus, select:focus, textarea:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(18,104,211,.11); }
input:disabled, select:disabled { color: #8a95a5; background: #f2f5f8; }
.role-fieldset { margin: 25px 0 0; padding: 0; border: 0; }
.role-fieldset legend { margin-bottom: 10px; }
.role-selector { display: grid; grid-template-columns: repeat(2, minmax(0, 260px)); gap: 12px; }
.role-button {
  min-height: 86px; display: grid; grid-template-columns: 46px 1fr; grid-template-rows: auto auto; column-gap: 12px;
  align-items: center; text-align: left; padding: 13px; border: 1px solid #ccd7e6; border-radius: 14px; background: #fff; cursor: pointer;
}
.role-button > span { grid-row: 1 / 3; width: 46px; height: 46px; display: grid; place-items: center; border-radius: 12px; color: var(--navy); background: #eaf0f8; font-size: 18px; font-weight: 900; }
.role-button strong { align-self: end; font-size: 14px; letter-spacing: .06em; }
.role-button small { align-self: start; color: var(--muted); font-size: 13px; }
.role-button:hover { border-color: var(--blue); }
.role-button.active { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(18,104,211,.1); background: #f5f9ff; }
.role-button.active > span { color: #fff; background: var(--blue); }
.profile-actions { display: flex; align-items: center; gap: 12px; margin-top: 26px; }
.primary-button, .submit-button {
  min-height: 50px; padding: 12px 21px; border: 0; border-radius: 11px; color: #fff; background: var(--navy);
  font-size: 12px; font-weight: 900; letter-spacing: .07em; cursor: pointer; box-shadow: 0 9px 22px rgba(9,37,75,.18);
}
.primary-button:hover, .submit-button:hover { background: #103d75; transform: translateY(-1px); }
.ghost-button, .back-button { min-height: 44px; padding: 9px 14px; border: 1px solid #cbd6e3; border-radius: 10px; background: #fff; font-size: 12px; font-weight: 800; cursor: pointer; }

.quest-section { margin-top: 28px; transition: opacity .2s; }
.quest-section.locked { opacity: .46; pointer-events: none; filter: grayscale(.3); }
.quest-heading { align-items: end; margin-bottom: 16px; padding: 0 4px; }
.quest-heading h2 { font-size: clamp(34px, 6vw, 58px); letter-spacing: -.04em; }
.quest-heading p { margin: 5px 0 0; color: var(--muted); }
.date-control { width: 190px; padding: 13px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.date-control span { font-size: 10px; letter-spacing: .12em; }
.date-control input { min-height: 36px; padding: 4px; border: 0; }
.date-control input:focus { box-shadow: none; }
.quest-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; }
.quest-button {
  position: relative; min-height: 164px; display: flex; flex-direction: column; justify-content: space-between; align-items: flex-start;
  padding: 16px; overflow: hidden; border: 1px solid var(--line); border-radius: 17px; color: var(--navy); background: #fff;
  text-align: left; cursor: pointer; box-shadow: 0 10px 24px rgba(10,32,67,.07); transition: transform .17s, box-shadow .17s, border-color .17s;
}
.quest-button::after { content: ""; position: absolute; inset: auto -30px -45px auto; width: 105px; height: 105px; border-radius: 50%; background: var(--quest-accent, #e8eef6); opacity: .18; }
.quest-button:hover { transform: translateY(-4px); border-color: var(--quest-accent, var(--blue)); box-shadow: 0 18px 32px rgba(10,32,67,.13); }
.quest-button.completed { border-color: #88d2b5; background: #f7fffb; }
.quest-button.completed .quest-number { color: #fff; background: var(--green); }
.quest-button.morning { --quest-accent: #0d74d7; }
.quest-button.training { --quest-accent: #19a178; }
.quest-button.rpe { --quest-accent: #e99d28; }
.quest-button.game { --quest-accent: #8c5bcc; }
.quest-button.travel { --quest-accent: #1590a4; }
.quest-button.rest { --quest-accent: #5e718b; }
.quest-number { display: grid; place-items: center; width: 33px; height: 33px; border-radius: 9px; color: var(--quest-accent); background: color-mix(in srgb, var(--quest-accent) 13%, white); font-size: 11px; font-weight: 900; }
.quest-button > span:nth-child(2) { display: flex; flex-direction: column; gap: 5px; }
.quest-button strong { font-size: 16px; letter-spacing: .055em; }
.quest-button small { color: var(--muted); font-size: 13px; line-height: 1.35; }
.quest-button i { position: absolute; right: 14px; top: 15px; color: var(--quest-accent); font-size: 20px; font-style: normal; }

.shared-reports-section { margin-top:22px; padding:20px; border:1px solid #9fd3c1; border-radius:18px; background:linear-gradient(135deg,#f6fcfa,#eef8f5); box-shadow:0 12px 28px rgba(9,91,68,.08); }
.shared-reports-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.shared-reports-heading h2 { margin:4px 0 3px; color:var(--navy); font-size:22px; }
.shared-reports-heading p { margin:0; color:var(--muted); font-size:13px; line-height:1.45; }
.shared-reports-list { display:grid; gap:10px; margin-top:16px; }
.shared-report-card { border:1px solid #c8e1d8; border-radius:13px; overflow:hidden; background:#fff; }
.shared-report-card > summary { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:12px; padding:14px; cursor:pointer; }
.shared-report-card > summary span { padding:6px 8px; border-radius:999px; color:#087653; background:#e2f6ed; font-size:10px; font-weight:900; letter-spacing:.07em; }
.shared-report-card > summary strong { color:#173c55; font-size:14px; }
.shared-report-card > summary small { color:#70879a; font-size:11px; }
.shared-report-body { padding:16px; border-top:1px solid #dcebe5; }
.coach-report-rich { display:grid; gap:12px; }
.coach-report-title { display:grid; gap:4px; padding:14px 15px; border-radius:11px; color:#fff; background:linear-gradient(135deg,#092b4a,#126c91); box-shadow:0 8px 20px rgba(9,43,74,.13); }
.coach-report-title span { color:#74e1ea; font-size:10px; font-weight:950; letter-spacing:.1em; text-transform:uppercase; }
.coach-report-title strong { color:#fff; font-size:15px; line-height:1.3; }
.coach-report-status { display:grid; gap:7px; padding:10px 11px; border:1px solid #bedde8; border-radius:10px; background:#f0f9fc; }
.coach-report-status > strong { color:#176f91; font-size:10px; font-weight:950; letter-spacing:.08em; text-transform:uppercase; }
.coach-report-status > div { display:flex; flex-wrap:wrap; gap:6px; }
.coach-report-status span { padding:4px 7px; border-radius:999px; color:#28556d; background:#fff; font-size:11px; font-weight:800; }
.coach-report-section { overflow:hidden; border:1px solid #dce7ed; border-radius:11px; background:#fff; }
.coach-report-section h4 { margin:0; padding:9px 11px; border-left:4px solid currentColor; font-size:12px; font-weight:950; letter-spacing:.04em; text-transform:uppercase; }
.coach-report-section > div { padding:11px 12px 13px; }
.coach-report-section p,.coach-report-intro p { margin:0 0 9px; color:#29465d; font-size:14px; line-height:1.65; }
.coach-report-section p:last-child,.coach-report-intro p:last-child { margin-bottom:0; }
.coach-report-section ol { display:grid; gap:8px; margin:0; padding-left:23px; color:#29465d; }
.coach-report-section li { padding-left:2px; font-size:14px; line-height:1.55; }
.coach-report-section li::marker { color:#a96d12; font-weight:950; }
.coach-report-section.tone-reviewed h4 { color:#087a86; background:#effbfd; }
.coach-report-section.tone-assessment h4 { color:#155c9c; background:#f1f7fc; }
.coach-report-section.tone-clarify { border-color:#ecd29c; }.coach-report-section.tone-clarify h4 { color:#9b6510; background:#fff8e9; }
.coach-report-section.tone-direction { border-color:#b8dfd0; }.coach-report-section.tone-direction h4 { color:#0b7657; background:#effaf5; }
.coach-report-plain { color:#29465d; font-size:14px; line-height:1.65; white-space:pre-wrap; }
.shared-report-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:14px; padding-top:12px; border-top:1px solid #e1ece7; }
.shared-report-footer small { color:#70879a; font-size:11px; }
.shared-report-footer button { flex:0 0 auto; min-height:38px; padding:9px 12px; border:0; border-radius:9px; color:#fff; background:#0b704f; font-size:10px; font-weight:900; letter-spacing:.06em; cursor:pointer; }

.form-workspace { margin-top: 28px; padding: clamp(20px, 4vw, 38px); }
.workspace-heading { align-items: center; padding-bottom: 23px; border-bottom: 1px solid var(--line); }
.workspace-heading > div { flex: 1; }
.workspace-heading h2 { margin-top: 4px; }
.workspace-heading p { margin: 6px 0 0; color: var(--muted); }
.test-badge { color: #925a0b; background: #fff0d9; }
.entry-form { padding-top: 8px; }
.programme-uploader { display:grid; grid-template-columns:58px minmax(0,1fr) auto; align-items:center; gap:16px; margin:18px 0 24px; padding:18px; border:1px solid #a9dae1; border-radius:17px; background:linear-gradient(135deg,#f5fdfe,#edf8fb); box-shadow:0 12px 28px rgba(10,78,99,.08); }
.programme-uploader-icon { width:58px; height:58px; display:grid; place-items:center; border-radius:15px; color:#fff; background:linear-gradient(145deg,#0a315b,#117c91); font-size:12px; font-weight:900; letter-spacing:.08em; }
.programme-uploader-copy { min-width:0; }
.programme-uploader-copy > span { color:#158697; font-size:10px; font-weight:900; letter-spacing:.1em; }
.programme-uploader-copy h3 { margin:5px 0 4px; color:var(--navy); font-size:17px; }
.programme-uploader-copy p { margin:0; color:var(--muted); font-size:12px; line-height:1.45; }
.programme-uploader-copy small { display:block; margin-top:7px; color:#16715b; font-size:11px; font-weight:800; }
.programme-uploader-actions { display:grid; gap:7px; min-width:168px; }
.programme-upload-button,.programme-download-button { min-height:42px; display:flex; align-items:center; justify-content:center; padding:9px 13px; border:0; border-radius:10px; color:#fff; background:#0c6d7d; font-size:10px; font-weight:900; letter-spacing:.06em; cursor:pointer; }
.programme-upload-button.secondary { border:1px solid #7ab5c0; color:#15465a; background:#eaf8fa; }
.programme-download-button { border:1px solid #a9cbd2; color:#15465a; background:#fff; }
.programme-uploader.busy { opacity:.68; pointer-events:none; }
.gps-pilot-notice { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:start; gap:12px; margin:14px 0 4px; padding:14px 16px; border:1px solid #efd08e; border-radius:14px; background:#fff9eb; }
.gps-pilot-notice>span { padding:7px 9px; border-radius:8px; color:#fff; background:#9c6714; font-size:9px; font-weight:900; letter-spacing:.08em; }
.gps-pilot-notice strong { display:block; color:#754c0b; font-size:11px; letter-spacing:.04em; }
.gps-pilot-notice p { margin:4px 0 0; color:#705d3c; font-size:12px; line-height:1.45; }
.form-section-title { display: flex; align-items: center; gap: 13px; margin: 27px 0 16px; }
.form-section-title > span { flex: 0 0 36px; width: 36px; height: 36px; display: grid; place-items: center; border-radius: 10px; color: #fff; background: var(--navy); font-size: 11px; font-weight: 900; }
.form-section-title h3 { margin: 0 0 2px; color: var(--navy); font-size: 17px; }
.form-section-title p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.4; }
.specific-fields { margin-top: 17px; padding: 18px; border: 1px solid #cfe2f5; border-radius: 15px; background: #f5faff; }
.specific-fields:empty { display: none; }
.specific-fields .specific-title { margin: 0 0 13px; color: var(--navy); font-size: 12px; font-weight: 900; letter-spacing: .08em; }
.training-category-fieldset { margin: 0; padding: 18px; border: 1px solid #cfe2f5; border-radius: 17px; background: #f6faff; }
.training-category-fieldset legend { padding: 0 8px; }
.training-category-buttons { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 9px; }
.training-category-buttons button {
  position: relative; min-height: 126px; display: flex; flex-direction: column; align-items: flex-start; gap: 7px;
  padding: 13px; border: 1px solid #cbd8e6; border-radius: 13px; text-align: left; background: #fff;
  cursor: pointer; transition: border-color .16s, background .16s, transform .16s, box-shadow .16s;
}
.training-category-buttons button > span { width: 33px; height: 33px; display: grid; place-items: center; border-radius: 9px; color: var(--blue); background: #eaf3ff; font-size: 11px; font-weight: 900; }
.training-category-buttons button strong { color: var(--navy); font-size: 13px; line-height: 1.25; }
.training-category-buttons button small { color: var(--muted); font-size: 11px; line-height: 1.35; }
.training-category-buttons button:hover { transform: translateY(-2px); border-color: var(--blue); }
.training-category-buttons button.active { border-color: var(--green); background: #f1fbf7; box-shadow: 0 0 0 3px rgba(23,166,115,.1); }
.training-category-buttons button.active > span { color: #fff; background: var(--green); }
.training-category-buttons button.active::after {
  content: attr(data-priority); position: absolute; top: 10px; right: 9px; padding: 4px 6px;
  border-radius: 999px; color: #fff; background: var(--navy); font-size: 8px; font-weight: 900; letter-spacing: .06em;
}
.training-category-selection { display: flex; justify-content: space-between; gap: 12px; margin-top: 12px; padding: 10px 12px; border-radius: 10px; color: var(--muted); background: #eaf1f8; font-size: 12px; }
.training-category-selection strong { color: var(--navy); }
.training-aim-selections { display: grid; gap: 10px; margin-top: 12px; }
.training-aim-row { display: grid; grid-template-columns: minmax(180px, .75fr) minmax(0, 1.25fr); align-items: center; gap: 12px; padding: 12px; border: 1px solid #d7e2ec; border-radius: 12px; background: #fff; }
.training-aim-row > div { display: flex; align-items: center; gap: 9px; min-width: 0; }
.training-aim-row .aim-priority { flex: 0 0 auto; padding: 4px 7px; border-radius: 999px; color: #fff; background: var(--navy); font-size: 9px; font-weight: 900; letter-spacing: .06em; }
.training-aim-row strong { color: var(--navy); font-size: 13px; line-height: 1.25; }
.training-aim-row label { display: block; }
.training-dose-grid { align-items: end; }
.coach-capture { margin-top:18px; padding:18px; border:1px solid #b9dfe5; border-radius:16px; background:linear-gradient(145deg,#f5fdfe,#edf9fb); }
.coach-capture-heading { display:grid; grid-template-columns:auto 1fr; align-items:center; gap:4px 10px; }
.coach-capture-heading > span { grid-row:1/3; align-self:start; padding:6px 8px; border-radius:8px; color:#fff; background:#158c9b; font-size:9px; font-weight:900; letter-spacing:.1em; }
.coach-capture-heading strong { color:var(--navy); font-size:15px; }
.coach-capture-heading p { margin:0; color:var(--muted); font-size:12px; line-height:1.4; }
.category-capture { margin-top:15px; padding-top:15px; border-top:1px solid #cde7eb; }
.category-capture > label { display:block; max-width:360px; }
.training-dose-guidance { margin:12px 0 0; color:#31556b; font-size:13px; line-height:1.45; }
.source-status { display:flex; align-items:center; flex-wrap:wrap; gap:7px 12px; margin-bottom:13px; padding:11px 13px; border-radius:11px; color:#557080; background:#fff; }
.source-status span { color:#158c9b; font-size:9px; font-weight:900; letter-spacing:.1em; }
.source-status strong { color:var(--navy); font-size:12px; }
.source-status small { margin-left:auto; font-size:10px; }
.content-field textarea { min-height: 126px; border-color: #9ec9bb; background: #f8fffc; }
.wide-label { margin-top: 17px; }
.polar-link-request { grid-column: 1 / -1; min-width: 0; padding: 14px; border: 1px solid #b9dfe5; border-radius: 12px; background: #f5fdfe; }
.polar-link-request span, .polar-link-request small { display: block; line-height: 1.5; }
.hr-grid { padding: 17px; border: 1px solid #b9e3d3; border-radius: 15px; background: #f2fbf7; }
.submit-button { display: block; min-width: 245px; margin: 26px 0 0 auto; background: var(--green); }
.submit-button:hover { background: #12845c; }
.submit-button:disabled { cursor: wait; opacity: .6; transform: none; }
.load-output { display: grid; grid-template-columns: 1fr auto; align-items: end; margin: 18px 0; padding: 18px; border-radius: 15px; color: #fff; background: linear-gradient(120deg, var(--navy-deep), #123e72); }
.load-output span { grid-column: 1; font-size: 10px; font-weight: 900; letter-spacing: .12em; color: #a9c4e5; }
.load-output strong { grid-column: 1; margin-top: 3px; font-size: 28px; }
.load-output small { grid-row: 1 / 3; grid-column: 2; align-self: center; color: #c4d7eb; }
.rest-confirmation { display: flex; align-items: center; gap: 18px; margin: 28px 0 18px; padding: 22px; border-radius: 17px; background: #eef2f7; }
.rest-confirmation > span { width: 68px; height: 68px; display: grid; place-items: center; border-radius: 18px; color: #fff; background: #5e718b; font-weight: 900; }
.rest-confirmation h3 { margin: 0 0 4px; color: var(--navy); }
.rest-confirmation p { margin: 0; color: var(--muted); line-height: 1.45; }
.check-label { flex-direction: row; align-items: center; margin: 18px 0; padding: 17px; border: 1px solid var(--line); border-radius: 13px; }
.check-label input { width: 20px; min-height: 20px; accent-color: var(--blue); }

.performance-tests-section { margin-top:22px; padding:clamp(20px,3vw,30px); border:1px solid #add9e6; border-radius:22px; background:linear-gradient(135deg,#fff 0%,#f0fbfe 100%); box-shadow:var(--shadow); }
.performance-tests-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; }
.performance-tests-heading h2 { margin:4px 0 4px; color:var(--navy); font-size:clamp(25px,3vw,34px); letter-spacing:.02em; }
.performance-tests-heading p { max-width:680px; margin:0; color:var(--muted); font-size:13px; line-height:1.5; }
.performance-test-button { min-height:48px; display:inline-flex; align-items:center; justify-content:center; gap:8px; flex:0 0 auto; padding:0 18px; border:0; border-radius:12px; color:#fff; background:linear-gradient(135deg,#0d5eaa,#0f8fad); box-shadow:0 11px 24px rgba(13,94,170,.17); font-size:12px; font-weight:900; letter-spacing:.05em; cursor:pointer; }
.performance-test-button span { font-size:20px; line-height:1; }
.test-history-import-button { flex:1 0 100%; min-height:64px; justify-content:flex-start; padding:10px 17px; border:2px solid rgba(86,230,231,.65); background:linear-gradient(125deg,#062f5a 0%,#087b9c 100%); box-shadow:0 14px 28px rgba(7,74,113,.22); }
.test-history-import-button:hover { transform:translateY(-1px); box-shadow:0 18px 34px rgba(7,74,113,.28); }
.test-history-import-button .test-history-import-icon { width:38px; height:38px; display:grid; place-items:center; flex:0 0 auto; border:1px solid rgba(255,255,255,.35); border-radius:11px; color:#fff; background:rgba(255,255,255,.1); font-size:22px; }
.test-history-import-button .test-history-import-copy { min-width:0; display:grid; gap:4px; color:#fff; font-size:inherit; line-height:1.15; text-align:left; }
.test-history-import-copy strong { font-size:12px; letter-spacing:.055em; }
.test-history-import-copy small { color:#c6f0f4; font-size:10px; font-weight:750; letter-spacing:0; line-height:1.3; }
.performance-tests-info { display:flex; align-items:center; gap:13px; margin-top:18px; padding:12px 14px; border:1px solid #d5e8ee; border-radius:12px; background:#fff; }
.performance-tests-info strong { flex:0 0 auto; color:#0c679a; font-size:10px; letter-spacing:.1em; }
.performance-tests-info span { color:#62798c; font-size:12px; line-height:1.45; }
.performance-tests-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-top:12px; }
.performance-test-card { min-width:0; display:grid; gap:9px; padding:15px; border:1px solid #d9e8ef; border-radius:14px; background:#fff; box-shadow:0 7px 18px rgba(9,50,81,.045); }
.performance-test-card header { display:flex; align-items:flex-start; justify-content:space-between; gap:8px; }
.performance-test-card header span { padding:5px 7px; border-radius:7px; color:#0c648e; background:#e8f7fb; font-size:9px; font-weight:900; letter-spacing:.08em; }
.performance-test-card header time { color:#7d8fa0; font-size:10px; font-weight:800; }
.performance-test-card h3 { margin:0; overflow:hidden; color:var(--navy); font-size:15px; line-height:1.25; text-overflow:ellipsis; white-space:nowrap; }
.performance-test-results { display:flex; flex-wrap:wrap; gap:6px; }
.performance-test-results span { padding:6px 8px; border-radius:8px; color:#124869; background:#f1f7fa; font-size:10px; }
.performance-test-results b { color:#0b2f4e; }
.performance-test-card small { color:#718396; font-size:10px; line-height:1.45; }
.performance-tests-empty { grid-column:1/-1; padding:18px; border:1px dashed #bedbe4; border-radius:13px; color:#62798c; background:rgba(255,255,255,.68); text-align:center; font-size:12px; }
.test-documents-list { display:grid; gap:8px; margin-top:12px; }
.test-document-card { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:12px 14px; border:1px solid #d4e7ed; border-radius:13px; background:#fff; }
.test-document-card > div { min-width:0; display:grid; gap:3px; }
.test-document-card span { color:#0a7692; font-size:9px; font-weight:950; letter-spacing:.08em; }
.test-document-card strong { overflow:hidden; color:var(--navy); font-size:13px; text-overflow:ellipsis; white-space:nowrap; }
.test-document-card small { color:#718596; font-size:10px; }
.test-document-card a { flex:0 0 auto; padding:8px 11px; border-radius:9px; color:#fff; background:#0d6ca8; font-size:10px; font-weight:900; text-decoration:none; }
.test-document-body { display:grid; gap:16px; }
.test-document-body > label { display:grid; gap:7px; color:#183b59; font-size:12px; font-weight:850; }
.test-document-body input[type="file"] { width:100%; padding:14px; border:1px dashed #79cbd5; border-radius:12px; background:#f1fcfd; }
.test-document-process { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
.test-document-process span { display:flex; align-items:center; justify-content:center; gap:7px; padding:10px 7px; border-radius:10px; color:#2d627a; background:#eff7fa; font-size:10px; font-weight:850; }
.test-document-process b { width:22px; height:22px; display:grid; place-items:center; border-radius:50%; color:#fff; background:#0e82a1; }
.test-document-rule { margin:0; padding:12px 14px; border-left:4px solid #e2a82f; border-radius:8px; color:#5e6f7d; background:#fff9eb; font-size:11px; line-height:1.5; }
.span-two { grid-column:span 2; }
.official-medical-plan { border:2px solid #dd4654; background:linear-gradient(140deg,#fff 0%,#fff5f6 100%); box-shadow:0 16px 38px rgba(181,44,56,.11); }
.official-medical-plan-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.official-medical-plan-head span { color:#bd2e3c; font-size:9px; font-weight:950; letter-spacing:.12em; }
.official-medical-plan-head h2 { margin:4px 0; color:var(--navy); }
.official-medical-plan-head p { margin:0; color:#788998; font-size:11px; }
.official-medical-plan-head > strong { padding:7px 10px; border-radius:999px; color:#fff; background:#c73543; font-size:9px; letter-spacing:.08em; }
.official-medical-plan-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:16px; }
.official-medical-plan-grid article { min-width:0; padding:12px; border:1px solid #efd4d7; border-radius:12px; background:#fff; }
.official-medical-plan-grid article > span { display:block; margin-bottom:6px; color:#98545b; font-size:9px; font-weight:900; letter-spacing:.08em; }
.official-medical-plan-grid strong,.official-medical-plan-grid p { margin:0; color:#183752; font-size:12px; line-height:1.45; white-space:pre-wrap; }
.official-medical-plan-grid small { display:block; margin-top:4px; color:#718596; font-size:10px; line-height:1.4; }
.medical-plan-safety { margin:12px 0 0; color:#73353b; font-size:10px; line-height:1.5; }
.test-results-grid { display:grid; gap:10px; margin:18px 0; }
.test-result-row { display:grid; grid-template-columns:110px minmax(180px,1.3fr) minmax(120px,.65fr) minmax(100px,.45fr); align-items:end; gap:12px; padding:14px; border:1px solid #cee0e9; border-radius:13px; background:#f7fbfd; }
.test-result-row > strong { align-self:center; color:#0d699a; font-size:9px; letter-spacing:.1em; }
.test-result-row.optional { background:#fff; }
.test-history-import-guide { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:20px; padding:16px 18px; border:1px solid #6dcbd5; border-radius:15px; background:linear-gradient(135deg,#eafafd,#f8feff); box-shadow:0 9px 22px rgba(10,103,142,.08); }
.test-history-import-guide > div { display:grid; gap:4px; }
.test-history-import-guide span { color:#0b7190; font-size:9px; font-weight:950; letter-spacing:.12em; }
.test-history-import-guide strong { color:#082f54; font-size:18px; }
.test-history-import-guide p { max-width:720px; margin:0; color:#5f778a; font-size:12px; line-height:1.45; }
.test-history-import-guide button { min-height:42px; flex:0 0 auto; padding:0 14px; border:1px solid #9dcbd5; border-radius:10px; color:#174d69; background:#fff; font-size:10px; font-weight:900; letter-spacing:.05em; cursor:pointer; }

.recent-section { margin-top: 28px; padding: clamp(20px, 3vw, 30px); }
.section-heading.compact { align-items: center; }
.recent-entries { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 17px; }
.recent-entry { display: grid; grid-template-columns: 34px minmax(0, 1fr); align-items: center; gap: 11px; min-width: 0; padding: 13px; border: 1px solid var(--line); border-radius: 13px; }
.recent-entry > span { width: 34px; height: 34px; display: grid; place-items: center; flex: 0 0 34px; border-radius: 10px; color: #fff; background: var(--green); font-weight: 900; }
.recent-entry div { min-width: 0; }
.recent-entry strong, .recent-entry small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.recent-entry strong { color: var(--navy); font-size: 14px; }
.recent-entry small { margin-top: 3px; color: var(--muted); font-size: 13px; }
.recent-entry .saved-entry-details { grid-column: 1 / -1; border-top: 1px solid var(--line); padding-top: 9px; }
.saved-entry-details summary { color: var(--navy); font-size: 12px; font-weight: 800; cursor: pointer; }
.saved-entry-details dl { display: grid; gap: 7px; margin: 12px 0 0; font-size: 12px; }
.saved-entry-details dl div { display: grid; grid-template-columns: 100px minmax(0, 1fr); gap: 8px; }
.saved-entry-details dt { color: var(--muted); font-weight: 750; }
.saved-entry-details dd { margin: 0; color: var(--navy); overflow-wrap: anywhere; white-space: pre-wrap; }
.saved-entry-details button { min-height: 36px; margin-top: 12px; border: 1px solid var(--line); border-radius: 9px; padding: 0 12px; color: var(--navy); background: #fff; font-weight: 800; cursor: pointer; }
.saved-form-note { margin: 10px 0; border: 1px solid #91c5d3; border-radius: 10px; padding: 11px 13px; color: #153d54; background: #f1fbfd; font-size: 13px; line-height: 1.4; }
.form-send-status:not(:empty) { margin: 12px 0; border: 1px solid #dd9ca3; border-radius: 10px; padding: 11px 13px; color: #862630; background: #fff5f5; font-size: 13px; font-weight: 750; }

footer { display: flex; justify-content: space-between; gap: 20px; padding: 25px clamp(22px, 5vw, 72px); color: #a9bad1; background: var(--navy-deep); font-size: 12px; }
footer span:first-child { color: #fff; font-weight: 800; }
.toast { position: fixed; z-index: 20; left: 50%; bottom: 22px; max-width: calc(100% - 32px); transform: translate(-50%, 140%); padding: 13px 18px; border-radius: 11px; color: #fff; background: var(--navy-deep); font-size: 13px; font-weight: 700; box-shadow: 0 18px 50px rgba(4,21,46,.3); opacity: 0; transition: transform .25s, opacity .25s; }
.toast.visible { transform: translate(-50%, 0); opacity: 1; }
.toast.error { background: #a8323d; }
.hidden { display: none !important; }

@media (max-width: 980px) {
  .device-setup, .body-metrics-setup { grid-template-columns: 1fr; }
  .quest-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .training-category-buttons { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .four-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .recent-entries { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .performance-tests-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .test-result-row { grid-template-columns:90px minmax(170px,1fr) minmax(110px,.6fr) minmax(90px,.45fr); }
}
@media (max-width: 720px) {
  .app-header { min-height: 64px; padding: 11px 16px; }
  .official-app-title { font-size:9px; letter-spacing:.13em; }
  .official-label strong { font-size: 13px; }
  .official-label span { max-width: 150px; font-size: 11px; }
  .page-shell { width: min(100% - 20px, 1180px); margin-top: 10px; }
  .pilot-banner { align-items: flex-start; }
  .access-state { align-items: flex-start; }
  .access-state .access-icon { width: 54px; height: 54px; flex-basis: 54px; border-radius: 15px; }
  .identified-official { grid-template-columns: 54px 1fr; padding: 15px; }
  .official-avatar { width: 54px; height: 54px; border-radius: 15px; font-size: 17px; }
  .profile-photo-actions { grid-column: 2; justify-items: start; }
  .profile-photo-actions small { text-align: left; }
  .install-card { grid-template-columns: 50px 1fr; }
  .install-rm-icon { width: 50px; height: 50px; border-radius: 14px; }
  .install-actions { grid-column: 1 / -1; }
  .install-actions button { flex: 1; }
  .body-metrics-form { grid-template-columns: 1fr; }
  .device-setup-form { grid-template-columns:1fr; }
  .device-setup-form .primary-button,.device-setup-status { grid-column:1; }
  .device-setup-form .primary-button { width:100%; }
  .body-metrics-form .primary-button, .body-metrics-status { grid-column: 1; }
  .body-metrics-form .primary-button { width: 100%; justify-self: stretch; }
  .identity-grid, .three-columns, .two-columns { grid-template-columns: 1fr; }
  .role-selector { grid-template-columns: 1fr 1fr; }
  .quest-heading { align-items: flex-end; }
  .quest-heading p { max-width: 190px; font-size: 12px; }
  .date-control { width: 145px; }
  .quest-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .quest-button { min-height: 138px; }
  .workspace-heading { display: grid; grid-template-columns: 1fr auto; }
  .workspace-heading > div { grid-column: 1 / 3; grid-row: 2; }
  .test-badge { grid-column: 2; grid-row: 1; }
  .recent-entries { grid-template-columns: 1fr; }
  .shared-reports-heading { align-items:stretch; flex-direction:column; }
  .shared-reports-heading .ghost-button { width:100%; }
  .shared-report-card > summary { grid-template-columns:1fr; }
  .shared-report-footer { align-items:stretch; flex-direction:column; }
  .shared-report-footer button { width:100%; }
  .performance-tests-heading { align-items:stretch; flex-direction:column; }
  .performance-test-button { width:100%; }
  .test-history-import-button { min-height:72px; }
  .test-history-import-guide { align-items:stretch; flex-direction:column; }
  .test-history-import-guide button { width:100%; }
  .performance-tests-info { align-items:flex-start; flex-direction:column; }
  .performance-tests-list { grid-template-columns:1fr; }
  .test-document-process { grid-template-columns:repeat(2,1fr); }
  .test-document-card { align-items:flex-start; }
  .official-medical-plan-grid { grid-template-columns:1fr; }
  .span-two { grid-column:auto; }
  .test-result-row { grid-template-columns:1fr 1fr; }
  .test-result-row > strong { grid-column:1/-1; }
  .test-result-row label:first-of-type { grid-column:1/-1; }
  .training-category-buttons { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .training-aim-row { grid-template-columns: 1fr; }
  .programme-uploader { grid-template-columns:48px 1fr; align-items:start; padding:15px; }
  .programme-uploader-icon { width:48px; height:48px; border-radius:13px; }
  .programme-uploader-actions { grid-column:1/-1; grid-template-columns:1fr 1fr; width:100%; }
  footer { flex-direction: column; }
}
@media (max-width: 460px) {
  .official-label span { display: none; }
  .app-header { gap: 10px; }
  .official-app-title span { font-size:0; }
  .official-app-title span::after { content:"MONITORING"; font-size:9px; }
  .profile-card, .form-workspace { border-radius: 17px; }
  .access-card { padding: 22px 18px; border-radius: 17px; }
  .access-state { flex-direction: column; gap: 14px; }
  .identified-official { grid-template-columns: 48px 1fr; gap: 12px; }
  .official-avatar { width: 48px; height: 48px; border-radius: 13px; }
  .section-heading { gap: 10px; }
  .section-heading .status-pill { margin-top: 2px; }
  .role-selector, .four-columns { grid-template-columns: 1fr; }
  .training-category-buttons { grid-template-columns: 1fr; }
  .programme-uploader-actions { grid-template-columns:1fr; }
  .gps-pilot-notice { grid-template-columns:1fr; }
  .device-option { min-height: 92px; }
  .training-category-buttons button { min-height: 105px; }
  .training-category-selection { flex-direction: column; }
  .install-actions { align-items: stretch; flex-direction: column; }
  .role-button { min-height: 75px; }
  .quest-heading { align-items: stretch; flex-direction: column; }
  .date-control { width: 100%; }
  .quest-grid { grid-template-columns: 1fr; }
  .quest-button { min-height: 112px; }
  .profile-actions { align-items: stretch; flex-direction: column; }
  .profile-actions button { width: 100%; }
  .submit-button { width: 100%; min-width: 0; }
  .rest-confirmation { align-items: flex-start; }
  .test-result-row { grid-template-columns:1fr; }
  .test-result-row > strong,.test-result-row label:first-of-type { grid-column:auto; }
}
.coach-alert-button{position:sticky;top:80px;z-index:14;display:block;margin:0 0 16px auto;box-shadow:0 3px 14px #15253c24;min-height:44px}
.coach-inbox{scroll-margin-top:140px}
.message-alert{background:#fff0d5!important;color:#8a4200!important;animation:message-pulse 1.8s ease-in-out infinite}
@keyframes message-pulse{50%{box-shadow:0 0 0 4px #e99a3540}}
@media(prefers-reduced-motion:reduce){.message-alert{animation:none}}
.upcoming-game{margin:18px 0;padding:20px;border:1px solid #c6dfe8;border-radius:16px;background:#f5fbfd;color:#153450}
.upcoming-game .match-status-card{margin:16px 0;padding:16px;border-radius:10px;border-left:5px solid #8c9ba8;background:#fff;overflow-wrap:anywhere}
.upcoming-game .match-status-card span{display:block;font-size:11px;font-weight:750;color:#577081}
.upcoming-game .match-status-card strong{display:block;font-size:18px;margin:7px 0;color:#29495f}
.upcoming-game .match-status-card p{font-size:13px;margin:0;line-height:1.6}
.upcoming-game .match-status-card.announced{border-left-color:#bb7422;background:#fff7e9}
.upcoming-game .match-status-card.upcoming{border-left-color:#267cb0;background:#eef7fc}
.upcoming-game .match-status-card.recorded{border-left-color:#25816e;background:#eff9f4}
.match-entry-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.match-entry-actions button{min-height:48px;white-space:normal;line-height:1.5;padding:12px}
.after-match-button{border:1px solid #9cbbc9;border-radius:10px;background:#fff;color:#20516b;font:inherit;font-size:12px;font-weight:750;cursor:pointer}
.pre-match-note{padding:16px;background:#eef7fc;border:1px solid #bad7e6;border-radius:12px;margin-bottom:20px}.pre-match-note p{line-height:1.5;margin:6px 0 12px}.pre-match-note button{min-height:44px;padding:10px 14px}
@media(max-width:650px){.match-entry-actions{grid-template-columns:1fr}.upcoming-game{padding:16px}.upcoming-game-form input,.upcoming-game-form select{font-size:16px}}
.upcoming-game-heading{display:flex;justify-content:space-between;align-items:center;gap:16px}
.upcoming-game-heading h3{margin:4px 0 6px;font-size:1.3rem}
.upcoming-game-heading p{margin:0;max-width:55rem;line-height:1.5}
.upcoming-game-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}
.upcoming-game-form label{display:grid;gap:6px;font-size:.9rem;font-weight:600}
.upcoming-game-form input,.upcoming-game-form select{min-width:0;padding:10px;border:1px solid #a8c6d4;border-radius:8px;font:inherit}
.upcoming-game-form button{align-self:end}
.upcoming-game-list{display:grid;gap:8px;margin-top:12px}
.upcoming-game-list article{display:grid;gap:3px;padding:12px 14px;border:1px solid #d7e5ec;border-radius:10px;background:#fff}
.upcoming-game-list small{color:#136478;font-weight:700}
.upcoming-game-form.hidden{display:none}
.match-polar-picker{display:grid;gap:8px;margin:0 0 20px;padding:16px;border:1px solid #b9dce5;border-radius:12px;background:#f1fafc}
.match-polar-picker p{margin:0}
.match-polar-picker button{justify-self:start;padding:10px 14px;border:0;border-radius:8px;background:#0c7188;color:#fff;font:inherit;font-weight:700;cursor:pointer}
.match-polar-picker select{max-width:100%;padding:10px;border:1px solid #a8c6d4;border-radius:8px;font:inherit}
.match-polar-picker select.hidden{display:none}
@media(max-width:650px){.upcoming-game-heading{align-items:stretch;flex-direction:column}.upcoming-game-form{grid-template-columns:1fr}}
