:root{--navy:#1a1a1a;--red:#b22222;--gold:#b22222;--white:#fff;--light-gray:#f5f5f5;--mid-gray:#e0e0e0;--dark-gray:#666;--text:#333;--green:#2e8b57;--yellow:#d4a017;--orange:#e8711a}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--light-gray);color:var(--text);padding-bottom:env(safe-area-inset-bottom);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5}a{color:var(--navy);text-decoration:none}.container{max-width:1200px;margin:0 auto;padding:1rem}.card{background:var(--white);border-radius:8px;padding:1.25rem;box-shadow:0 1px 3px #00000014}.grid{gap:1rem;display:grid}.grid-2{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.grid-3{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.grid-4{grid-template-columns:repeat(4,1fr);gap:.5rem;display:grid}.grid-3-inline{grid-template-columns:repeat(3,1fr);gap:.75rem;display:grid}.grid-2-inline{grid-template-columns:repeat(2,1fr);gap:.5rem;display:grid}.flex{align-items:center;gap:.5rem;display:flex}.flex-between{justify-content:space-between;align-items:center;display:flex}.flex-wrap{flex-wrap:wrap}.btn{cursor:pointer;border:none;border-radius:6px;align-items:center;gap:.4rem;padding:.5rem 1rem;font-size:.875rem;font-weight:600;transition:opacity .2s,transform .1s;display:inline-flex}.btn:hover{opacity:.9}.btn:active{transform:scale(.97)}.btn-navy{background:var(--navy);color:var(--white)}.btn-red{background:var(--red);color:var(--white)}.btn-gold{background:var(--gold);color:var(--white)}.btn-outline{color:var(--navy);border:1.5px solid var(--navy);background:0 0}.btn-sm{padding:.35rem .75rem;font-size:.8rem}.btn-lg{padding:.65rem 1.5rem;font-size:1rem}.btn:disabled{opacity:.5;cursor:not-allowed}.form-group{margin-bottom:1rem}.form-group label{color:var(--navy);margin-bottom:.25rem;font-size:.8rem;font-weight:600;display:block}.form-group .hint{color:var(--dark-gray);font-size:.75rem;font-weight:400}input,select,textarea{border:1.5px solid var(--mid-gray);border-radius:6px;width:100%;padding:.5rem .75rem;font-family:inherit;font-size:.875rem;transition:border-color .2s}input:focus,select:focus,textarea:focus{border-color:var(--navy);outline:none}textarea{resize:vertical;min-height:100px}.badge{text-transform:uppercase;letter-spacing:.3px;border-radius:10px;padding:.15rem .5rem;font-size:.7rem;font-weight:700;display:inline-block}.badge-navy{background:var(--navy);color:var(--white)}.badge-red{background:var(--red);color:var(--white)}.badge-gold{background:var(--gold);color:var(--white)}.badge-green{background:var(--green);color:var(--white)}.badge-gray{background:var(--mid-gray);color:var(--text)}.severity-dots{gap:3px;display:inline-flex}.severity-dot{background:var(--mid-gray);border-radius:50%;width:8px;height:8px}.severity-dot.active{background:var(--red)}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.85rem}th{background:var(--navy);color:var(--white);text-align:left;padding:.6rem .75rem;font-weight:600}td{border-bottom:1px solid var(--mid-gray);padding:.5rem .75rem}tr:hover td{background:var(--light-gray)}.program-table td{vertical-align:middle}.program-table .exercise-row:nth-child(2n) td{background:var(--light-gray)}.program-table .exercise-row:hover td{background:#eee}.program-section-row td{color:#fff;letter-spacing:.5px;text-transform:uppercase;padding:.45rem .75rem;font-size:.8rem;font-weight:700;background:var(--navy)!important}.program-table .mobile-detail-row{display:none}.program-video-row td{background:var(--light-gray)!important}.play-btn{background:var(--red);color:#fff;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:.7rem;transition:transform .15s;display:inline-flex}.play-btn:hover{transform:scale(1.1)}.empty-cell{color:var(--mid-gray)}.toast-container{z-index:9999;flex-direction:column;gap:.5rem;display:flex;position:fixed;top:1rem;right:1rem}.toast{color:var(--white);border-radius:8px;padding:.75rem 1.25rem;font-size:.85rem;font-weight:500;animation:.3s slideIn;box-shadow:0 4px 12px #00000026}.toast-success{background:var(--green)}.toast-error{background:var(--red)}.toast-info{background:var(--navy)}@keyframes slideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--white);border-radius:12px;width:90%;max-width:500px;max-height:80vh;padding:1.5rem;overflow-y:auto}.modal h3{color:var(--navy);margin-bottom:1rem}.spinner{border:3px solid var(--mid-gray);border-top-color:var(--navy);border-radius:50%;width:24px;height:24px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.metric-elite{color:var(--green);font-weight:700}.metric-good{color:var(--green)}.metric-avg{color:var(--gold)}.metric-below{color:var(--red)}.callout{border-left:4px solid var(--navy);background:#f0f4fa;border-radius:0 8px 8px 0;padding:1rem 1.25rem;font-size:1.05rem;font-style:italic;line-height:1.6}.warning-banner{border:1px solid var(--gold);color:#856404;background:#fff3cd;border-radius:8px;padding:.75rem 1rem;font-size:.875rem}.error-banner{border:1px solid var(--red);color:var(--red);background:#f8d7da;border-radius:8px;padding:.75rem 1rem;font-size:.875rem}.nav{background:var(--navy);color:var(--white);padding:0 1rem;padding-top:env(safe-area-inset-top);padding-left:max(1rem, env(safe-area-inset-left));padding-right:max(1rem, env(safe-area-inset-right));min-height:calc(56px + env(safe-area-inset-top));z-index:100;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.nav-brand{letter-spacing:.5px;font-size:1.1rem;font-weight:800}.nav-brand span{color:var(--red)}.nav-links{gap:.25rem;display:flex}.nav-link{color:#ffffffbf;border-radius:6px;padding:.4rem .75rem;font-size:.85rem;font-weight:500;transition:all .2s}.nav-link:hover,.nav-link.active{color:var(--white);background:#ffffff1f}.nav-add{background:var(--red);color:var(--white);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:1.2rem;font-weight:700;display:flex}.report-output h3{color:var(--navy);border-bottom:2px solid var(--mid-gray);margin-top:1.25rem;padding-bottom:.3rem}.report-output h4{color:var(--navy);margin-top:1rem}.report-output p{margin:.5rem 0}.report-output strong{color:var(--navy)}.report-output ul,.report-output ol{margin:.5rem 0 .5rem 1.5rem}.report-output hr{border:none;border-top:1px solid var(--mid-gray);margin:1rem 0}.sparkline{align-items:flex-end;gap:2px;height:40px;display:flex}.sparkline-bar{background:var(--navy);border-radius:2px 2px 0 0;flex:1;min-width:4px;transition:height .3s}@media print{.nav,.no-print,.btn,.toast-container,.modal-overlay{display:none!important}body{background:#fff;margin:0;font-size:11pt}.container{max-width:100%;margin:0;padding:0}.card{box-shadow:none;border:1px solid #ddd}.print-only{display:block!important}.print-header{text-align:center;color:var(--navy);border-bottom:2px solid var(--navy);margin-bottom:12pt;padding-bottom:8pt;font-size:14pt;font-weight:800}.print-header .sub{font-size:10pt;font-weight:400}.print-section{page-break-inside:avoid;margin-top:16pt}.print-section h4{color:var(--navy);border-bottom:1px solid #ccc;margin-bottom:4pt;padding-bottom:2pt;font-size:11pt}.print-line{border-bottom:1px solid #999;height:24pt;margin:4pt 0}.print-drill-row{gap:8pt;margin:4pt 0;font-size:10pt;display:flex}.print-drill-row span{border-bottom:1px solid #999}.print-checkbox{vertical-align:middle;border:1.5px solid #333;width:14pt;height:14pt;margin-right:6pt;display:inline-block}.report-output{font-size:10pt;line-height:1.4}.report-output h3{font-size:11pt}.report-charts{page-break-after:always}.report-charts .recharts-responsive-container{break-inside:avoid}.program-exercise-video{display:none!important}.program-exercise-row{page-break-inside:avoid}.program-video-row,.program-table .mobile-detail-row{display:none!important}.program-table .col-weight,.program-table .col-rest,.program-table .col-notes{display:table-cell!important}.program-table{font-size:9pt}.program-table th,.program-section-row td{-webkit-print-color-adjust:exact;print-color-adjust:exact}.play-btn{display:none!important}}.print-only{display:none}.nav-toggle{color:var(--white);cursor:pointer;background:0 0;border:none;align-items:center;padding:.25rem;font-size:1.5rem;display:none}.drill-slot-grid{grid-template-columns:1fr 70px 70px 1fr 32px;align-items:center;gap:.5rem;display:grid}@media (width<=768px){.grid-2{grid-template-columns:1fr}.grid-3{grid-template-columns:1fr 1fr}.grid-4{grid-template-columns:repeat(2,1fr)!important}.grid-3-inline{grid-template-columns:1fr 1fr!important}.nav-links{gap:.15rem}.nav-link{padding:.3rem .5rem;font-size:.75rem}}@media (width<=640px){.grid-2,.grid-3{grid-template-columns:1fr}.grid-4{grid-template-columns:repeat(2,1fr)!important}.grid-3-inline,.grid-2-inline{grid-template-columns:1fr!important}.container{padding:.75rem}.btn{padding:.6rem 1rem}.metric-grid{grid-template-columns:repeat(2,1fr)!important}.nav{padding:0 .5rem;position:relative}.nav-brand{font-size:.85rem}.nav-brand .nav-subtitle{display:none}.nav-toggle{display:flex}.nav-links{top:calc(56px + env(safe-area-inset-top));background:var(--navy);z-index:99;flex-direction:column;padding:.5rem;display:none;position:absolute;left:0;right:0;box-shadow:0 4px 12px #0003}.nav-links.open{display:flex}.nav-link{text-align:left;width:100%;padding:.75rem 1rem;font-size:.9rem}.toast-container{top:auto;left:1rem;right:1rem;bottom:calc(1rem + env(safe-area-inset-bottom))}.table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.program-table .col-weight,.program-table .col-rest,.program-table .col-notes{display:none}.program-table .mobile-detail-row{display:table-row!important}.program-table .mobile-detail-row td{color:var(--dark-gray);border-bottom:1px solid var(--mid-gray);background:#fafafa;padding:.25rem .75rem .5rem;font-size:.75rem}.drill-slot-grid{grid-template-columns:1fr 1fr!important}.drill-slot-grid>:nth-child(4){grid-column:1/-1}.drill-slot-grid>:nth-child(5){grid-column:1/-1;justify-self:end}}
