:root { color-scheme: light; background: #f4f7fb; }
* { box-sizing: border-box; }
body { margin: 0; min-width: 320px; background: #f4f7fb; }
#arvento-erg-auto { --nav:#08111f; --surface:#fff; --panel:#f3f6f9; --line:#d8e0ea; --text:#0b1728; --muted:#43566d; --accent:#256dff; --good:#2fa66a; --danger:#b73a45; min-height:100vh; overflow-x:clip; color:var(--text); font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif; line-height:1.5; }
#arvento-erg-auto *,#arvento-erg-auto *::before,#arvento-erg-auto *::after { box-sizing:border-box; }
#arvento-erg-auto button,#arvento-erg-auto input { font:inherit; }
#arvento-erg-auto button:focus-visible,#arvento-erg-auto input:focus-visible,#arvento-erg-auto a:focus-visible { outline:3px solid rgba(37,109,255,.35); outline-offset:3px; }
.product-header { color:#fff; background:var(--nav); }
.header-inner { display:flex; width:min(1120px,calc(100% - 32px)); min-height:64px; margin:auto; align-items:center; gap:10px; font-size:.76rem; font-weight:800; letter-spacing:.11em; }
.header-inner > strong { letter-spacing:.16em; }
.header-inner > span:not(.brand-mark) { color:#b8c5d8; font-size:.66rem; letter-spacing:.04em; }
.brand-mark { display:grid; width:34px; height:34px; place-items:center; border-radius:10px; color:#fff; background:var(--accent); font-size:1rem; }
.header-inner a { display:flex; min-height:44px; margin-left:auto; padding:0 5px; align-items:center; border-radius:6px; color:#fff; font-size:.72rem; letter-spacing:.06em; text-decoration:none; white-space:nowrap; }
.header-inner a:hover { background:rgba(255,255,255,.09); }
.shell { display:grid; width:min(1080px,calc(100% - 32px)); margin:auto; padding:28px 0 88px; gap:14px; }
.hero { max-width:820px; padding:24px 0 12px; }
.product-kicker,.section-heading p,.summary > .section-heading p,dt { color:var(--accent); font-size:.8125rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.hero h1 { margin:6px 0 8px; font-size:clamp(2.75rem,7vw,4.75rem); font-weight:750; line-height:.95; letter-spacing:-.055em; }
.hero p { margin:0; color:var(--muted); font-size:clamp(1.15rem,2.4vw,1.55rem); font-weight:650; letter-spacing:-.02em; line-height:1.25; }
.panel { min-width:0; padding:26px; border:1px solid var(--line); border-radius:16px; background:var(--surface); box-shadow:0 10px 30px rgba(8,17,31,.045); }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:14px; margin-bottom:18px; }
.section-heading p { margin:0 0 6px; }
.section-heading h2,.summary h2 { margin:0; font-size:clamp(1.55rem,3vw,1.9rem); font-weight:720; line-height:1.1; letter-spacing:-.035em; }
.section-note { max-width:28rem; color:var(--muted); font-size:.9375rem; font-weight:500; text-align:right; }
.state-pill,.required-pill,.complete-pill { display:inline-flex; min-height:34px; padding:6px 11px; align-items:center; border:1px solid #c5d1df; border-radius:999px; color:#28405e; background:#eef3f8; font-size:.76rem; font-weight:800; letter-spacing:.045em; text-transform:uppercase; white-space:nowrap; }
.required-pill { border-color:#bcd0ff; color:#174fbd; background:#edf3ff; }
.complete-pill { border-color:#b9dfcc; color:#176743; background:#edf9f2; }
.status-message { min-height:1.5em; margin:0; padding:14px 16px; border-left:4px solid var(--accent); color:var(--muted); background:#f3f7ff; font-size:1rem; font-weight:600; }
.strava-connection > button { width:min(100%,320px); margin-top:16px; }
.strava-athlete { min-height:1.35em; margin:10px 0 0; color:var(--muted); font-size:.875rem; font-weight:650; }
.ftp-field { display:grid; max-width:430px; gap:10px; color:var(--muted); font-size:.8125rem; font-weight:700; letter-spacing:.04em; }
.field { display:flex; align-items:center; gap:10px; }
.field input { width:min(100%,230px); min-height:62px; padding:10px 14px; border:1px solid #bdc9d8; border-radius:11px; color:var(--text); background:#fff; font-size:1.75rem; font-weight:800; font-variant-numeric:tabular-nums; }
.field b { color:var(--muted); font-size:1rem; }
.trainer-card { display:grid; min-height:170px; gap:14px; padding:20px; border:1px solid var(--line); border-radius:13px; background:var(--panel); }
.trainer-card > div { display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:8px 18px; }
.trainer-card > div span { color:var(--muted); font-size:.8125rem; font-weight:700; letter-spacing:.04em; }
.trainer-card > div strong { overflow-wrap:anywhere; font-size:1.125rem; }
.trainer-card small,.metric-card small,.control-help,.summary-intro { color:var(--muted); font-size:.9375rem; font-weight:500; }
button { min-height:56px; padding:14px 18px; border:1px solid #bdc9d8; border-radius:11px; cursor:pointer; color:var(--text); background:#e7eef6; font-size:1rem; font-weight:750; letter-spacing:.02em; text-transform:uppercase; transition:background-color .15s ease,border-color .15s ease,transform .08s ease,opacity .15s ease; }
button:hover:not(:disabled) { border-color:#a9b8ca; background:#dde7f1; }
button:active:not(:disabled) { transform:translateY(1px); }
button:disabled { cursor:not-allowed; border-color:#d8e0ea; color:#718198; background:#edf1f5; opacity:.72; }
button.primary { border-color:var(--accent); color:#fff; background:var(--accent); }
button.primary:hover:not(:disabled) { border-color:#185ce5; background:#185ce5; }
button.danger { border-color:#e2a4aa; color:#8f2530; background:#fff0f1; }
button.danger:hover:not(:disabled) { border-color:#d95c66; background:#ffe4e6; }
.trainer-card button { width:100%; margin-top:auto; border-color:var(--accent); color:#fff; background:var(--accent); }
.zone-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.zone-grid button { width:100%; min-height:62px; border-color:#c8d3e0; background:var(--panel); font-size:1.05rem; white-space:nowrap; }
.zone-grid button:hover:not(:disabled) { border-color:#8ea0b7; background:#dfe8f2; }
.zone-grid button[aria-pressed="true"] { border-color:var(--accent); box-shadow:0 0 0 2px rgba(37,109,255,.2),0 4px 12px rgba(37,109,255,.18); color:#fff; background:var(--accent); }
.zone-detail { min-height:58px; margin:12px 0 0; padding:15px 18px; border-left:4px solid var(--accent); color:var(--muted); background:var(--panel); font-size:1.0625rem; font-weight:650; }
.power-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:10px; margin:18px 0 0; }
.metric-card { display:grid; min-width:0; align-content:start; gap:5px; padding:16px; border:1px solid var(--line); border-radius:12px; background:var(--panel); }
.metric-primary { grid-column:span 2; min-height:150px; padding:19px; }
.metric-secondary { grid-column:span 3; }
.metric-applied { border-color:#b9dfcc; background:#f1faf5; }
.metric-actual { color:#fff; background:var(--nav); }
.metric-actual dt,.metric-actual small { color:#dce7f5; }
.power-grid dt,.summary-grid dt { color:var(--muted); font-size:.8125rem; font-weight:700; letter-spacing:.035em; }
.power-grid dd,.summary-grid dd { margin:4px 0 0; overflow-wrap:anywhere; font-weight:780; font-variant-numeric:tabular-nums; line-height:1.15; }
.metric-primary dd { font-size:clamp(1.7rem,4vw,2.45rem); letter-spacing:-.045em; }
.metric-secondary dd { font-size:1.2rem; }
.button-row { display:grid; grid-template-columns:2fr 1fr 1fr; gap:10px; }
.button-row .danger { grid-column:1/-1; }
.controls .primary,.controls [data-action="pause"],.controls [data-action="resume"] { min-height:62px; font-size:1.0625rem; }
.controls [data-action="pause"]:not(:disabled),.controls [data-action="resume"]:not(:disabled) { border-color:var(--accent); color:#fff; background:var(--accent); }
.controls [data-action="pause"]:hover:not(:disabled),.controls [data-action="resume"]:hover:not(:disabled) { border-color:#185ce5; background:#185ce5; }
.control-help { margin:14px 0 0; }
.summary { border-color:#bcd0ff; }
.summary-intro { margin:-4px 0 20px; }
.summary-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:0; }
.summary-grid > div { min-width:0; padding:16px; border:1px solid var(--line); border-radius:11px; background:var(--panel); }
.summary-grid dd { font-size:1.25rem; }
.summary-distributions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-top:22px; }
.distribution { min-width:0; padding:18px; border:1px solid var(--line); border-radius:12px; background:var(--panel); }
.distribution h3 { margin:0 0 14px; font-size:1rem; letter-spacing:.05em; }
.distribution p { color:var(--muted); }
.distribution ol { display:grid; gap:9px; margin:0; padding:0; list-style:none; }
.distribution li { display:grid; grid-template-columns:3rem minmax(0,1fr) auto; gap:9px; color:var(--muted); font-size:.9375rem; font-variant-numeric:tabular-nums; }
.distribution li strong { color:var(--text); }
.summary-actions { display:flex; justify-content:flex-end; margin-top:24px; padding-top:20px; border-top:1px solid var(--line); }
.summary-actions button { min-width:min(100%,320px); }
.strava-summary { display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:12px; margin-top:22px; padding:18px; border:1px solid #bcd0ff; border-radius:12px; background:#f3f7ff; }
.strava-summary > div { display:grid; gap:4px; }
.strava-summary strong { color:var(--accent); font-size:.8125rem; letter-spacing:.08em; }
.strava-summary span { color:var(--muted); font-size:.9375rem; font-weight:650; }
.strava-summary a { display:inline-flex; min-height:56px; padding:14px 18px; align-items:center; justify-content:center; border:1px solid #bdc9d8; border-radius:11px; color:var(--text); background:#e7eef6; font-weight:750; text-decoration:none; }
@media (max-width:760px) {
  .section-heading { align-items:flex-start; flex-direction:column; gap:8px; }
  .section-note { text-align:left; }
  .power-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .metric-primary { grid-column:span 1; }
  .metric-actual { grid-column:1/-1; }
  .metric-secondary { grid-column:span 1; }
  .summary-grid,.summary-distributions { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .strava-summary { grid-template-columns:1fr; }
}
@media (max-width:520px) {
  .header-inner,.shell { width:min(calc(100% - 20px),1080px); }
  .header-inner { min-height:58px; }
  .header-inner > span:not(.brand-mark) { display:none; }
  .header-inner a { font-size:.66rem; }
  .shell { padding:12px 0 64px; gap:11px; }
  .hero { padding:18px 2px 9px; }
  .hero h1 { font-size:2.75rem; }
  .hero p { font-size:1.125rem; }
  .panel { padding:18px; border-radius:14px; }
  .zone-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .zone-grid button { min-height:68px; padding-inline:10px; font-size:1rem; }
  .power-grid,.summary-grid,.summary-distributions,.button-row { grid-template-columns:1fr; }
  .metric-primary,.metric-secondary,.metric-actual,.button-row .danger { grid-column:auto; }
  .metric-primary { min-height:0; }
  .trainer-card > div { align-items:flex-start; flex-direction:column; }
  .summary-actions button { width:100%; }
  .strava-summary button,.strava-summary a { width:100%; }
}
@media (prefers-reduced-motion:reduce) { #arvento-erg-auto * { scroll-behavior:auto !important; transition:none !important; } }
