/* Ready Performance Intelligence — v1.3.2
   One visual system, four responsive compositions. */
:root{
  --gutter:20px;
  --content-max:680px;
  --dock-clearance:104px;
  --radius-xl:30px;
  --radius-lg:22px;
  --ui-font:Inter,"Avenir Next","Segoe UI",ui-sans-serif,system-ui,sans-serif;
  --editorial-font:Iowan Old Style,Palatino Linotype,Book Antiqua,Georgia,ui-serif,serif;
  --canvas:#243746;
  --canvas-2:#1d2d3b;
  --panel:#314555;
  --panel-soft:rgba(230,238,241,.10);
  --line:rgba(232,241,242,.20);
  --text:#f4f5ef;
  --muted:#c2cbd0;
  --accent:#ff705d;
  --accent-ink:#351811;
  --action-text:#ff9d8f;
  --hero-overlay:rgba(18,31,40,.52);
  --hero-text:#f7f6f0;
  --shadow:0 24px 56px rgba(9,19,27,.24);
}

*{box-sizing:border-box}
html{background:var(--canvas);scroll-behavior:smooth}
body{min-width:320px;margin:0!important;background:var(--canvas)!important;color:var(--text)!important;font-family:var(--ui-font)!important;font-size:16px;line-height:1.45;transition:background .28s ease,color .28s ease}
body:has(#home-view.active){background:var(--canvas)!important}
body[data-sport="running"]{--canvas:#243746;--canvas-2:#1d2d3b;--panel:#304555;--panel-soft:rgba(233,239,239,.10);--line:rgba(233,242,243,.19);--text:#f5f5ef;--muted:#c6d0d3;--accent:#ff705d;--accent-ink:#351811;--action-text:#ff9d8f;--hero-overlay:rgba(17,30,39,.54);--hero-text:#f7f6f0}
body[data-sport="cycling"]{--canvas:#202f5e;--canvas-2:#182750;--panel:#2b4380;--panel-soft:rgba(225,234,255,.10);--line:rgba(224,234,255,.20);--text:#f5f7ff;--muted:#c8d4f2;--accent:#78a5ff;--accent-ink:#172957;--action-text:#abc7ff;--hero-overlay:rgba(19,33,78,.55);--hero-text:#f6f8ff}
body[data-sport="tennis"]{--canvas:#17352a;--canvas-2:#112b21;--panel:#214739;--panel-soft:rgba(236,245,221,.10);--line:rgba(229,244,217,.20);--text:#f3f5eb;--muted:#c0cbbd;--accent:#c7ef46;--accent-ink:#143021;--action-text:#dcf792;--hero-overlay:rgba(10,35,25,.66);--hero-text:#f7f8ef;--shadow:0 24px 56px rgba(4,22,15,.30)}
body.light[data-sport="running"]{--canvas:#dce5e7;--canvas-2:#cedadd;--panel:#edf2f0;--panel-soft:rgba(31,53,65,.08);--line:rgba(31,53,65,.17);--text:#172f39;--muted:#60737a;--accent:#df5e50;--accent-ink:#fff7f1;--action-text:#a73d33;--hero-overlay:rgba(228,237,237,.44);--hero-text:#182e38;--shadow:0 22px 46px rgba(44,63,69,.13)}
body.light[data-sport="cycling"]{--canvas:#e5ebfb;--canvas-2:#d7e0f7;--panel:#f4f7ff;--panel-soft:rgba(38,60,125,.08);--line:rgba(38,60,125,.17);--text:#243a73;--muted:#5d709e;--accent:#426fe5;--accent-ink:#fff;--action-text:#3159bb;--hero-overlay:rgba(226,234,251,.36);--hero-text:#253a70;--shadow:0 22px 46px rgba(45,65,125,.13)}
body.light[data-sport="tennis"]{--canvas:#e7e3d7;--canvas-2:#dfdbcf;--panel:#f2eee3;--panel-soft:rgba(31,68,46,.08);--line:rgba(27,69,45,.19);--text:#173124;--muted:#54685c;--accent:#b9df35;--accent-ink:#173124;--action-text:#315b2b;--hero-overlay:rgba(245,241,230,.32);--hero-text:#172f22;--shadow:0 22px 52px rgba(73,72,53,.14)}
body[data-sport="swimming"]{--canvas:#064e50;--canvas-2:#063f42;--panel:#10696a;--panel-soft:rgba(210,250,241,.10);--line:rgba(204,245,237,.21);--text:#f0fffb;--muted:#bee4db;--accent:#50e1c4;--accent-ink:#073f3d;--action-text:#98f2df;--hero-overlay:rgba(1,53,55,.57);--hero-text:#f2fffb;--shadow:0 24px 56px rgba(1,35,37,.30)}
body[data-sport="strength"]{--canvas:#29233b;--canvas-2:#201b31;--panel:#3b3453;--panel-soft:rgba(235,228,255,.09);--line:rgba(231,223,255,.20);--text:#fbf9ff;--muted:#d0c9e3;--accent:#a78bfa;--accent-ink:#251b41;--action-text:#c5b4ff;--hero-overlay:rgba(24,19,42,.60);--hero-text:#fbf9ff;--shadow:0 24px 56px rgba(18,13,34,.32)}
body.light[data-sport="swimming"]{--canvas:#d9f1ec;--canvas-2:#c9e6df;--panel:#f0faf7;--panel-soft:rgba(11,101,96,.08);--line:rgba(11,101,96,.18);--text:#104d4b;--muted:#547d78;--accent:#109b87;--accent-ink:#fff;--action-text:#087766;--hero-overlay:rgba(220,243,237,.39);--hero-text:#104c4a;--shadow:0 22px 46px rgba(19,91,86,.14)}
body.light[data-sport="strength"]{--canvas:#f0edfa;--canvas-2:#e5e0f3;--panel:#faf8ff;--panel-soft:rgba(55,43,91,.08);--line:rgba(55,43,91,.18);--text:#292342;--muted:#655d82;--accent:#7c5ce0;--accent-ink:#fff;--action-text:#6245c2;--hero-overlay:rgba(242,238,252,.38);--hero-text:#2e2748;--shadow:0 22px 46px rgba(49,38,83,.14)}

button,input,select,textarea{font:inherit}
button{cursor:pointer}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 76%,white);outline-offset:3px}
[hidden]{display:none!important}
.performance-shell{width:100%;max-width:none!important;min-height:100dvh;margin:0 auto!important;padding:calc(20px + env(safe-area-inset-top)) var(--gutter) calc(var(--dock-clearance) + env(safe-area-inset-bottom))!important}
.performance-topbar{width:min(100%,var(--content-max));margin:0 auto 14px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:16px}
.brandline,.section-kicker,.collection-label{margin:0;color:var(--muted);font-size:11px;font-weight:750;letter-spacing:.16em;line-height:1.35;text-transform:uppercase}.app-version{color:var(--accent);font-size:10px;letter-spacing:.1em}
.performance-topbar h1{margin:3px 0 0!important;color:var(--text)!important;font-size:28px!important;letter-spacing:-.05em!important;line-height:1.05!important}
.topbar-actions{display:flex;gap:8px}.icon-button,.calendar-trigger,.theme-trigger{width:44px!important;height:44px!important;min-width:44px;border:1px solid var(--line)!important;border-radius:50%!important;background:color-mix(in srgb,var(--panel) 90%,transparent)!important;color:var(--text)!important;display:grid!important;place-items:center!important;box-shadow:none!important}.icon-button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

.view{width:min(100%,var(--content-max));margin:0 auto;padding:0 0 26px!important}.view:not(.active){display:none!important}
.demo-stage{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 14px;padding:0 2px}.demo-stage>span{color:var(--muted);font-size:12px;font-weight:700}.demo-scenes{display:flex;gap:4px;padding:4px;border:1px solid var(--line);border-radius:999px;background:color-mix(in srgb,var(--panel) 74%,transparent)}.demo-scenes button{min-height:32px;padding:5px 10px;border:0;border-radius:999px;background:transparent;color:var(--muted);font-size:12px;font-weight:750}.demo-scenes button[aria-selected="true"]{background:var(--accent);color:var(--accent-ink)}

.performance-calendar{display:block!important;width:min(100%,var(--content-max));margin:0 auto 14px!important;padding:10px 12px 12px!important;border:1px solid var(--line)!important;border-radius:18px!important;background:color-mix(in srgb,var(--panel) 90%,transparent)!important;box-shadow:none!important}.calendar-nav{display:grid;grid-template-columns:34px 1fr 34px;align-items:center;margin-bottom:7px}.calendar-week-label{margin:0;text-align:center;color:var(--text);font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.calendar-week-button{width:30px;height:30px;border:0;border-radius:50%;background:transparent;color:var(--text);font:inherit;font-size:26px;line-height:1;cursor:pointer}.calendar-week-button:hover,.calendar-week-button:focus-visible{background:color-mix(in srgb,var(--current-sport,var(--accent)) 16%,transparent);outline:none}.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.calendar-day{display:grid!important;min-width:0;min-height:54px;place-items:center;gap:2px;color:var(--muted);font-size:11px}.calendar-day.has-plan{border:0;background:transparent;cursor:pointer;font:inherit}.calendar-day.has-plan:hover b,.calendar-day.has-plan:focus-visible b{background:color-mix(in srgb,var(--sport-color) 30%,var(--panel))!important}.calendar-day:focus-visible{outline:2px solid var(--sport-color);outline-offset:2px;border-radius:12px}.calendar-day b{width:31px!important;height:31px!important;display:grid!important;place-items:center;border-radius:50%!important;color:var(--text)!important;font-size:13px!important}.calendar-day.has-plan b{background:color-mix(in srgb,var(--sport-color) 18%,var(--panel))!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--sport-color) 72%,transparent)!important}.calendar-day.selected b{background:var(--sport-color)!important;color:#10201a!important;box-shadow:none!important}.calendar-day i{display:block;width:5px;height:5px;border-radius:50%;background:var(--sport-color)}

.performance-layout{display:grid;grid-template-columns:minmax(0,1fr);min-width:0;gap:18px}.performance-hero,.preparation-card{min-width:0;width:100%;max-width:100%}.performance-hero{position:relative;isolation:isolate;min-height:548px;overflow:hidden;margin:0!important;padding:22px!important;border:1px solid color-mix(in srgb,var(--line) 88%,var(--accent))!important;border-radius:var(--radius-xl)!important;background:var(--panel)!important;box-shadow:var(--shadow)!important;display:flex!important;flex-direction:column!important;justify-content:flex-start!important}.hero-art{position:absolute;z-index:-3;inset:0;width:100%;height:100%;object-fit:cover;object-position:68% center;opacity:.91;filter:saturate(.9) contrast(1.02)}.hero-scrim{position:absolute;z-index:-2;inset:0;background:linear-gradient(96deg,var(--hero-overlay) 0%,color-mix(in srgb,var(--hero-overlay) 88%,transparent) 40%,transparent 78%),linear-gradient(0deg,color-mix(in srgb,var(--canvas) 44%,transparent),transparent 42%)}body[data-sport="tennis"] .hero-scrim{background:linear-gradient(94deg,color-mix(in srgb,var(--hero-overlay) 90%,white) 0%,color-mix(in srgb,var(--hero-overlay) 70%,transparent) 53%,transparent 82%),linear-gradient(0deg,rgba(242,238,227,.42),transparent 38%)}
.hero-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.hero-date{margin:0;color:var(--hero-text);font-size:14px;font-weight:700;line-height:1.25}.hero-sport{display:flex;align-items:center;gap:7px;margin:5px 0 0;color:var(--hero-text);font-size:13px;font-weight:700}.hero-sport:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}.hero-delete{min-height:36px;padding:6px 0!important;border:0!important;background:transparent!important;color:var(--hero-text)!important;font-size:12px!important;font-weight:700!important;opacity:.82}.hero-content{width:min(71%,360px);margin-top:52px}.collection-label{color:color-mix(in srgb,var(--hero-text) 78%,var(--accent));font-size:10px}.hero-content h2{max-width:9ch;margin:10px 0 15px!important;color:var(--hero-text)!important;font-family:var(--editorial-font)!important;font-size:clamp(3.1rem,13vw,4.7rem)!important;font-weight:400!important;letter-spacing:-.075em!important;line-height:.88!important}.hero-copy{max-width:22ch;margin:0;color:color-mix(in srgb,var(--hero-text) 86%,var(--muted));font-size:15px;line-height:1.46}.session-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;width:100%;margin-top:auto;padding:18px 0 11px;border-top:1px solid color-mix(in srgb,var(--hero-text) 24%,transparent)}.session-metrics>div{min-width:0;padding:0 11px;border-left:1px solid color-mix(in srgb,var(--hero-text) 22%,transparent)}.session-metrics>div:first-child{padding-left:0;border-left:0}.session-metrics strong{display:block;overflow-wrap:anywhere;color:var(--hero-text);font-size:17px;letter-spacing:-.035em;line-height:1.15}.session-metrics span{display:block;margin-top:5px;color:color-mix(in srgb,var(--hero-text) 67%,var(--muted));font-size:10px;font-weight:700;letter-spacing:.1em;line-height:1.25;text-transform:uppercase}.clock-action{position:absolute;right:20px;bottom:19px;display:grid;place-items:center;width:58px;height:58px;border:0;border-radius:50%;background:var(--accent);color:var(--accent-ink);box-shadow:0 10px 22px color-mix(in srgb,var(--accent) 25%,transparent);transition:transform .18s ease,box-shadow .18s ease}.clock-action:hover{transform:translateY(-2px);box-shadow:0 14px 26px color-mix(in srgb,var(--accent) 34%,transparent)}.clock-action svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.hero-schedule{position:absolute;right:16px;bottom:84px;max-width:130px;margin:0;color:var(--hero-text);font-size:11px;font-weight:700;line-height:1.3;text-align:right}

.preparation-card{min-height:548px;padding:22px 20px 18px;border:1px solid var(--line);border-radius:var(--radius-xl);background:color-mix(in srgb,var(--panel) 91%,var(--canvas));box-shadow:var(--shadow)}.preparation-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.preparation-heading h2{margin:4px 0 0;color:var(--text);font-family:var(--editorial-font);font-size:28px;font-weight:500;letter-spacing:-.05em;line-height:1}.subtle-button,.text-button{min-height:36px;border:0!important;background:transparent!important;color:var(--accent)!important;font-size:12px!important;font-weight:750!important}.prep-context{margin:14px 0 18px;color:var(--muted);font-size:14px;line-height:1.45}.performance-timeline{position:relative;display:grid!important;gap:0!important;margin:0!important;padding:0 0 0 25px!important;background:transparent!important;border:0!important}.performance-timeline:before{content:"";position:absolute;top:9px;bottom:12px;left:7px;width:1px;background:color-mix(in srgb,var(--accent) 62%,var(--line))}.performance-timeline .task{position:relative;display:grid!important;grid-template-columns:1fr auto!important;gap:3px 12px!important;min-height:62px;padding:0 0 16px!important;border:0!important;border-radius:0!important;background:transparent!important;color:var(--text)!important}.performance-timeline .task:before{content:"";position:absolute;top:7px;left:-23px;width:13px;height:13px;border:3px solid var(--panel);border-radius:50%;background:var(--accent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 44%,transparent)}.performance-timeline .task.done:before{background:var(--text)}.performance-timeline .task input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.performance-timeline .checkmark{display:none}.performance-timeline .task-title{grid-column:1;color:var(--text);font-size:15px;font-weight:750;line-height:1.25}.performance-timeline .task-time{grid-column:1;color:var(--muted);font-size:13px;line-height:1.35}.performance-timeline .task small{grid-column:1;color:var(--muted);font-size:12px;line-height:1.35}.prep-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:2px;padding-top:14px;border-top:1px solid var(--line);color:var(--muted);font-size:12px}.prep-footer span{max-width:56%;line-height:1.3}.inline-action{min-height:36px;padding:7px 10px;border:1px solid color-mix(in srgb,var(--accent) 53%,var(--line));border-radius:999px;background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--text);font-size:12px;font-weight:750}.finish-workout{width:100%;min-height:44px;margin-top:12px;border:1px solid var(--line);border-radius:12px;background:transparent;color:var(--text);font-size:14px;font-weight:750}.ready-setup{margin:10px 0 18px;padding:14px;border:1px solid var(--line);border-radius:16px;background:var(--panel-soft);color:var(--muted);font-size:14px}.ready-setup p{margin:0}.ready-setup-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.primary-button,.secondary-button{min-height:44px!important;border-radius:12px!important;font-size:14px!important;font-weight:750!important}.primary-button{border:0!important;background:var(--accent)!important;color:var(--accent-ink)!important}.secondary-button{border:1px solid var(--line)!important;background:transparent!important;color:var(--text)!important}

.following-workout{margin-top:18px!important;padding:17px 18px!important;border:1px solid var(--line)!important;border-radius:var(--radius-lg)!important;background:color-mix(in srgb,var(--panel) 86%,transparent)!important}.following-workout-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.following-workout h2{margin:0!important;color:var(--muted)!important;font-size:11px!important;font-weight:750!important;letter-spacing:.12em!important;text-transform:uppercase}.following-workout strong{display:block;margin-top:9px;color:var(--text);font-family:var(--editorial-font);font-size:23px;font-weight:500;line-height:1.05}.following-workout p{margin:8px 0 0;color:var(--muted);font-size:13px}.utility-strip{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin:18px 2px 0;color:var(--muted);font-size:12px;line-height:1.35}.utility-strip .text-button{flex:none;min-height:auto;padding:0}
.plan-date-meta,.following-workout p{display:flex;align-items:center;gap:7px;min-height:34px}.inline-clock,.following-clock{display:grid;flex:none;place-items:center;width:34px;height:34px;min-width:34px;padding:0;border:1px solid color-mix(in srgb,var(--accent) 55%,var(--line));border-radius:50%;background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--action-text)}.inline-clock svg,.following-clock svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.following-clock{margin-left:auto}

.section-heading{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:14px;margin:8px 0 18px}.section-heading h2,.import-panel h2,.profile-view h2{margin:3px 0 0!important;color:var(--text)!important;font-family:var(--editorial-font)!important;font-size:32px!important;font-weight:500!important;letter-spacing:-.05em!important;line-height:1.02!important}.plan-card,.history-card,.import-panel,.profile-form,.connection,.insight-grid article{border:1px solid var(--line)!important;background:color-mix(in srgb,var(--panel) 90%,transparent)!important;box-shadow:none!important}.plan-card,.import-panel,.profile-form{padding:20px!important;border-radius:var(--radius-lg)!important}.plan-card h3{margin:10px 0!important;color:var(--text)!important;font-family:var(--editorial-font)!important;font-size:30px!important;font-weight:500!important}.plan-meta{color:var(--muted)!important}.sport-chip,.sport-label{border-color:color-mix(in srgb,var(--accent) 42%,var(--line))!important;background:color-mix(in srgb,var(--accent) 10%,transparent)!important;color:var(--text)!important}.history-list{display:grid;gap:10px}.history-card{padding:16px!important;border-radius:18px!important}.history-card h3{color:var(--text)!important}.history-card p{color:var(--muted)!important}.import-panel{margin-top:18px}.import-panel p{color:var(--muted)}.upload-zone{display:grid!important;place-items:center;min-height:170px;margin-top:16px;padding:18px;border:1px dashed color-mix(in srgb,var(--accent) 56%,var(--line));border-radius:18px;background:color-mix(in srgb,var(--accent) 5%,transparent);color:var(--text);text-align:center}.upload-zone .upload-icon{display:grid;place-items:center;width:38px;height:38px;margin-bottom:8px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-size:20px}.upload-zone small,.file-status{color:var(--muted)}

.insight-grid{display:grid;gap:10px}.insight-grid article{display:grid;gap:4px;padding:18px;border-radius:18px}.insight-grid span,.insight-grid small{color:var(--muted);font-size:12px}.insight-grid strong{color:var(--text);font-family:var(--editorial-font);font-size:34px;font-weight:500;letter-spacing:-.05em}.profile-form{display:grid;gap:15px}.profile-form label,.modal label{display:grid!important;gap:7px;color:var(--muted)!important;font-size:13px!important;font-weight:700!important}.profile-form input,.profile-form select,.profile-form textarea,.modal input,.modal select,.modal textarea{width:100%;min-height:44px;border:1px solid var(--line)!important;border-radius:12px!important;background:color-mix(in srgb,var(--canvas) 38%,var(--panel))!important;color:var(--text)!important;padding:10px 12px!important}.profile-form textarea,.modal textarea{min-height:78px}.connection{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0!important;border-width:0 0 1px!important;border-radius:0!important;color:var(--text)}.connection:last-child{border-bottom:0!important}.connect-button{min-height:34px;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--accent);font-size:12px;font-weight:750}.section.compact{margin-top:20px}

.performance-dock{position:fixed!important;z-index:30;right:50%!important;bottom:calc(10px + env(safe-area-inset-bottom))!important;left:auto!important;display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:0!important;width:min(calc(100% - 24px),620px)!important;min-height:68px!important;padding:7px!important;transform:translateX(50%)!important;border:1px solid var(--line)!important;border-radius:23px!important;background:color-mix(in srgb,var(--canvas-2) 88%,transparent)!important;box-shadow:0 18px 40px rgba(10,18,25,.25)!important;backdrop-filter:blur(18px)}.performance-dock .nav-item{display:grid!important;min-width:0!important;min-height:54px!important;place-items:center;gap:3px!important;padding:5px 4px!important;border:0!important;border-radius:16px!important;background:transparent!important;color:var(--muted)!important;font-size:10px!important}.performance-dock .nav-item svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.performance-dock .nav-item.active{background:color-mix(in srgb,var(--accent) 17%,transparent)!important;color:var(--accent)!important}.performance-dock .nav-item.active:after{display:none!important}

.modal{max-width:min(94vw,500px)!important;max-height:90dvh;border:1px solid var(--line)!important;border-radius:24px!important;background:var(--panel)!important;color:var(--text)!important;box-shadow:var(--shadow)!important}.modal::backdrop{background:rgba(9,18,24,.54);backdrop-filter:blur(3px)}.modal form{padding:20px!important}.modal-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:18px}.modal-heading h2{margin:0;color:var(--text);font-family:var(--editorial-font);font-size:28px;font-weight:500}.modal .icon-button{width:36px!important;height:36px!important;min-width:36px}.modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:18px}.switch-row{display:flex!important;grid-template-columns:none!important;align-items:center;gap:10px!important}.switch-row input{width:18px!important;min-height:18px!important;padding:0!important}.toast{position:fixed!important;z-index:100!important;right:50%!important;bottom:calc(var(--dock-clearance) + env(safe-area-inset-bottom))!important;left:auto!important;display:block!important;max-width:calc(100vw - 40px);padding:11px 14px!important;transform:translate(50%,12px)!important;opacity:0!important;visibility:hidden!important;pointer-events:none!important;transition:opacity .16s ease,transform .16s ease,visibility 0s linear .16s!important;border:1px solid var(--line)!important;border-radius:12px!important;background:var(--panel)!important;color:var(--text)!important;box-shadow:var(--shadow)!important}.toast.show{transform:translate(50%,0)!important;opacity:1!important;visibility:visible!important;transition-delay:0s!important}

.onboarding-modal form{display:grid;gap:14px}.onboarding-modal h2{margin:0;color:var(--text);font-family:var(--editorial-font);font-size:clamp(2rem,7vw,2.7rem);font-weight:500;letter-spacing:-.05em;line-height:.98}.onboarding-modal .section-note{margin:0;line-height:1.45}.onboarding-basics,.profile-basics{display:grid;grid-template-columns:1fr 1fr;gap:10px}.onboarding-label{margin:2px 0 -4px;color:var(--text);font-size:14px;font-weight:750}.onboarding-caption{margin:-3px 0 0;color:var(--muted);font-size:12px;line-height:1.4}.onboarding-modal .premium-note{margin:2px 0 0}.onboarding-modal .text-button{justify-self:start;padding:0}.profile-basics label{min-width:0}

.session-conflict{display:inline-flex;align-items:center;gap:5px;margin:7px 0 0;padding:5px 8px;border:1px solid color-mix(in srgb,#ffbf5f 64%,var(--line));border-radius:999px;background:color-mix(in srgb,#ffbf5f 14%,transparent);color:#ffe1a8;font-size:11px;font-weight:750;line-height:1.25}.conflict-badge{display:inline-flex;align-items:center;gap:5px;margin:0 0 10px;padding:5px 8px;border:1px solid color-mix(in srgb,#ffbf5f 64%,var(--line));border-radius:999px;background:color-mix(in srgb,#ffbf5f 14%,transparent);color:var(--text);font-size:11px;font-weight:750}.history-card.has-conflict,.plan-card:has(.conflict-badge){border-color:color-mix(in srgb,#ffbf5f 62%,var(--line))!important}.calendar-day.has-conflict b{box-shadow:inset 0 0 0 2px #ffbf5f!important}.conflict-dialog{padding:20px!important}.conflict-dialog .section-note{color:var(--muted);line-height:1.5}.conflict-sessions{display:grid;gap:8px;margin:14px 0}.conflict-sessions article{display:grid;gap:3px;padding:12px;border:1px solid color-mix(in srgb,#ffbf5f 52%,var(--line));border-radius:14px;background:color-mix(in srgb,#ffbf5f 8%,var(--panel))}.conflict-sessions strong{color:var(--text)}.conflict-sessions span{color:var(--muted);font-size:13px}.conflict-actions{margin-top:16px}

@media (max-width:390px){
  :root{--gutter:12px;--dock-clearance:98px}
  .performance-shell{padding-top:calc(14px + env(safe-area-inset-top))!important}.performance-topbar{margin-bottom:10px!important}.brandline{font-size:9px}.performance-topbar h1{font-size:25px!important}.demo-stage{margin-bottom:10px}.demo-stage>span{display:none}.demo-scenes{width:100%;justify-content:space-between}.demo-scenes button{flex:1;padding-inline:5px;font-size:11px}.performance-hero{min-height:510px;padding:18px!important;border-radius:25px!important}.hero-content{width:72%;margin-top:37px}.hero-content h2{font-size:clamp(2.8rem,14.8vw,3.65rem)!important}.hero-copy{font-size:14px}.session-metrics{padding-top:14px}.session-metrics>div{padding:0 7px}.session-metrics strong{font-size:15px}.session-metrics span{font-size:9px}.clock-action{right:16px;bottom:16px;width:53px;height:53px}.hero-schedule{right:13px;bottom:74px;font-size:10px}.preparation-card{min-height:auto;padding:19px 17px!important;border-radius:25px}.preparation-heading h2{font-size:26px}.performance-timeline .task-title{font-size:14px}.performance-timeline .task-time{font-size:12px}.performance-dock{width:calc(100% - 16px)!important;bottom:calc(7px + env(safe-area-inset-bottom))!important;border-radius:20px!important}.performance-dock .nav-item{font-size:10px!important}.following-workout strong{font-size:21px}.utility-strip{font-size:11px}
}

@media (min-width:640px){
  :root{--gutter:30px;--content-max:960px;--dock-clearance:100px}
  .performance-topbar{margin-bottom:20px!important}.performance-layout{grid-template-columns:minmax(0,1.04fr) minmax(330px,.96fr);align-items:stretch}.performance-hero,.preparation-card{min-height:648px}.hero-content{margin-top:68px}.hero-art{object-position:72% center}.following-workout{max-width:48%;margin-left:auto!important}.insight-grid{grid-template-columns:repeat(3,1fr)}
}

@media (min-width:1024px){
  :root{--gutter:48px;--content-max:1240px;--dock-clearance:104px}
  .performance-shell{padding-top:34px!important}.performance-topbar h1{font-size:34px!important}.performance-layout{grid-template-columns:minmax(0,1.1fr) minmax(420px,.9fr);gap:24px}.performance-hero,.preparation-card{min-height:700px}.performance-hero{padding:30px!important}.preparation-card{padding:28px!important}.hero-content{margin-top:98px}.hero-content h2{font-size:clamp(4.5rem,6vw,6.6rem)!important}.hero-copy{font-size:17px}.clock-action{right:26px;bottom:24px;width:64px;height:64px}.hero-schedule{right:22px;bottom:96px;max-width:160px;font-size:12px}.session-metrics{padding-bottom:15px}.session-metrics strong{font-size:20px}.performance-dock{width:min(600px,calc(100% - 96px))!important}.following-workout{margin-top:24px!important}.utility-strip{max-width:52%;margin-left:auto}
}

@media (prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Release hardening: isolate the Field Notes system from the retired Training Card skin. */
body{min-width:0!important}.performance-shell{min-width:0!important}
.performance-hero:before,.performance-hero:after{content:none!important;display:none!important}
.following-workout:before{content:none!important;display:none!important}.following-workout-header h2{display:block!important}
.session-metrics{padding-right:76px!important}
.session-metrics>div{padding-left:4px!important;padding-right:4px!important}.session-metrics>div:first-child{padding-left:0!important}.session-metrics strong{overflow-wrap:normal!important;word-break:normal!important;font-size:15px!important}
.subtle-button,.text-button{color:var(--action-text)!important}
.sport-chip{border-color:color-mix(in srgb,var(--item-sport, var(--accent)) 52%,var(--line))!important;background:color-mix(in srgb,var(--item-sport, var(--accent)) 13%,transparent)!important;color:var(--text)!important}
.modal{overflow-y:auto!important}.modal input[type="range"]{min-height:auto!important;padding:0!important;border:0!important;background:transparent!important;accent-color:var(--accent)}
#recurrence-settings{display:grid;gap:12px;margin:4px 0 2px}.timeline-pending{margin:4px 0 20px;color:var(--muted);font-size:14px;line-height:1.45}.start-plan-home{display:inline-flex;align-items:center;justify-content:center;min-width:164px;margin-top:22px;padding:0 16px}.empty-home .performance-hero{min-height:390px!important}.empty-home .hero-content{width:min(78%,430px)}.empty-home .hero-content h2{max-width:none;font-size:clamp(2.8rem,11vw,4.3rem)!important}.empty-home .hero-copy{max-width:29ch}.empty-home .preparation-card{min-height:auto}.empty-home .hero-scrim{background:linear-gradient(108deg,var(--hero-overlay),color-mix(in srgb,var(--hero-overlay) 68%,transparent))!important}
@media (max-width:390px){.session-metrics{padding-right:68px!important}.empty-home .performance-hero{min-height:390px!important}.empty-home .hero-content{width:86%;margin-top:35px}.empty-home .hero-copy{font-size:14px}}
@media (min-width:1024px){.performance-hero,.preparation-card{min-height:max(560px,min(700px,calc(100dvh - 265px)))!important}.session-metrics{padding-right:92px!important}.session-metrics>div{padding-left:8px!important;padding-right:8px!important}.session-metrics strong{font-size:19px!important}}

/* Tennis has two intentional atmospheres: deep court at night, warm Rally System by day. */
body[data-sport="tennis"]:not(.light) .hero-scrim{background:linear-gradient(94deg,rgba(8,33,23,.84) 0%,rgba(10,42,29,.56) 53%,transparent 82%),linear-gradient(0deg,rgba(11,37,26,.50),transparent 38%)}
body.light[data-sport="tennis"] .hero-scrim{background:linear-gradient(94deg,color-mix(in srgb,var(--hero-overlay) 90%,white) 0%,color-mix(in srgb,var(--hero-overlay) 70%,transparent) 53%,transparent 82%),linear-gradient(0deg,rgba(242,238,227,.42),transparent 38%)}

/* Keep the countdown clear of the metrics divider on every responsive composition. */
.hero-schedule{bottom:116px}
@media (max-width:390px){.hero-schedule{bottom:104px}}

/* READY editor: write comfortably on a phone, without compressing task fields. */
.ready-actions-editor{display:grid!important;gap:14px!important}.ready-action-editor-row{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:13px!important;padding:16px!important;border:1px solid var(--line)!important;border-radius:18px!important;background:color-mix(in srgb,var(--panel) 85%,var(--canvas))!important}.ready-action-editor-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.ready-action-editor-heading>span{color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.12em}.editor-remove-action{min-height:36px;padding:7px 10px;border:1px solid color-mix(in srgb,#ff8a77 52%,var(--line));border-radius:999px;background:transparent;color:#ff9e91;font:inherit;font-size:13px;font-weight:750}.ready-action-editor-row label{display:grid!important;gap:7px!important;color:var(--text)!important;font-size:14px!important;font-weight:750!important}.ready-action-editor-row input{min-height:50px!important;padding:12px 14px!important;font-size:16px!important}.ready-action-offset-field{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--canvas) 38%,var(--panel))}.ready-action-offset-field input{border:0!important;border-radius:0!important;background:transparent!important}.ready-action-offset-field em{padding:0 14px;color:var(--muted);font-size:13px;font-style:normal;font-weight:700;white-space:nowrap}.ready-action-editor-row .ready-action-offset-field:focus-within{outline:3px solid color-mix(in srgb,var(--accent) 76%,white);outline-offset:3px}.ready-action-editor-row .ready-action-offset-field input:focus-visible{outline:0}
/* READY Team: explicit preferences and learning consent remain readable on mobile. */
.ready-team-fields{display:grid;gap:14px;margin:2px 0 0;padding:16px;border:1px solid color-mix(in srgb,var(--accent) 42%,var(--line));border-radius:18px;background:color-mix(in srgb,var(--accent) 7%,var(--panel))}.ready-team-fields legend{padding:0 7px;color:var(--text);font-size:14px;font-weight:800}.ready-team-fields p,.team-summary{margin:0;color:var(--muted);font-size:13px;line-height:1.45}.team-summary{padding:12px 14px;border-left:3px solid var(--accent);border-radius:0 12px 12px 0;background:color-mix(in srgb,var(--accent) 7%,transparent)}
.team-recommendation-title{margin:6px 0 10px;color:var(--text);font-family:var(--editorial-font);font-size:30px;font-weight:500;letter-spacing:-.045em;line-height:1}.team-recommendation-note{margin:16px 0 0;padding:12px 14px;border-radius:12px;background:color-mix(in srgb,var(--accent) 8%,transparent);color:var(--muted);font-size:13px;line-height:1.45}
@media (min-width:1024px){.hero-schedule{bottom:122px}}

/* Epic 01: account state is explicit, consent-led and secondary to the training flow. */
.account-card{display:grid;gap:10px;margin:0 0 18px;padding:18px;border:1px solid color-mix(in srgb,var(--accent) 44%,var(--line));border-radius:18px;background:color-mix(in srgb,var(--accent) 7%,var(--panel))}.account-card h3{margin:0;color:var(--text);font-size:18px;line-height:1.25}.account-card .section-note{margin:0}.account-actions{display:grid;gap:8px}.account-actions .primary-button,.account-actions .secondary-button,.account-actions .text-button{margin:0!important;text-align:center;text-decoration:none}.account-actions .text-button{justify-self:start;padding:4px 0}
