@font-face{font-family:Breymont;src:url(./Breymont-Bold-STAMdF0T.otf)format("opentype");font-weight:700;font-display:swap}@font-face{font-family:Poppins;src:url(./poppins-400-latin-cpxAROuN.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Poppins;src:url(./poppins-500-latin-C8OXljZJ.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Poppins;src:url(./poppins-600-latin-zEkxB9Mr.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}:root{--bg:#133358;--bg-elevated:#1b4068;--bg-raised:#26578c;--navy-deep:#0b2340;--ocean:#015ca6;--blue-bright:#7db8e8;--coral:#d96953;--coral-soft:#f2a493;--orange:#eea047;--yellow:#f3c44b;--cream:#f8f1e0;--text:#f8f1e0;--text-2:#f8f1e0c7;--text-3:#f8f1e0a8;--separator:#f8f1e01a;--fill:#f8f1e014;--fill-2:#f8f1e026;--radius-group:20px;--ease:cubic-bezier(.22, 1, .36, 1);--spring:cubic-bezier(.34, 1.56, .64, 1);--shadow-navy:0 12px 32px -12px #0a1f358c;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--font:"Poppins", -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-display:"Breymont", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{background:var(--bg);-webkit-text-size-adjust:100%;overscroll-behavior-y:none}body{background:var(--bg);min-height:100dvh;color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;touch-action:manipulation;margin:0;font-size:16px;line-height:1.4}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default;opacity:.4}button,label,.group-header{-webkit-user-select:none;user-select:none}:focus{outline:none}:focus-visible{outline:2px solid var(--blue-bright);outline-offset:2px}h1,h2,h3{text-wrap:balance}@keyframes view-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.screen,.welcome,.training{animation:view-in .24s var(--ease)}.screen{max-width:640px;padding:calc(8px + var(--safe-top)) 16px calc(32px + var(--safe-bottom));margin:0 auto}.top-bar{align-items:center;min-height:44px;display:flex}.back-button{min-height:44px;color:var(--blue-bright);background:0 0;border:0;align-items:center;gap:2px;margin-left:-8px;padding:0 8px;font-size:16px;display:inline-flex}.back-button svg{fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.large-title-block{padding:4px 4px 16px}.subtitle{color:var(--orange);text-transform:uppercase;letter-spacing:.16em;margin:0 0 6px;font-size:12px;font-weight:600}.large-title{font-family:var(--font-display);text-transform:lowercase;letter-spacing:.012em;margin:0;font-size:30px;font-weight:700;line-height:1.08}.stack{gap:12px;display:grid}.group-section+.group-section{margin-top:8px}.group-header{color:var(--text-3);text-transform:uppercase;letter-spacing:.16em;margin:20px 16px 8px;font-size:12px;font-weight:600}.group{background:var(--bg-elevated);border-radius:var(--radius-group);overflow:hidden}.group-footer{color:var(--text-3);margin:8px 16px 0;font-size:13px;line-height:1.45}.row{width:100%;min-height:50px;color:inherit;text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:12px;padding:8px 16px;font-size:16px;display:flex;position:relative}.row+.row:before,.consent-list+.row:before{content:"";background:var(--separator);height:1px;position:absolute;top:0;left:16px;right:0}button.row:active{background:var(--fill)}.row-label{flex-direction:column;flex:1;min-width:0;display:flex}.row-label small{color:var(--text-3);margin-top:2px;font-size:13px}.row-value{min-width:0;color:var(--text-2);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.row-input,.row-select{min-width:0;height:34px;color:var(--text-2);text-align:right;appearance:none;background:0 0;border:0;flex:0 60%;padding:0;font-size:16px}.row-input::placeholder{color:var(--text-3)}.row-input:focus,.row-select:focus{color:var(--text)}.row-select{text-align-last:right}.row-select option{background:var(--navy-deep);color:var(--text)}.row-action{color:var(--blue-bright);justify-content:center;font-weight:500}.row-action.destructive{color:var(--coral-soft)}.row-nav:after{content:"";border-right:2px solid var(--text-3);border-top:2px solid var(--text-3);flex:none;width:8px;height:8px;margin-right:4px;transform:rotate(45deg)}.row-footnote{color:var(--text-3);margin:0;padding:0 16px 12px;font-size:13px;line-height:1.45}.row-note{color:var(--text-2);margin:0;padding:14px 16px;font-size:15px;line-height:1.5}.row>.segmented{flex:1}.segmented{background:var(--fill);border-radius:10px;grid-auto-columns:1fr;grid-auto-flow:column;gap:2px;padding:2px;display:grid}.segment{min-height:36px;color:var(--text-2);background:0 0;border:0;border-radius:8px;font-size:14px;font-weight:600;transition:background-color .2s,color .2s,box-shadow .2s}.segment[aria-checked=true]{background:var(--bg-raised);color:var(--text);box-shadow:0 1px 3px #00000047}.switch{appearance:none;background:var(--fill-2);border:0;border-radius:999px;flex:none;width:51px;height:31px;margin:0;transition:background-color .2s;position:relative}.switch:after{content:"";background:var(--cream);width:27px;height:27px;transition:transform .22s var(--ease);border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 2px 5px #0000004d}.switch:checked{background:var(--orange)}.switch:checked:after{transform:translate(20px)}.primary-button{background:var(--coral);min-height:52px;color:var(--cream);box-shadow:var(--shadow-navy);transition:transform .25s var(--spring), background-color .25s ease, color .25s ease, box-shadow .25s ease;border:0;border-radius:999px;padding:0 24px;font-size:17px;font-weight:600}.primary-button:active:not(:disabled){background:var(--yellow);color:var(--navy-deep);transform:translateY(-1px)scale(.98)}.plain-button{min-height:44px;color:var(--blue-bright);background:0 0;border:0;font-size:16px;font-weight:500}.plain-button:active{opacity:.55}.notice{border-radius:var(--radius-group);margin:0;padding:12px 16px;font-size:15px;line-height:1.45}.notice.info{background:var(--fill)}.notice.error{color:var(--coral-soft);background:#d9695329}.notice.success{background:#eea04724}.tabbar{z-index:20;max-width:640px;padding:6px 10px calc(6px + var(--safe-bottom));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 -1px 0 var(--separator);background:#133358f0;gap:4px;margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0}.tab{min-height:52px;color:var(--text-3);background:0 0;border:0;flex:1;justify-items:center;gap:2px;padding:6px 4px;font-size:11px;font-weight:600;display:grid}.tab svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.tab.active{color:var(--yellow)}.tab:active{opacity:.7}.has-tabbar .screen{padding-bottom:calc(96px + var(--safe-bottom))}.chips{scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:8px;margin:4px 0 8px;padding:2px 4px;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chip{background:var(--fill);min-height:36px;color:var(--text-2);border:0;border-radius:999px;flex:none;padding:0 16px;font-size:14px;font-weight:500;transition:background-color .2s,color .2s}.chip.active{background:var(--yellow);color:var(--navy-deep);font-weight:600}.welcome{max-width:480px;min-height:100dvh;padding:calc(24px + var(--safe-top)) 24px calc(24px + var(--safe-bottom));flex-direction:column;justify-content:center;gap:16px;margin:0 auto;display:flex}.welcome-icon{box-shadow:var(--shadow-navy);border-radius:28px 28px 28px 90px}.welcome .large-title{font-size:40px}.welcome-hero{aspect-ratio:4/3;object-fit:cover;object-position:center 30%;width:100%;max-height:230px;box-shadow:var(--shadow-navy);border-radius:28px 28px 28px 90px}.welcome-sub{color:var(--text-2);margin:0;font-size:18px;line-height:1.5}.welcome-sub em{color:var(--coral);text-underline-offset:.14em;font-style:normal;text-decoration:underline;text-decoration-thickness:.08em}.welcome-actions{gap:4px;margin-top:12px;display:grid}.fine{color:var(--text-3);margin:8px 0 0;font-size:13px;line-height:1.45}.athlete-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-bottom:8px;display:grid}.athlete-card{border-radius:var(--radius-group);background:var(--bg-elevated);color:var(--text);text-align:center;transition:transform .25s var(--spring), background-color .2s ease;border:0;flex-direction:column;align-items:center;gap:4px;padding:20px 12px;display:flex;box-shadow:inset 0 0 0 1px #f8f1e014}.athlete-card:active{background:var(--bg-raised);transform:scale(.97)}.athlete-card strong{font-size:17px;font-weight:600}.athlete-card span:last-child{color:var(--text-3);font-size:13px}.avatar{background:var(--orange);width:64px;height:64px;color:var(--navy-deep);font-family:var(--font-display);border-radius:50%;place-items:center;margin-bottom:6px;font-size:28px;display:grid}.consent-list{color:var(--text-2);gap:8px;margin:0;padding:14px 16px 14px 34px;font-size:15px;line-height:1.45;display:grid}.splash{place-items:center;min-height:100dvh;display:grid}.splash img{opacity:.9;border-radius:16px}.lead{color:var(--text-2);max-width:60ch;margin:0 4px 8px;font-size:16px;line-height:1.5}.metrics{gap:8px;margin-bottom:8px;display:grid}.metrics.two{grid-template-columns:1fr 1fr}.metric{border-radius:var(--radius-group);background:var(--bg-elevated);flex-direction:column;gap:2px;padding:12px 14px;display:flex}.metric strong{font-family:var(--font-display);color:var(--orange);font-variant-numeric:tabular-nums;font-size:28px;line-height:1.1}.metric span{color:var(--text-2);font-size:13px}.suggestion-card{border-radius:var(--radius-group);background:var(--bg-raised);gap:6px;margin:16px 0 4px;padding:16px;display:grid;box-shadow:inset 0 0 0 1px #f3c44b40}.suggestion-card h2{margin:0;font-size:22px;font-weight:700;line-height:1.2}.suggestion-card p{color:var(--text-2);margin:0;font-size:15px;line-height:1.45}.suggestion-card .subtitle{color:var(--yellow)}.suggestion-card .suggestion-meta{color:var(--text-3);margin-bottom:8px;font-size:13px}.drill-row{align-items:flex-start}.drill-row .row-value{font-variant-numeric:tabular-nums;padding-top:2px}.drill-list-anchor{scroll-margin-top:12px}.drill-item+.drill-item{border-top:1px solid var(--separator)}.drill-item .row+.row:before,.drill-item .drill-preview{border-top:0}.drill-preview{gap:10px;padding:0 16px 16px;display:grid}.drill-preview .drill-cue{font-size:15px}.drill-preview .video-block{margin-bottom:0}.ready-list{gap:6px;width:100%;margin:12px 0 0;padding:0;list-style:none;display:grid}.ready-list li{background:var(--fill);border-radius:12px;justify-content:space-between;align-items:baseline;gap:12px;padding:10px 12px;font-size:15px;display:flex}.ready-list .ready-meta{color:var(--text-3);font-variant-numeric:tabular-nums;flex:none;font-size:13px}.bottom-cta{padding:12px 0 calc(8px + var(--safe-bottom));background:linear-gradient(transparent, var(--bg) 30%);margin-top:16px;position:sticky;bottom:0}.training{max-width:640px;min-height:100dvh;padding:calc(8px + var(--safe-top)) 16px calc(16px + var(--safe-bottom));flex-direction:column;margin:0 auto;display:flex}.training-top{justify-content:space-between;align-items:center;min-height:44px;display:flex}.training-count{color:var(--text-2);font-variant-numeric:tabular-nums;font-size:14px}.progress-line{background:var(--fill-2);border-radius:999px;height:4px;margin:6px 0 0;overflow:hidden}.progress-line span{background:linear-gradient(90deg, var(--yellow), var(--orange));height:100%;transition:width .4s var(--ease);display:block}.training-body{flex-direction:column;flex:1;justify-content:center;gap:10px;padding:24px 4px;display:flex}.phase-label{color:var(--orange);text-transform:uppercase;letter-spacing:.16em;margin:0;font-size:13px;font-weight:600}.drill-name{margin:0;font-size:clamp(30px,8vw,40px);font-weight:700;line-height:1.1}.drill-cue{color:var(--text-2);max-width:36ch;margin:0;font-size:18px;line-height:1.5}.countdown{font-family:var(--font-display);font-variant-numeric:tabular-nums;margin:12px 0 0;font-size:clamp(64px,22vw,104px);line-height:1}.training-body:not(:has(.drill-name)) .countdown{color:var(--blue-bright)}.training-next{color:var(--text-2);margin:8px 0 0;font-size:17px}.training-next strong{color:var(--text)}.training-actions{gap:4px;display:grid}.video-block{justify-items:start;gap:6px;margin-bottom:6px;display:grid}.training-body.with-video{justify-content:flex-start;gap:6px;padding-top:12px}.with-video .drill-name{font-size:clamp(24px,6.5vw,32px)}.with-video .drill-cue{font-size:16px}.with-video .countdown{margin-top:4px;font-size:clamp(52px,17vw,76px)}.video-frame{aspect-ratio:16/9;background:var(--navy-deep);border-radius:20px 20px 20px 72px;width:100%;max-width:100%;overflow:hidden}.video-frame iframe{border:0;width:100%;height:100%;display:block}.plain-link{color:var(--blue-bright);font-size:14px}.video-hint{color:var(--text-3);margin:0;font-size:12px;line-height:1.4}.row-icon{fill:none;width:20px;height:20px;stroke:var(--yellow);stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex:none}.goal-card,.due-card{border-radius:var(--radius-group);background:var(--bg-elevated);margin:0 0 8px;padding:14px 16px}.goal-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.goal-head span{color:var(--text-2);font-size:14px}.goal-head strong{font-variant-numeric:tabular-nums;font-size:17px;font-weight:600}.goal-bar{background:var(--fill-2);border-radius:999px;height:8px;margin:10px 0 8px;overflow:hidden}.goal-bar span{background:var(--blue-bright);height:100%;transition:width .4s var(--ease);border-radius:999px;display:block}.goal-bar span.met{background:linear-gradient(90deg, var(--yellow), var(--orange))}.goal-card p{color:var(--text-3);font-variant-numeric:tabular-nums;margin:0;font-size:13px}.due-card{justify-content:space-between;align-items:center;gap:12px;display:flex;box-shadow:inset 0 0 0 1px #7db8e859}.due-card .subtitle{color:var(--blue-bright)}.due-card p{color:var(--text-2);margin:0;font-size:14px;line-height:1.4}.due-card.pending{box-shadow:inset 0 0 0 1px #eea04773}.due-card.pending .subtitle{color:var(--orange)}.due-card.blocked{box-shadow:inset 0 0 0 1px #d9695380}.due-card.blocked .subtitle{color:var(--coral-soft)}.secondary-button{background:var(--fill-2);min-height:44px;color:var(--text);border:0;border-radius:999px;flex:none;padding:0 18px;font-size:15px;font-weight:600}.secondary-button:active{opacity:.72}.chart-box{padding:12px 12px 8px}.weeks-chart{width:100%;height:auto;display:block}.weeks-chart .bar{fill:var(--fill-2)}.weeks-chart .bar.met{fill:var(--orange)}.weeks-chart .goal-line{stroke:var(--yellow);stroke-width:1.5px;stroke-dasharray:4 4}.weeks-chart .axis{fill:var(--text-3);font-size:10px;font-family:var(--font);font-variant-numeric:tabular-nums}.test-row{gap:10px}.sparkline{flex:none}.sparkline path{fill:none;stroke:var(--orange);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.sparkline circle{fill:var(--orange)}.chip-up{color:var(--orange);background:#eea0472e;border-radius:999px;flex:none;padding:2px 8px;font-size:12px;font-weight:600}.badges{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;padding:12px;display:grid}.badge{background:var(--fill);color:var(--text-3);border-radius:12px;flex-direction:column;gap:2px;padding:12px;display:flex}.badge strong{color:var(--text-2);font-size:14px;font-weight:600}.badge span{font-size:12px;line-height:1.35}.badge-mark{margin-bottom:4px;font-size:20px;line-height:1}.badge.earned{color:var(--text-2);background:#eea04724;box-shadow:inset 0 0 0 1px #f3c44b59}.badge.earned strong{color:var(--text)}.badge.earned .badge-mark{color:var(--orange)}.goal-select{flex:none;max-width:42%}.test-input{font-variant-numeric:tabular-nums;flex-basis:40%}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.legal{gap:22px;max-width:65ch;margin:18px 4px 8px;display:grid}.legal section{gap:8px;display:grid}.legal h2{color:var(--text);text-wrap:balance;margin:0;font-size:17px;font-weight:600;line-height:1.3}.legal p,.legal li{color:var(--text-2);text-wrap:pretty;margin:0;font-size:15px;line-height:1.55}.legal .legal-intro{color:var(--text);font-size:16px}.legal ul,.legal ol{gap:6px;margin:0;padding-left:22px;display:grid}.legal li::marker{color:var(--text-3)}.legal-cta{margin-top:16px}.inline-link{color:var(--blue-bright);font:inherit;text-underline-offset:2px;background:0 0;border:0;padding:0;text-decoration:underline}.legal-links{flex-wrap:wrap;justify-content:center;gap:4px 16px;display:flex}.legal-links .inline-link{min-height:32px}.status-chip{background:var(--fill-2);color:var(--text-2);border-radius:999px;flex:none;padding:2px 8px;font-size:12px;font-weight:600}.status-chip.ok{color:var(--blue-bright);background:#7db8e82e}.athlete-card.locked .avatar{opacity:.55}.athlete-card.locked span:last-child{color:var(--coral-soft)}a.row{color:inherit;text-decoration:none}.pix-box{text-align:center;justify-items:center;gap:10px;padding:18px 16px 16px;display:grid}.pix-box+.row:before{left:16px}.pix-lead{color:var(--text);max-width:28ch;margin:0;font-size:17px;font-weight:600;line-height:1.3}.pix-hint,.pix-note{color:var(--text-3);max-width:36ch;margin:0;font-size:13px;line-height:1.45}.pix-qr{background:var(--cream);border-radius:12px;width:150px;height:150px;padding:8px}.pix-key{background:var(--fill);border-radius:12px;align-items:center;gap:8px;width:100%;padding:8px 8px 8px 14px;display:flex}.pix-key-text{font-variant-numeric:tabular-nums;letter-spacing:.04em;min-width:0;color:var(--text);text-overflow:ellipsis;flex:1;font-size:15px;overflow:hidden}.copy-btn{background:var(--coral);min-height:36px;color:var(--cream);border:0;border-radius:999px;flex:none;padding:0 14px;font-size:14px;font-weight:600;transition:background-color .25s,color .25s}.copy-btn:active{background:var(--yellow);color:var(--navy-deep)}.copy-btn.copied{background:var(--ocean);color:var(--cream)}.demo-banner{z-index:10;padding:calc(6px + var(--safe-top)) 16px 6px;background:var(--yellow);color:var(--navy-deep);text-align:center;margin:0;font-size:13px;font-weight:600;position:sticky;top:0}@media (hover:hover){button.row:hover{background:var(--fill)}.primary-button:hover:not(:disabled),.copy-btn:hover{background:var(--yellow);color:var(--navy-deep)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
