@keyframes medalBounce{0%{transform:scale(.6)}55%{transform:scale(1.25)}75%{transform:scale(.92)}90%{transform:scale(1.08)}to{transform:scale(1)}}@keyframes sparklePulse{0%,to{opacity:.4;transform:translate(var(--tx, 0),var(--ty, 0)) scale(1)}50%{opacity:1;transform:translate(var(--tx, 0),var(--ty, 0)) scale(1.4)}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0f172a;--surface: #1e293b;--surface2: #263349;--border: #334155;--accent: #3b82f6;--accent-dim:#1d4ed8;--green: #22c55e;--orange: #f59e0b;--red: #ef4444;--text: #f1f5f9;--muted: #94a3b8;--warmup-bg: #292010;--work-bg: #0f1f2e;--font: system-ui, -apple-system, sans-serif}html,body,#root{height:100%;background:var(--bg);color:var(--text);font-family:var(--font);font-size:15px;line-height:1.5}input,select,textarea,button{font-family:inherit;font-size:inherit;color:inherit}button{cursor:pointer;border:none;background:none}.app{display:flex;flex-direction:column;height:100dvh;max-width:900px;margin:0 auto}.screen-container{flex:1;overflow-y:auto;padding-bottom:env(safe-area-inset-bottom)}.navbar{display:flex;background:var(--surface);border-top:1px solid var(--border);padding:6px 0 max(6px,env(safe-area-inset-bottom))}.nav-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 4px;color:var(--muted);transition:color .15s}.nav-btn.active{color:var(--accent)}.nav-icon{font-size:20px}.nav-label{font-size:11px;font-weight:500}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px}.btn{display:inline-flex;align-items:center;gap:6px;padding:10px 18px;border-radius:8px;font-weight:600;font-size:14px;transition:opacity .15s,transform .1s}.btn:active{transform:scale(.97)}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{opacity:.9}.btn-success{background:var(--green);color:#fff}.btn-success:hover{opacity:.9}.btn-danger{background:var(--red);color:#fff}.btn-outline{background:transparent;border:1px solid var(--border);color:var(--text)}.btn-outline:hover{border-color:var(--accent);color:var(--accent)}.btn-ghost{background:transparent;color:var(--muted);padding:6px 10px;font-size:13px}.btn-ghost:hover{color:var(--text)}.btn-sm{padding:6px 12px;font-size:13px}.btn-block{width:100%;justify-content:center}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:100px;font-size:12px;font-weight:600}.badge-blue{background:rgba(59,130,246,.18);color:var(--accent)}.badge-green{background:rgba(34,197,94,.18);color:var(--green)}.badge-orange{background:rgba(245,158,11,.18);color:var(--orange)}.badge-red{background:rgba(239,68,68,.18);color:var(--red)}.badge-gray{background:rgba(148,163,184,.12);color:var(--muted)}.section-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:10px}.home-screen{padding:24px 16px 32px}.home-header{margin-bottom:28px}.home-date{font-size:13px;color:var(--muted);margin-bottom:4px}.home-title{font-size:26px;font-weight:800;letter-spacing:-.02em}.day-selector{display:flex;flex-direction:column;gap:12px;margin-bottom:28px}.day-option{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;background:var(--surface);border:2px solid var(--border);border-radius:12px;cursor:pointer;transition:border-color .15s,background .15s;text-align:left;width:100%}.day-option:hover{border-color:var(--accent)}.day-option.selected{border-color:var(--accent);background:var(--work-bg)}.day-option-title{font-size:17px;font-weight:700;margin-bottom:2px}.day-option-sub{font-size:13px;color:var(--muted)}.day-option-arrow{font-size:20px;color:var(--muted)}.day-option.selected .day-option-arrow{color:var(--accent)}.focus-info{padding:14px 16px;background:rgba(59,130,246,.08);border:1px solid rgba(59,130,246,.25);border-radius:10px;margin-bottom:20px}.focus-info-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin-bottom:4px}.focus-info-text{font-size:15px;font-weight:600}.rotation-dots{display:flex;gap:8px;align-items:center;margin-top:8px}.rotation-dot{width:8px;height:8px;border-radius:50%;background:var(--border)}.rotation-dot.active{background:var(--accent)}.rotation-dot.past{background:var(--green)}.last-session-preview{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px 16px;margin-bottom:20px}.last-session-row{display:flex;justify-content:space-between;align-items:center;padding:4px 0;font-size:13px;border-bottom:1px solid var(--border)}.last-session-row:last-child{border-bottom:none}.last-session-exercise{color:var(--muted)}.last-session-weight{font-weight:600}.training-screen{padding:0 0 32px}.training-header{position:sticky;top:0;z-index:10;background:var(--bg);padding:14px 16px 12px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.training-header-left{flex:1}.training-title{font-size:18px;font-weight:800;letter-spacing:-.01em}.training-subtitle{font-size:12px;color:var(--muted);margin-top:1px}.muscle-block{margin-bottom:4px}.muscle-header{display:flex;align-items:center;gap:10px;padding:14px 16px 10px;position:sticky;top:65px;z-index:5;background:var(--bg)}.muscle-header-name{font-size:16px;font-weight:800;letter-spacing:-.01em}.muscle-header-order{font-size:11px;color:var(--muted);background:var(--surface);padding:2px 8px;border-radius:20px}.exercise-block{margin:0 12px 16px;background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden}.exercise-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px 10px;border-bottom:1px solid var(--border);gap:10px}.exercise-name-btn{font-size:15px;font-weight:700;color:var(--text);background:none;border:none;cursor:pointer;text-align:left;flex:1;padding:0}.exercise-name-btn:hover{color:var(--accent)}.exercise-rec{font-size:12px;font-weight:600;white-space:nowrap}.set-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.set-table{width:100%;border-collapse:collapse;font-size:13px}.set-table th{padding:7px 8px;text-align:center;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:var(--surface2);border-bottom:1px solid var(--border);white-space:nowrap}.set-table th:first-child{text-align:center;width:32px}.set-table th.col-notes{text-align:left}.set-table td{padding:6px;text-align:center;vertical-align:middle;border-bottom:1px solid rgba(51,65,85,.5)}.set-table tr:last-child td{border-bottom:none}.set-table tr.row-warmup{background:var(--warmup-bg)}.set-table tr.row-work{background:var(--work-bg)}.set-num{width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;cursor:pointer}.set-num.warmup{background:rgba(245,158,11,.15);color:var(--orange)}.set-num.work{background:rgba(59,130,246,.15);color:var(--accent)}.ref-cell{color:var(--muted);font-size:12px}.ref-cell.no-data{color:var(--border)}.input-cell{width:58px;padding:5px 6px;background:var(--bg);border:1px solid var(--border);border-radius:6px;text-align:center;color:var(--text);transition:border-color .15s}.input-cell:focus{outline:none;border-color:var(--accent)}.input-cell.reps-ok{border-color:#22c55e80;color:var(--green)}.input-notes{width:100%;min-width:100px;padding:5px 8px;background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);transition:border-color .15s;font-size:12px}.input-notes:focus{outline:none;border-color:var(--accent)}.set-del-btn{padding:2px 6px;color:var(--muted);font-size:16px;border-radius:4px}.set-del-btn:hover{color:var(--red)}.add-set-row{padding:8px 14px 12px;display:flex;align-items:center;gap:8px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.7);z-index:100;display:flex;align-items:flex-end;justify-content:center}.modal-sheet{background:var(--surface);border-radius:16px 16px 0 0;width:100%;max-width:900px;max-height:80vh;overflow-y:auto;padding:20px 16px 32px}.modal-title{font-size:17px;font-weight:700;margin-bottom:16px}.exercise-picker-group{margin-bottom:16px}.exercise-picker-muscle{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:8px}.exercise-picker-btn{display:block;width:100%;text-align:left;padding:10px 12px;border-radius:8px;margin-bottom:4px;font-size:14px;color:var(--text);background:var(--surface2);transition:background .12s}.exercise-picker-btn:hover{background:var(--border)}.exercise-picker-btn.selected{background:rgba(59,130,246,.15);color:var(--accent)}.training-footer{padding:16px;display:flex;gap:10px}.progress-screen{padding:20px 16px 32px}.progress-header{margin-bottom:20px}.progress-title{font-size:22px;font-weight:800;letter-spacing:-.02em;margin-bottom:4px}.exercise-select{width:100%;padding:10px 12px;background:var(--surface);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:15px;margin-bottom:20px;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.exercise-select:focus{outline:none;border-color:var(--accent)}.chart-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:16px}.chart-title{font-size:14px;font-weight:700;margin-bottom:12px;color:var(--muted)}.stats-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-bottom:16px}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:12px;text-align:center}.stat-value{font-size:22px;font-weight:800;letter-spacing:-.03em}.stat-label{font-size:11px;color:var(--muted);margin-top:2px}.history-screen{padding:20px 16px 32px}.history-title{font-size:22px;font-weight:800;letter-spacing:-.02em;margin-bottom:20px}.history-session{background:var(--surface);border:1px solid var(--border);border-radius:12px;margin-bottom:12px;overflow:hidden}.history-session-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;cursor:pointer;-webkit-user-select:none;user-select:none}.history-session-header:hover{background:var(--surface2)}.history-session-date{font-size:13px;color:var(--muted)}.history-session-type{font-size:16px;font-weight:700;margin-top:2px}.history-session-arrow{color:var(--muted);font-size:18px;transition:transform .2s}.history-session-arrow.open{transform:rotate(180deg)}.history-session-body{border-top:1px solid var(--border);padding:14px 16px}.history-exercise-row{display:flex;justify-content:space-between;align-items:flex-start;padding:6px 0;border-bottom:1px solid rgba(51,65,85,.4);font-size:13px;gap:12px}.history-exercise-row:last-child{border-bottom:none}.history-ex-name{color:var(--muted);flex:1}.history-ex-sets{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end}.history-set-chip{display:inline-flex;align-items:center;gap:2px;padding:2px 7px;border-radius:20px;font-size:11px;font-weight:600}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.empty-state{text-align:center;padding:48px 16px;color:var(--muted)}.empty-state-icon{font-size:48px;margin-bottom:12px}.empty-state-text{font-size:15px}
