html{overscroll-behavior:none;background-color:#0f172a}body{color:#a0dba0;text-align:center;box-sizing:border-box;background:linear-gradient(160deg,#091755 0%,#143a90 40%,#17305a 70%,#0f172a 100%);margin:1em;padding:2em;font-family:monospace}button{font-family:inherit;font-size:inherit;cursor:pointer}h1{color:inherit;font-size:3.2em;line-height:1.1}a{color:#da9be8;-webkit-text-decoration:inherit;text-decoration:inherit;font-weight:500}a:hover{color:#c64d98}footer{color:#747bff;flex-direction:column;align-items:center;gap:8px;padding:24px 0;display:flex}.cta-button{letter-spacing:.02em;color:#b7e4a8;cursor:pointer;background:linear-gradient(135deg,#0e2376f5,#020617fa);border:1px solid #a3e63538;border-radius:8px;min-height:52px;padding:.6em 1.2em;font-family:inherit;font-size:1em;font-weight:700;transition:transform .18s,box-shadow .22s,border-color .22s,background .22s,color .22s;box-shadow:0 10px 24px #00000047,inset 0 1px #ffffff0d}.cta-button:hover{color:#d9f99d;background:linear-gradient(135deg,salmon,#1212a2);border-color:#a3e6356b;transform:translateY(-2px);box-shadow:0 14px 30px #00000057,0 0 0 1px #a3e63514,0 0 18px #a3e6351f}button:active{transform:translateY(0);box-shadow:0 8px 18px #0000003d,inset 0 1px #ffffff0a}button:focus-visible{outline-offset:3px;outline:2px solid #f472b6bf}button:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:0 8px 18px #0000002e}.cta-row{flex-direction:column;align-items:center;gap:.8rem;margin-top:.5rem;display:flex}.cta-row-fixed{z-index:100;justify-content:center;margin-top:.5rem;display:flex;position:sticky;bottom:1.5rem}.dual-btn{justify-content:space-around;width:min(400px,80vw);display:flex}.dual-btn .cta-button[data-tooltip]{position:relative}.dual-btn .cta-button[data-tooltip]:after{content:attr(data-tooltip);white-space:nowrap;color:#e0e0e0;pointer-events:none;opacity:0;background:#0f172aeb;border:1px solid #ffffff1f;border-radius:6px;padding:.35em .7em;font-size:.75rem;font-weight:400;transition:opacity .15s .4s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.dual-btn .cta-button[data-tooltip]:hover:after{opacity:1}.dual-btn .back-btn{color:#ffffff80;aspect-ratio:1;background:0 0;border:1px solid #ffffff26;border-radius:8px;justify-content:center;align-items:center;min-height:52px;padding:.6em;font-size:1.3rem;transition:transform .18s,box-shadow .22s,border-color .22s,color .22s;display:flex}.dual-btn .back-btn:hover{color:#fffc;border-color:#ffffff4d;transform:translateY(-2px);box-shadow:0 14px 30px #00000057}.dual-btn .cta-button{justify-content:center;align-items:center;min-height:52px;padding:.6em 1.2em;font-size:1em;display:flex}.dual-btn .cta-button:not(.cta-button--icon){min-width:100px}.dual-btn .cta-button--icon{aspect-ratio:1;min-height:52px;padding:.6em;font-size:1.3rem}.back-btn{color:#ffffff80;cursor:pointer;background:0 0;border:none;align-items:center;padding:.5rem;font-size:1.5rem;transition:color .2s;display:flex}.back-btn:hover{color:#fffc}.site-title{color:inherit;font:inherit;text-shadow:0 1px #fff3,0 -1px #0006,0 2px 4px #0005;text-decoration:none}a.site-title:hover{color:#747bff}table{box-sizing:border-box;border-collapse:separate;border-spacing:0;-webkit-backdrop-filter:blur(6px);background:#ffffff14;border:1px solid #ffffff2e;border-radius:18px;width:min(1100px,100%);margin:2rem auto 1rem;padding:20px;overflow:hidden;box-shadow:0 12px 32px #00000038}tr th,tr td{text-align:center;border:1px solid #fa8072c0;padding:.4em .7em}tr td{border-color:#ba4e42d4}.sortable-th{cursor:pointer;-webkit-user-select:none;user-select:none}tbody tr{transition:background .15s}tbody tr:hover td{background:#ffffff0d}.example-row td{opacity:.75;font-style:italic}.empty-hint{color:#faaaa0f2;margin-top:1.2rem;font-size:.9rem;animation:.8s ease-in fade-in}.empty-hint p{margin:.3rem 0}.underline-reveal{color:#faaaa080;animation:1.8s ease-out 3s forwards secondary-flicker}@keyframes secondary-flicker{0%{color:#faaaa080}8%{color:#e8edd5cc}14%{color:#faaaa080}28%{color:#e8edd5b3}36%{color:#faaaa08c}50%{color:#a0dba0;text-shadow:0 0 6px #a0dba04d}to{color:#a0dba0;text-shadow:0 0 8px #a0dba040,0 0 20px #a0dba01a}}.welcome-line{color:#1a1008;text-shadow:none;margin-bottom:.6rem;font-family:Dancing Script,cursive;font-size:2rem;animation:3s ease-out .9s forwards warm-up}.welcome-line.no-animate{color:#e8edd5;text-shadow:0 0 10px #e8edd559,0 0 25px #e8edd52e,0 0 50px #dce6c814;animation:none}.underline-reveal.no-animate{color:#a0dba0;text-shadow:0 0 8px #a0dba040,0 0 20px #a0dba01a;animation:none}@keyframes warm-up{0%{color:#1a1008;text-shadow:none}3%{color:#f5eedd;text-shadow:0 0 28px #f5eedcb3}6%{color:#1a1008;text-shadow:none}12%{color:#1a1008;text-shadow:none}14%{color:#c8a060;text-shadow:0 0 12px #c8a06059}16%{color:#1a1008;text-shadow:none}20%{color:#f5eedd;text-shadow:0 0 30px #f5eedcbf}25%{color:#6a4820;text-shadow:0 0 4px #6a482026}30%{color:#d8c090;text-shadow:0 0 14px #d8c09066}33%{color:#a07838;text-shadow:0 0 8px #a0783840}36%{color:#e0d0a8;text-shadow:0 0 16px #e0d0a873}39%{color:#c8b080;text-shadow:0 0 10px #c8b0804d}46%{color:ivory;text-shadow:0 0 35px #fffff0cc}55%{color:#f0f5e0;text-shadow:0 0 20px #f0f5e080}70%{color:#e8edd5;text-shadow:0 0 14px #e8edd566}to{color:#e8edd5;text-shadow:0 0 10px #e8edd559,0 0 25px #e8edd52e,0 0 50px #dce6c814}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes heading-warm{0%{color:#8a7058;text-shadow:none}to{color:#e8edd5;text-shadow:0 0 6px #e8edd526,0 0 14px #dce6c80f}}.icon-button{color:inherit;cursor:pointer;background:0 0;border:none;padding:0}.icon-button svg{transition:transform .12s,opacity .12s}.icon-button:hover svg{transform:scale(1.15)}thead tr:first-child th:first-child{border-top-left-radius:18px}thead tr:first-child th:last-child{border-top-right-radius:18px}tbody tr:last-child td:first-child{border-bottom-left-radius:18px}tbody tr:last-child td:last-child{border-bottom-right-radius:18px}input{font-family:Franklin Gothic Medium,Arial Narrow,Arial,sans-serif}#root{max-width:1280px;margin:auto}footer{margin-top:6em}footer .signout-btn,footer .copyright{opacity:.7}*,:before,:after{box-sizing:border-box}.exercise-form{-webkit-backdrop-filter:blur(6px);background:#ffffff14;border:1px solid #ffffff2e;border-radius:18px;flex-wrap:wrap;align-items:flex-end;gap:0;width:min(1100px,100%);max-width:min(92vw,100vw - 6em - 2rem);margin:.6rem 1rem 1rem;padding:20px;display:flex;overflow:hidden;box-shadow:0 12px 32px #00000038}.form-field{flex-direction:column;gap:6px;display:flex}.form-field label{letter-spacing:.03em;color:#cbd5e1;font-size:.8rem;font-weight:600}.name-field{flex:2.2;min-width:220px}.reps-field,.weight-field{flex:1;min-width:110px}.unit-field{flex:.8;min-width:160px}.date-field{flex:1;min-width:150px}.submit-field{flex:none}.exercise-form input,.exercise-form select{background-color:inherit;width:100%;max-width:100%;min-height:48px;color:inherit;border:1px solid #ba4e42d4;border-right:none;border-radius:0;outline:none;padding:0 14px;font-family:inherit;font-size:1rem;transition:border-color .2s,box-shadow .2s,background .2s}.exercise-form .form-field:last-child input,.exercise-form .form-field:last-child select{border-right:1px solid #ba4e42d4}.exercise-form .form-field:first-child input,.exercise-form .form-field:first-child select{border-top-left-radius:18px}.exercise-form .date-field input{border-right:1px solid #ba4e42d4;border-top-right-radius:18px}.exercise-form input::placeholder{color:#64748b}.exercise-form input:-webkit-autofill{-webkit-text-fill-color:#a0dba0;caret-color:#a0dba0;transition:background-color 5000s ease-in-out;-webkit-box-shadow:inset 0 0 0 1000px #143a90d9}.exercise-form input:-webkit-autofill:hover{-webkit-text-fill-color:#a0dba0;caret-color:#a0dba0;transition:background-color 5000s ease-in-out;-webkit-box-shadow:inset 0 0 0 1000px #143a90d9}.exercise-form input:-webkit-autofill:focus{-webkit-text-fill-color:#a0dba0;caret-color:#a0dba0;transition:background-color 5000s ease-in-out;-webkit-box-shadow:inset 0 0 0 1000px #143a90d9}.exercise-form input:hover,.exercise-form select:hover{background-color:#5f7eb3}.exercise-form input:focus,.exercise-form select:focus{z-index:1;color:#b7e4a8;background-color:#0808082e;border:1px solid #ffffff38;position:relative;box-shadow:0 0 0 1px #a3e6352e}.exercise-form input:disabled,.exercise-form .is-disabled{opacity:.75;cursor:not-allowed;background-color:#415c89}.notes-form-field{flex:100%;min-width:0}.notes-input{text-align:left;width:100%;min-height:48px;color:inherit;background-color:inherit;resize:none;border:1px solid #ba4e42d4;border-radius:0 0 18px 18px;outline:none;padding:.7rem;font-family:inherit;font-size:1rem;transition:border-color .2s,box-shadow .2s,background .2s}.notes-input:hover{background-color:#5f7eb3}.notes-input:focus{z-index:1;color:#b7e4a8;background-color:#0808082e;border:1px solid #ffffff38;position:relative;box-shadow:0 0 0 1px #a3e6352e}.notes-input::placeholder{color:#64748b;text-align:center}.clickable-row{cursor:pointer}.date-numeric{display:none}.clickable-row:hover td{background:#ffffff12}.detail-page{max-width:500px;margin:0 auto}.detail-card{-webkit-backdrop-filter:blur(20px);text-align:left;background:#ffffff0f;border:1px solid #ffffff1a;border-radius:16px;padding:2rem}.detail-name{color:#a0dba0;text-align:center;margin:0 0 1.5rem;font-size:1.4rem}.detail-fields{justify-content:space-around;gap:1rem;margin-bottom:1.5rem;display:flex}.detail-field{flex-direction:column;align-items:center;gap:.3rem;display:flex}.detail-label{color:#ffffff73;text-transform:uppercase;letter-spacing:.05em;font-size:.75rem}.detail-value{color:#e0e0e0;font-size:1.1rem}.detail-notes{margin-bottom:1.5rem}.detail-notes-text{color:#cbd5e1;white-space:pre-wrap;margin:.4rem 0 0;font-size:.95rem;line-height:1.5}.detail-actions{border-top:1px solid #ffffff14;justify-content:center;gap:1.5rem;padding-top:1rem;display:flex}.detail-actions .icon-button svg{width:20px;height:20px}.home-greeting{color:#e8edd5;text-shadow:0 0 6px #e8edd526;opacity:.7;margin-bottom:.5rem;font-family:Dancing Script,cursive;font-size:1.4rem;transition:color .3s,text-shadow .3s}.home-greeting:hover{opacity:1;animation:1.5s ease-out forwards greeting-glow}@keyframes greeting-glow{0%{color:#e8edd5;text-shadow:0 0 6px #e8edd526;font-size:1.15rem}30%{color:#f0f5e0;text-shadow:0 0 14px #f0f5e066;font-size:1.25rem}55%{color:ivory;text-shadow:0 0 28px #fffff0b3,0 0 50px #e8edd54d;font-size:1.3rem}70%{color:#e8edd5;text-shadow:0 0 10px #e8edd559,0 0 25px #e8edd52e;font-size:1.3rem}to{color:ivory;text-shadow:0 0 28px #fffff0b3,0 0 50px #e8edd54d;font-size:1.3rem}}.heading-error-zone{flex-direction:column;justify-content:flex-end;align-items:center;height:2.2rem;margin-top:3.5rem;margin-bottom:-.8rem;display:flex}.heading-error-zone .form-heading{transition:transform .3s;transform:translateY(0)}.heading-error-zone.has-error .form-heading{transform:translateY(-1.6rem)}.heading-error-zone.has-error .form-error{transform:translateY(-.4rem)}.heading-error-zone .form-error{opacity:1;margin:0;transition:opacity .6s}.heading-error-zone.fading .form-error{opacity:0}.heading-error-zone.fading .form-heading{transform:translateY(0)}.form-heading{color:#8a7058;text-shadow:none;margin:.3rem;font-family:Dancing Script,cursive;font-size:1.4rem;animation:1.2s ease-out .3s forwards heading-warm}.form-heading.no-animate{color:#e8edd5;text-shadow:0 0 6px #e8edd526,0 0 14px #dce6c80f;animation:none}.form-error,.field-help{min-height:rem}.form-error{color:#ff9a9a;text-align:center;margin:0 0 .5rem;font-size:.75rem}.field-help{opacity:.8;text-align:center;margin-top:.35rem;font-size:.85rem}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=900px){.exercise-form{flex-direction:column;align-items:center;width:min(350px,88vw);max-width:88vw;margin:.6rem auto 1rem;padding:20px 16px}.name-field,.reps-field,.weight-field,.unit-field,.date-field,.submit-field{width:min(100%,300px);min-width:0;max-width:300px}.form-field{align-items:center;width:100%}.form-field label{text-align:center;width:100%}.form-field input,.form-field select,.form-field button{width:100%;max-width:100%}.exercise-form input,.exercise-form select{text-align:center;border-bottom:none;border-right:1px solid #ba4e42d4}.exercise-form .form-field:first-child input,.exercise-form .form-field:first-child select{border-radius:18px 18px 0 0}.exercise-form .date-field input{border-right:1px solid #ba4e42d4;border-radius:0}.notes-input{width:min(100%,300px);min-width:0;max-width:300px}table{padding:10px;font-size:.85rem}tr th,tr td{padding:.3em .35em}tr td:nth-last-child(-n+3){border-left:none;border-right:none}tr td:last-child{border-right:1px solid #ba4e42d4}.icon-button svg{width:22px;height:22px}}.table-scaler{width:100%;overflow:visible}.table-scaler.fade-in{animation:.6s ease-in fade-in}@media (width<=530px){.date-year{display:none}}@media (width<=446px){.date-month-day{display:none}.date-numeric{display:inline}}@media (width<=480px){body{margin:.25em;padding:.5em}.table-scaler{transform-origin:top;margin-bottom:-2rem;transform:scale(.93)}.name-row{flex-direction:column}.auth-page{margin:0 -.5em}.auth-card{max-width:100vw}}.signout-btn{color:#ffffff80;cursor:pointer;background:0 0;border:none;padding:.4rem;font-family:inherit;font-size:.9rem;transition:color .2s}.signout-btn:hover{color:#ffffffe6}.auth-page{flex-direction:column;align-items:center;gap:1.2rem;padding:2rem 0;display:flex}.demo-btn{color:#90ee90;cursor:pointer;background:0 0;border:1px solid #90ee9040;border-radius:8px;padding:.65rem 1.6rem;font-family:inherit;font-size:.95rem;font-weight:600;transition:all .2s}.demo-btn:hover:not(:disabled){background:#90ee901a;border-color:#90ee9073}.demo-btn:disabled{opacity:.5;cursor:not-allowed}.auth-card{-webkit-backdrop-filter:blur(20px);text-align:center;box-sizing:border-box;background:#ffffff0f;border:1px solid #ffffff1a;border-radius:16px;width:100%;max-width:min(400px,100vw - 6em - 2rem);padding:2rem 1.5rem}.auth-card h2{color:#e0e0e0;margin:0 0 .3rem;font-size:1.5rem;font-weight:600}.auth-subtitle{color:#ffffff80;margin:0 0 1.8rem;font-size:.9rem}.auth-error{color:#ff8a8a;background:#ff50501f;border:1px solid #ff505040;border-radius:8px;margin-bottom:1.2rem;padding:.6rem 1rem;font-size:.85rem}.auth-form{flex-direction:column;gap:.8rem;display:flex}.auth-form input{color:#e0e0e0;background:#ffffff0f;border:1px solid #ffffff1f;border-radius:8px;outline:none;padding:.75rem 1rem;font-family:inherit;font-size:.95rem;transition:border-color .2s}.auth-form input::placeholder{color:#ffffff59}.auth-form input:-webkit-autofill{-webkit-text-fill-color:#e0e0e0;caret-color:#e0e0e0;transition:background-color 5000s ease-in-out;-webkit-box-shadow:inset 0 0 0 1000px #0f172af7}.auth-form input:-webkit-autofill:hover{-webkit-text-fill-color:#e0e0e0;caret-color:#e0e0e0;transition:background-color 5000s ease-in-out;-webkit-box-shadow:inset 0 0 0 1000px #0f172af7}.auth-form input:-webkit-autofill:focus{-webkit-text-fill-color:#e0e0e0;caret-color:#e0e0e0;transition:background-color 5000s ease-in-out;-webkit-box-shadow:inset 0 0 0 1000px #0f172af7}.auth-form input:focus{border-color:#90ee9066}.name-row{gap:.8rem;display:flex}.name-row input{flex:1;min-width:0}.password-field{position:relative}.password-field input{width:100%;padding-right:2.8rem}.eye-toggle{color:#ffffff59;cursor:pointer;background:0 0;border:none;align-items:center;padding:.25rem;transition:color .2s;display:flex;position:absolute;top:50%;right:.5rem;transform:translateY(-50%)}.eye-toggle:hover{color:#ffffffb3}.eye-toggle:active{box-shadow:none;transform:translateY(-50%)}.auth-submit{color:#90ee90;cursor:pointer;background:#90ee9026;border:none;border-radius:8px;margin-top:.5rem;padding:.75rem;font-family:inherit;font-size:1rem;font-weight:600;transition:all .2s}.auth-submit:hover:not(:disabled){background:#90ee9040}.auth-submit:disabled{opacity:.5;cursor:not-allowed}.password-rules{text-align:left;flex-wrap:wrap;gap:.3rem 1rem;margin:0;padding:0;font-size:.78rem;list-style:none;display:flex}.password-rules li{white-space:nowrap}.password-rules li:before{margin-right:.3em}.rule-pass{color:#90ee90}.rule-pass:before{content:"✓"}.rule-fail{color:#fff6}.rule-fail:before{content:"✗"}.age-confirm{color:#fff9;cursor:pointer;align-items:center;gap:.5rem;font-size:.85rem;display:flex}.age-confirm input[type=checkbox]{accent-color:#90ee90;cursor:pointer;width:16px;height:16px}.auth-toggle{color:#ffffff80;margin-top:1.5rem;font-size:.85rem}.auth-toggle-btn{color:#90ee90;cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;font-family:inherit;font-size:.85rem;text-decoration:underline}.auth-toggle-btn:hover{color:#b0ffb0}.exercises-loading{justify-content:center;padding:4rem 0;display:flex}.auth-loading{justify-content:center;align-items:center;min-height:100vh;display:flex}.auth-spinner{border:3px solid #ffffff1a;border-top-color:#90ee9080;border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.toast{color:#ff9a9a;-webkit-backdrop-filter:blur(12px);cursor:pointer;z-index:1000;background:#ff505026;border:1px solid #ff50504d;border-radius:10px;padding:.75rem 1.5rem;font-family:inherit;font-size:.9rem;animation:.3s ease-out toast-in;position:fixed;bottom:2rem;left:50%;transform:translate(-50%)}.overlay{-webkit-backdrop-filter:blur(4px);z-index:1000;background:#0000008c;justify-content:center;align-items:center;animation:.2s ease-out fade-in;display:flex;position:fixed;inset:0}.overlay-card{text-align:center;background:#0f172af2;border:1px solid #ffffff1f;border-radius:14px;width:90vw;max-width:320px;padding:1.8rem 2rem}.overlay-card p{color:#e0e0e0;margin:0 0 1.4rem;font-size:1rem}.overlay-highlight{color:#a0dba0}.overlay-actions{justify-content:center;gap:.8rem;display:flex}.overlay-btn{cursor:pointer;border-radius:8px;padding:.55rem 1.2rem;font-family:inherit;font-size:.9rem;font-weight:600;transition:all .2s}.overlay-btn--cancel{color:#fff9;background:0 0;border:1px solid #ffffff26}.overlay-btn--cancel:hover{color:#ffffffd9;border-color:#ffffff4d}.overlay-btn--confirm{color:#ff8a8a;background:#ff505026;border:1px solid #ff50504d}.overlay-btn--confirm:hover{background:#ff505040}@keyframes toast-in{0%{opacity:0;transform:translate(-50%)translateY(1rem)}to{opacity:1;transform:translate(-50%)translateY(0)}}:root{color:#e5ed71de;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;font-weight:400;line-height:1.5}body{min-width:320px;min-height:100vh;margin:0}
