body{margin:0}:root{--brand:#3b82f6;--brand-dark:#2563eb;--brand-light:#17263f;--brand-2:#3b82f6;--bg:#14161b;--surface:#1d2027;--surface-2:#23272f;--text-1:#eef1f5;--text-2:#aab2bf;--text-3:#6e7681;--border:#2c313b;--text:#eef1f5;--text-muted:#6e7681;--success:#22c55e;--success-bg:#143123;--success-text:#6ee7a0;--warn:#f59e0b;--warn-bg:#33290f;--warn-text:#fbd34d;--danger:#f04452;--danger-bg:#3a1d20;--danger-text:#f8a3a8;--r:18px;--r-sm:12px;--r-xs:8px;--shadow:0 1px 3px #0000004d;--shadow-md:0 8px 28px #00000080}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text-1);letter-spacing:-.01em;-webkit-font-smoothing:antialiased;font-family:Pretendard Variable,Pretendard,Noto Sans KR,Apple SD Gothic Neo,-apple-system,BlinkMacSystemFont,Malgun Gothic,sans-serif;line-height:1.6}button{cursor:pointer;font-family:inherit}input,textarea,select{font-family:inherit}#root{width:100%}*{-webkit-tap-highlight-color:transparent}html{touch-action:manipulation}html,body{overscroll-behavior-y:none;overflow-x:hidden}button,.bnav-item,.app-brand,.lock-row{-webkit-user-select:none;user-select:none}p,h1,h2,h3,span,td,input,textarea{-webkit-user-select:auto;user-select:auto}input,textarea,select{font-size:max(16px,1rem)}button,a[role=button]{min-height:44px}.ex-icon-btn,.gym-del-btn,.user-del-btn,.del-yes,.del-no{min-width:36px;min-height:36px}.app-boot{background:var(--bg);position:fixed;inset:0}.app-shell{min-height:100dvh;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);flex-direction:column;display:flex}.app-top{background:var(--surface);border-bottom:1px solid var(--border);z-index:50;padding-top:env(safe-area-inset-top);position:sticky;top:0;box-shadow:0 2px 12px #3182f60f}.app-top-inner{align-items:center;gap:10px;max-width:920px;height:58px;margin:0 auto;padding:0 18px;display:flex}.app-brand{flex:1;align-items:center;gap:6px;display:flex}.app-brand-icon{color:var(--brand);align-items:center;display:inline-flex}.app-brand-name{background:linear-gradient(135deg, var(--brand), var(--brand-2));-webkit-text-fill-color:transparent;letter-spacing:-.5px;-webkit-background-clip:text;font-size:1.15rem;font-weight:900}.new-routine-btn{background:var(--brand-light);color:var(--brand);border:1.5px solid var(--brand);white-space:nowrap;border-radius:20px;padding:7px 15px;font-size:.82rem;font-weight:700;transition:all .15s}.new-routine-btn:hover{background:var(--brand);color:#fff}.back-btn{border:1.5px solid var(--border);background:var(--surface);color:var(--text-2);border-radius:20px;padding:7px 14px;font-size:.85rem;font-weight:600;transition:all .15s}.back-btn:hover:not(:disabled){border-color:var(--brand);color:var(--brand)}.back-btn:disabled{opacity:.5;cursor:not-allowed}.generate-header-title{text-align:center;color:var(--text-2);flex:1;font-size:.95rem;font-weight:700}.tab-viewport{flex:1;min-height:0;position:relative;overflow:hidden}.tab-track{will-change:transform;height:100%;transition:transform .32s cubic-bezier(.22,.61,.36,1);display:flex}.tab-track.dragging{transition:none}.tab-pane{-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;flex:0 0 100%;width:100%;min-width:0;overflow:hidden auto}.generate-pane{flex:1;min-height:0;display:none;overflow-y:auto}.generate-pane.visible{display:block}.app-content{max-width:920px;padding:20px 16px calc(84px + env(safe-area-inset-bottom));margin:0 auto}.user-switcher{position:relative}.user-switcher-btn{border:1.5px solid var(--border);background:var(--surface);cursor:pointer;color:var(--text-1);border-radius:20px;align-items:center;gap:7px;padding:6px 12px 6px 6px;font-size:.84rem;transition:all .15s;display:flex}.user-switcher-btn:hover{border-color:var(--brand)}.user-avatar{background:linear-gradient(135deg, var(--brand), var(--brand-2));color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:.75rem;font-weight:800;display:flex}.user-name{text-overflow:ellipsis;white-space:nowrap;max-width:80px;font-weight:600;overflow:hidden}.user-chevron{color:var(--text-3);font-size:.6rem}.user-dropdown{background:var(--surface);border-radius:var(--r-sm);width:220px;box-shadow:var(--shadow-md);border:1px solid var(--border);z-index:200;padding:8px 0;position:absolute;top:calc(100% + 8px);right:0}.user-dropdown-empty{color:var(--text-3);padding:12px 16px;font-size:.82rem}.user-option{align-items:center;gap:4px;padding:0 8px;display:flex}.user-option-name{cursor:pointer;color:var(--text-1);border-radius:var(--r-xs);text-align:left;background:0 0;border:none;flex:1;align-items:center;gap:8px;padding:9px 8px;font-size:.86rem;transition:background .12s;display:flex}.user-option-name:hover{background:var(--bg)}.user-option.active .user-option-name{color:var(--brand);font-weight:700}.user-option-avatar{background:var(--brand-light);width:26px;height:26px;color:var(--brand);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;display:flex}.user-check{color:var(--brand);margin-left:auto;font-size:.8rem}.user-del-btn{cursor:pointer;color:var(--text-2);opacity:.5;border-radius:var(--r-xs);background:0 0;border:none;justify-content:center;align-items:center;padding:6px 8px;transition:opacity .15s,background .15s,color .15s;display:inline-flex}.user-del-btn:hover{opacity:1;background:var(--danger-bg);color:var(--danger)}.user-del-confirm{color:var(--danger);align-items:center;gap:6px;padding:4px 6px;font-size:.78rem;display:flex}.del-yes{border-radius:var(--r-xs);background:var(--danger);color:#fff;border:none;padding:3px 9px;font-size:.76rem;font-weight:700}.del-no{border-radius:var(--r-xs);border:1px solid var(--border);background:var(--surface);padding:3px 9px;font-size:.76rem}.user-divider{border:none;border-top:1px solid var(--border);margin:6px 0}.user-add-btn{width:100%;color:var(--brand);text-align:left;border-radius:var(--r-xs);background:0 0;border:none;padding:10px 16px;font-size:.85rem;font-weight:600;transition:background .12s}.user-add-btn:hover{background:var(--brand-light)}.user-add-row{gap:6px;padding:6px 10px;display:flex}.user-add-input{border:1.5px solid var(--brand);border-radius:var(--r-xs);outline:none;flex:1;padding:7px 10px;font-size:.85rem}.user-add-confirm{border-radius:var(--r-xs);background:var(--brand);color:#fff;border:none;padding:7px 12px;font-size:.85rem;font-weight:700}.user-add-confirm:disabled{opacity:.5;cursor:not-allowed}.mypage-empty-state{text-align:center;flex-direction:column;align-items:center;gap:14px;padding:60px 24px;display:flex}.mypage-empty-state .empty-icon,.empty-icon{color:var(--text-3);display:inline-flex}.mypage-empty-state h2{color:var(--text-1);font-size:1.1rem;font-weight:700}.mypage-empty-state p{color:var(--text-2);font-size:.88rem}.empty-generate-btn{background:linear-gradient(135deg, var(--brand), var(--brand-2));color:#fff;border:none;border-radius:24px;margin-top:6px;padding:13px 32px;font-size:1rem;font-weight:700;transition:box-shadow .2s,transform .15s;box-shadow:0 4px 16px #3182f659}.empty-generate-btn:hover{transform:translateY(-1px);box-shadow:0 6px 24px #3182f673}.mypage{flex-direction:column;gap:16px;display:flex}.profile-hero{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow);align-items:center;gap:16px;padding:20px;display:flex}.profile-avatar{background:linear-gradient(135deg, var(--brand) 0%, var(--brand-dark) 100%);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;font-size:1.4rem;font-weight:800;display:flex;box-shadow:0 4px 14px #3b82f659}.profile-hero-info{flex:1}.nickname-edit-row{margin-bottom:4px}.nickname-hero-name{color:var(--text-1);letter-spacing:-.5px;font-size:1.4rem;font-weight:800}.profile-hero-info p{color:var(--text-2);font-size:.86rem}.level-badge{background:var(--brand-light);color:#7eb0ff;border:1px solid #3b82f640;border-radius:999px;margin-top:8px;padding:3px 12px;font-size:.78rem;font-weight:700;display:inline-block}.mypage-grid{flex-direction:column;gap:14px;display:flex}.mp-card{background:var(--surface);border-radius:var(--r);box-shadow:var(--shadow);border:1px solid var(--border);padding:20px}.mp-card-title{text-transform:none;letter-spacing:-.2px;color:var(--text-1);margin-bottom:14px;font-size:1rem;font-weight:700}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(70px,1fr));gap:10px;display:grid}.stat-item{background:var(--bg);border-radius:var(--r-sm);text-align:center;flex-direction:column;align-items:center;gap:2px;padding:12px 8px;display:flex}.stat-item.highlight{background:var(--brand-light)}.stat-val{color:var(--text-1);font-size:1.6rem;font-weight:800;line-height:1.1}.stat-item.highlight .stat-val{color:var(--brand)}.stat-val small{color:var(--text-3);margin-left:1px;font-size:.7rem;font-weight:500}.stat-label{color:var(--text-2);font-size:.72rem;font-weight:500}.lifts-grid{flex-direction:column;gap:10px;display:flex}.lift-item{background:var(--bg);border-radius:var(--r-sm);align-items:baseline;gap:8px;padding:10px 14px;display:flex}.lift-name{color:var(--text-2);min-width:80px;font-size:.84rem;font-weight:600}.lift-weight{color:var(--text-1);font-size:1.1rem;font-weight:800}.lift-weight small{color:var(--text-3);font-size:.7rem;font-weight:500}.lift-reps{color:var(--text-3);font-size:.8rem}.lift-e1rm{color:var(--brand);margin-left:auto;font-size:.75rem;font-weight:600}.ss-top{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding-bottom:14px;display:flex}.ss-sum{flex-direction:column;display:flex}.ss-sum-val{color:var(--text-1);font-size:1.9rem;font-weight:800;line-height:1}.ss-sum-val small{color:var(--text-2);margin-left:2px;font-size:.9rem;font-weight:600}.ss-sum-label{color:var(--text-2);margin-top:5px;font-size:.76rem}.ss-overall{white-space:nowrap;border:1.5px solid;border-radius:999px;padding:5px 13px;font-size:.86rem;font-weight:700}.ss-lifts{flex-direction:column;gap:17px;display:flex}.ss-lift-head{justify-content:space-between;align-items:baseline;margin-bottom:8px;display:flex}.ss-lift-name,.ss-lift-num{color:var(--text-1);font-size:.92rem;font-weight:700}.ss-lift-num small{color:var(--text-2);font-size:.72rem;font-weight:600}.ss-lift-num em{color:var(--text-2);margin-left:5px;font-size:.78rem;font-style:normal;font-weight:600}.ss-track{background:var(--surface-2);border-radius:999px;height:10px;position:relative}.ss-fill{border-radius:999px;height:100%;transition:width .6s;position:absolute;top:0;left:0}.ss-tick{background:var(--bg);opacity:.85;border-radius:1px;width:2px;height:14px;position:absolute;top:-2px;transform:translate(-1px)}.ss-dot{border:2px solid var(--surface);border-radius:50%;width:14px;height:14px;position:absolute;top:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #0000004d}.ss-lift-foot{justify-content:space-between;align-items:center;margin-top:8px;display:flex}.ss-tier{font-size:.84rem;font-weight:800}.ss-next{color:var(--text-2);font-size:.76rem}.ss-note{color:var(--text-3);margin-top:15px;font-size:.7rem;line-height:1.5}.plan-card-header{justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px;display:flex}.plan-card-header .mp-card-title{margin:0}.plan-edit-btn{border:1.5px solid var(--brand);background:var(--surface);color:var(--brand);border-radius:20px;padding:6px 14px;font-size:.8rem;font-weight:700;transition:all .15s}.plan-edit-btn:hover{background:var(--brand);color:#fff}.plan-edit-actions{gap:8px;display:flex}.plan-save-btn{background:var(--success);color:#fff;border:none;border-radius:20px;padding:6px 14px;font-size:.8rem;font-weight:700}.plan-save-btn:hover{background:#16a34a}.plan-cancel-btn{border:1.5px solid var(--border);background:var(--surface);color:var(--text-2);border-radius:20px;padding:6px 14px;font-size:.8rem;font-weight:600}.plan-cancel-btn:hover{background:var(--bg)}.plan-days{flex-direction:column;gap:10px;display:flex}.plan-day{border:1.5px solid var(--border);border-radius:var(--r-sm);overflow:hidden}.plan-day.day-done{border-color:var(--success)}.plan-day-header{background:var(--bg);border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:10px 14px;display:flex}.plan-day.day-done .plan-day-header{background:var(--success-bg);border-bottom-color:#bbf7d0}.plan-day-label{color:var(--brand);font-size:.75rem;font-weight:700}.plan-day-focus{color:var(--text-1);flex:1;font-size:.86rem;font-weight:600}.plan-day-check{color:var(--success-text);font-size:.75rem;font-weight:700}.plan-exercises{flex-direction:column;gap:6px;padding:10px 14px;display:flex}.plan-ex-row{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.plan-ex-name{color:var(--text-1);font-size:.86rem;font-weight:500}.plan-ex-detail{color:var(--text-3);white-space:nowrap;font-size:.78rem}.plan-rest{color:var(--text-3);padding:0 14px 10px;font-size:.74rem}.plan-edit-days{flex-direction:column;gap:18px;display:flex}.plan-edit-day{border:1.5px solid var(--border);border-radius:var(--r-sm);background:var(--bg);flex-direction:column;gap:10px;padding:14px;display:flex}.plan-edit-day-header{align-items:center;gap:10px;margin-bottom:4px;display:flex}.plan-edit-day-label{color:var(--brand);background:var(--brand-light);border-radius:var(--r-xs);white-space:nowrap;padding:3px 8px;font-size:.74rem;font-weight:700}.plan-edit-focus{border-radius:var(--r-sm);border:1.5px solid var(--border);color:var(--text-1);background:var(--surface);flex:1;padding:6px 10px;font-size:.88rem;font-weight:600}.plan-edit-focus:focus{border-color:var(--brand);outline:none}.plan-edit-ex{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);flex-direction:column;gap:8px;padding:12px;display:flex}.plan-edit-ex-top{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.plan-edit-ex-name{border-radius:var(--r-sm);border:1.5px solid var(--border);min-width:120px;color:var(--text-1);background:var(--bg);flex:1;padding:6px 10px;font-size:.88rem}.plan-edit-ex-name:focus{border-color:var(--brand);background:var(--surface);outline:none}.plan-edit-rest-label{color:var(--text-2);white-space:nowrap;align-items:center;gap:4px;font-size:.8rem;display:flex}.plan-edit-rest{border-radius:var(--r-xs);border:1.5px solid var(--border);text-align:center;background:var(--bg);width:56px;padding:5px 8px;font-size:.84rem}.plan-edit-rest:focus{border-color:var(--brand);outline:none}.plan-remove-ex-btn{border-radius:var(--r-xs);border:1.5px solid var(--danger-bg);background:var(--danger-bg);color:var(--danger-text);padding:5px 10px;font-size:.78rem;font-weight:600}.plan-remove-ex-btn:hover{background:#fecaca}.plan-edit-sets{flex-direction:column;gap:6px;padding-left:4px;display:flex}.plan-edit-set-row{align-items:center;gap:6px;display:flex}.plan-edit-set-num{color:var(--text-3);min-width:38px;font-size:.74rem}.plan-edit-set-input{border-radius:var(--r-xs);border:1.5px solid var(--border);text-align:center;background:var(--bg);width:58px;padding:5px 6px;font-size:.84rem}.plan-edit-set-input:focus{border-color:var(--brand);outline:none}.plan-edit-set-unit{color:var(--text-2);font-size:.8rem}.plan-remove-set-btn{background:var(--danger-bg);width:24px;height:24px;color:var(--danger);border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.plan-remove-set-btn:hover{background:#fecaca}.plan-add-set-btn{border-radius:var(--r-xs);border:1.5px dashed var(--border);color:var(--text-3);background:0 0;align-self:flex-start;margin-top:2px;padding:4px 10px;font-size:.78rem}.plan-add-set-btn:hover{border-color:var(--brand);color:var(--brand)}.plan-add-ex-btn{border-radius:var(--r-sm);border:1.5px dashed var(--brand);color:var(--brand);background:0 0;align-self:flex-start;margin-top:4px;padding:8px 14px;font-size:.84rem;font-weight:600}.plan-add-ex-btn:hover{background:var(--brand-light)}.narrative-card{padding:0;overflow:hidden}.narrative-toggle{width:100%;color:var(--text-2);cursor:pointer;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;padding:18px 20px;font-size:.88rem;font-weight:700;display:flex}.narrative-toggle:hover{color:var(--text-1)}.narrative-chevron{color:var(--text-3);font-size:.7rem}.narrative-body{border-top:1px solid var(--border);color:var(--text-2);padding:0 20px 20px;font-size:.86rem;line-height:1.8}.narrative-body h1,.narrative-body h2,.narrative-body h3{color:var(--text-1);margin:14px 0 8px;font-weight:700}.narrative-body ul{margin:6px 0;padding-left:18px}.narrative-body p{margin:4px 0}.sessions-list{flex-direction:column;gap:0;display:flex}.session-row{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:12px 0;display:flex}.session-row:last-child{border-bottom:none}.session-date{color:var(--text-3);min-width:80px;font-size:.75rem}.session-info{flex:1;align-items:center;gap:8px;display:flex}.session-focus{color:var(--text-1);font-size:.86rem;font-weight:500}.session-sets{color:var(--text-3);font-size:.75rem}.session-badge{border-radius:12px;flex-shrink:0;padding:3px 9px;font-size:.72rem;font-weight:700}.session-badge.done{background:var(--success-bg);color:var(--success-text)}.session-badge.partial{background:var(--warn-bg);color:var(--warn-text)}.form{background:var(--surface);border-radius:var(--r);box-shadow:var(--shadow);border:1px solid var(--border);flex-direction:column;gap:28px;padding:28px 24px;display:flex}.section-title{align-items:flex-start;gap:12px;margin-bottom:2px;display:flex}.section-icon{color:var(--brand);justify-content:center;align-items:center;margin-top:1px;display:inline-flex}.section-title h3{color:var(--text-1);font-size:1rem;font-weight:700}.section-title p{color:var(--text-2);margin-top:2px;font-size:.82rem}.form-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px;margin-top:16px;display:grid}.form-group{flex-direction:column;gap:6px;display:flex}.form-group label{color:var(--text-2);text-transform:none;letter-spacing:-.1px;font-size:.82rem;font-weight:600}.form-group input,.form-group select,.form-group textarea{border-radius:var(--r-sm);border:1.5px solid var(--border);background:var(--bg);color:var(--text-1);padding:10px 12px;font-size:.9rem;transition:border-color .15s,background .15s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--brand);background:var(--surface);outline:none;box-shadow:0 0 0 3px #3182f61f}.form-section{margin-top:8px}.chip-group{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.chip{border:1.5px solid var(--border);background:var(--surface);color:var(--text-2);cursor:pointer;border-radius:20px;padding:7px 14px;font-size:.84rem;transition:all .15s}.chip:hover{border-color:var(--brand);color:var(--brand)}.chip.selected{background:var(--brand);color:#fff;border-color:var(--brand)}.equipment-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;display:grid}.equipment-item{border-radius:var(--r-sm);border:1.5px solid var(--border);background:var(--surface);text-align:center;cursor:pointer;color:var(--text-2);padding:10px 8px;font-size:.82rem;transition:all .15s}.equipment-item:hover{border-color:var(--brand)}.equipment-item.selected{background:var(--brand-light);border-color:var(--brand);color:var(--brand);font-weight:600}.weight-section{flex-direction:column;gap:10px;display:flex}.weight-row{grid-template-columns:1fr auto auto;align-items:center;gap:10px;display:grid}.weight-input{border-radius:var(--r-sm);border:1.5px solid var(--border);background:var(--bg);text-align:center;width:80px;padding:8px 10px;font-size:.88rem}.weight-unit{color:var(--text-3);font-size:.8rem}.submit-btn{border-radius:var(--r-sm);background:linear-gradient(135deg, var(--brand), var(--brand-2));color:#fff;letter-spacing:-.2px;border:none;width:100%;padding:15px;font-size:1rem;font-weight:800;transition:transform .15s,box-shadow .15s;box-shadow:0 4px 18px #3182f659}.submit-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 24px #3182f673}.submit-btn:disabled{opacity:.6;cursor:not-allowed}.loading-screen{text-align:center;flex-direction:column;align-items:center;gap:18px;padding:60px 24px;display:flex}.loading-icon{color:var(--brand);animation:1.5s infinite bounce;display:inline-flex}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.loading-title{color:var(--text-1);font-size:1.2rem;font-weight:800}.loading-step{color:var(--text-2);min-height:1.4em;font-size:.9rem}.loading-think{text-align:left;width:100%;max-width:420px;max-height:132px;color:var(--text-3);background:var(--surface-2);border:1px solid var(--border);white-space:pre-wrap;word-break:break-word;border-radius:10px;padding:12px 14px;font-size:.8rem;line-height:1.55;overflow-y:auto}.loading-bar-wrap{background:var(--border);border-radius:4px;width:100%;max-width:320px;height:8px;overflow:hidden}.loading-bar{background:linear-gradient(90deg, var(--brand), var(--brand-2));border-radius:4px;height:100%;transition:width .6s}.loading-pct{color:var(--text-3);font-size:.82rem;font-weight:600}.checklist-desktop{flex-direction:column;gap:18px;display:flex}.checklist-desktop-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.checklist-desktop-header h2{color:var(--text-1);font-size:1.1rem;font-weight:800}.cl-meta{color:var(--text-2);margin-top:2px;font-size:.82rem}.qr-btn{border:1.5px solid var(--border);background:var(--surface);color:var(--text-2);white-space:nowrap;border-radius:20px;align-items:center;gap:6px;padding:8px 16px;font-size:.82rem;font-weight:600;transition:all .15s;display:inline-flex}.qr-btn:hover{border-color:var(--brand);color:var(--brand)}.week-done-banner{background:linear-gradient(135deg, var(--brand) 0%, var(--brand-2) 100%);border-radius:var(--r);color:#fff;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:20px 22px;display:flex;box-shadow:0 4px 20px #3182f64d}.week-done-content{align-items:center;gap:14px;display:flex}.week-done-emoji{align-items:center;display:inline-flex}.week-done-content strong{font-size:1rem;font-weight:800;display:block}.week-done-content p{opacity:.85;margin-top:2px;font-size:.82rem}.next-week-btn{color:#fff;white-space:nowrap;background:#ffffff26;border:2px solid #ffffff8c;border-radius:20px;padding:10px 20px;font-size:.86rem;font-weight:700}.next-week-btn:hover{background:#ffffff47}.checklist-wrap{flex-direction:column;gap:14px;display:flex}.day-tabs{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;gap:6px;padding-bottom:2px;display:flex;overflow-x:auto}.day-tabs::-webkit-scrollbar{display:none}.day-tab{white-space:nowrap;border:1.5px solid var(--border);background:var(--surface);color:var(--text-2);border-radius:18px;flex-shrink:0;padding:7px 14px;font-size:.8rem;font-weight:600;transition:all .15s}.day-tab:hover{border-color:var(--brand);color:var(--brand)}.day-tab.active{background:var(--brand);color:#fff;border-color:var(--brand)}.day-tab.done{border-color:var(--success);color:var(--success-text);background:var(--success-bg)}.day-tab.skipped{border-color:var(--warn);color:var(--warn-text);background:var(--warn-bg)}.day-info{background:var(--surface);border-radius:var(--r-sm);border:1px solid var(--border);align-items:center;gap:10px;padding:12px 16px;display:flex}.day-info strong{color:var(--text-1);flex:1;font-size:.95rem;font-weight:700}.week-badge{background:var(--brand-light);color:var(--brand);border-radius:12px;padding:3px 10px;font-size:.75rem;font-weight:700}.day-done-banner{border-radius:var(--r-sm);background:var(--success-bg);color:var(--success-text);border:1.5px solid #86efac;justify-content:space-between;align-items:center;gap:12px;padding:13px 16px;font-size:.86rem;font-weight:500;display:flex}.day-done-banner.skipped{background:var(--warn-bg);color:var(--warn-text);border-color:#fde047}.edit-done-btn{border-radius:var(--r-xs);border:1.5px solid var(--success-text);background:var(--surface);color:var(--success-text);flex-shrink:0;padding:6px 12px;font-size:.8rem;font-weight:600}.edit-done-btn:hover{background:var(--success-bg)}.editing-banner{border-radius:var(--r-sm);color:#1d4ed8;background:#eff6ff;border:1.5px solid #93c5fd;padding:12px 16px;font-size:.86rem;font-weight:600}.exercise-card{background:var(--surface);border-radius:var(--r-sm);border:1.5px solid var(--border);transition:border-color .2s;overflow:hidden}.exercise-card.ex-done{border-color:var(--success)}.ex-header{border-bottom:1px solid var(--border);background:var(--surface-2);flex-direction:column;gap:9px;padding:12px 14px;display:flex}.exercise-card.ex-done .ex-header{background:var(--success-bg)}.ex-top{justify-content:space-between;align-items:center;gap:10px;display:flex}.ex-actions{gap:6px;display:flex}.ex-icon-btn{border:1px solid var(--border);background:var(--surface);min-width:36px;height:32px;color:var(--text-2);cursor:pointer;border-radius:9px;justify-content:center;align-items:center;padding:0 9px;font-size:.84rem;font-weight:700;text-decoration:none;transition:all .12s;display:inline-flex}.ex-icon-btn:hover{border-color:var(--brand);color:var(--brand)}.ex-icon-btn.danger:hover{border-color:var(--danger);color:var(--danger)}.ex-name{color:var(--text-1);flex:1;font-size:.95rem;font-weight:700}.ex-rest{color:var(--text-3);white-space:nowrap;align-items:center;gap:3px;font-size:.78rem;font-weight:600;display:inline-flex}.ex-tip{color:var(--brand);background:var(--brand-light);padding:8px 16px;font-size:.8rem}.sets-table{flex-direction:column;gap:6px;padding:12px 16px;display:flex}.sets-header{color:var(--text-3);text-transform:uppercase;letter-spacing:.3px;grid-template-columns:36px 1fr 80px 80px 44px;gap:6px;padding:0 2px;font-size:.72rem;font-weight:700;display:grid}.set-row{border-radius:var(--r-xs);background:var(--bg);grid-template-columns:36px 1fr 80px 80px 44px;align-items:center;gap:6px;padding:7px 10px;transition:background .15s;display:grid}.set-row.set-done{background:var(--success-bg)}.set-num{color:var(--text-3);font-size:.78rem;font-weight:600}.set-target{color:var(--text-2);font-size:.8rem}.set-input{border-radius:var(--r-xs);border:1.5px solid var(--border);background:var(--surface);text-align:center;width:100%;padding:6px 8px;font-size:.86rem}.set-input:focus{border-color:var(--brand);outline:none}.check-btn{border:2px solid var(--border);background:var(--surface);width:36px;height:36px;color:var(--text-3);border-radius:50%;justify-content:center;align-items:center;font-size:1rem;transition:all .15s;display:flex}.check-btn.checked{background:var(--success);border-color:var(--success);color:#fff}.rpe-row{flex-direction:column;gap:6px;padding:10px 16px 4px;display:flex}.rpe-row label{color:var(--text-2);font-size:.8rem;font-weight:600}.rpe-slider{width:100%;accent-color:var(--brand)}.rpe-labels{color:var(--text-3);justify-content:space-between;font-size:.72rem;display:flex}.notes-input{border-radius:var(--r-xs);border:1.5px solid var(--border);background:var(--bg);width:calc(100% - 32px);color:var(--text-1);margin:6px 16px 14px;padding:8px 12px;font-size:.84rem}.notes-input:focus{border-color:var(--brand);outline:none}.checklist-actions{gap:10px;display:flex}.complete-btn{border-radius:var(--r-sm);background:linear-gradient(135deg, var(--brand), var(--brand-2));color:#fff;border:none;flex:1;padding:14px;font-size:.92rem;font-weight:700;box-shadow:0 3px 14px #3182f64d}.complete-btn.incomplete{background:var(--warn);box-shadow:0 3px 14px #f59e0b40}.complete-btn:disabled{opacity:.6;cursor:not-allowed}.skip-btn{border-radius:var(--r-sm);border:1.5px solid var(--border);background:var(--surface);color:var(--text-2);padding:14px 18px;font-size:.86rem;font-weight:600}.skip-btn:hover{border-color:var(--warn);color:var(--warn-text)}.skip-dialog{background:var(--surface);border-radius:var(--r-sm);border:1.5px solid var(--border);box-shadow:var(--shadow-md);padding:18px}.skip-dialog-msg{color:var(--text-2);margin-bottom:14px;font-size:.88rem;line-height:1.6}.skip-dialog-msg strong{color:var(--text-1)}.skip-dialog-btns{flex-wrap:wrap;gap:8px;display:flex}.reschedule-btn{border-radius:var(--r-xs);background:var(--brand-light);color:var(--brand);border:none;padding:9px 16px;font-size:.84rem;font-weight:700}.reschedule-btn:hover{background:var(--brand);color:#fff}.skip-confirm-btn{border-radius:var(--r-xs);background:var(--warn-bg);color:var(--warn-text);border:none;padding:9px 16px;font-size:.84rem;font-weight:700}.skip-confirm-btn:hover{background:#fde68a}.skip-confirm-btn:disabled{opacity:.6;cursor:not-allowed}.skip-cancel-btn{border-radius:var(--r-xs);border:1.5px solid var(--border);background:var(--surface);color:var(--text-2);padding:9px 16px;font-size:.84rem}.checklist-empty,.checklist-loading,.checklist-empty-state{text-align:center;color:var(--text-3);padding:60px 24px}.checklist-page{background:var(--bg);min-height:100vh}.checklist-header{background:var(--surface);border-bottom:1px solid var(--border);z-index:10;justify-content:space-between;align-items:center;padding:16px 18px;display:flex;position:sticky;top:0}.checklist-header h1{font-size:1.1rem;font-weight:800}.week-info{color:var(--text-2);font-size:.82rem}.history-page{flex-direction:column;gap:16px;display:flex}.history-loading{text-align:center;color:var(--text-3);padding:60px}.pr-grid{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;display:grid}.pr-item{background:var(--bg);border-radius:var(--r-sm);border:1.5px solid var(--border);flex-direction:column;align-items:center;gap:4px;padding:14px 10px;display:flex}.pr-name{color:var(--text-2);font-size:.74rem;font-weight:600}.pr-weight{color:var(--text-1);font-size:1.35rem;font-weight:800}.pr-weight small{color:var(--text-3);margin-left:1px;font-size:.68rem;font-weight:500}.pr-date{color:var(--text-3);font-size:.7rem}.history-timeline{flex-direction:column;display:flex}.history-item{border-bottom:1px solid var(--border);gap:14px;padding:14px 0;display:flex}.history-item:last-child{border-bottom:none}.history-left{flex-direction:column;align-items:center;gap:6px;min-width:72px;display:flex}.history-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px;margin-top:4px}.history-dot.done{background:var(--success)}.history-dot.skipped{background:var(--warn)}.history-dot.partial{background:#fb923c}.history-date-label{color:var(--text-3);text-align:center;font-size:.7rem;line-height:1.4}.history-body{flex:1}.history-top-row{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.history-week{color:var(--text-3);font-size:.74rem;font-weight:600}.history-focus{color:var(--text-1);margin-bottom:6px;font-size:.88rem;font-weight:600;display:block}.history-ex-chips{flex-wrap:wrap;gap:5px;margin-bottom:6px;display:flex}.history-ex-chip{background:var(--bg);color:var(--text-2);border:1px solid var(--border);border-radius:10px;padding:3px 8px;font-size:.74rem}.history-sets-info{color:var(--text-3);font-size:.74rem}.history-badge{border-radius:12px;padding:3px 9px;font-size:.7rem;font-weight:700}.history-badge.done{background:var(--success-bg);color:var(--success-text)}.history-badge.skipped{background:var(--warn-bg);color:var(--warn-text)}.history-badge.partial{color:#9a3412;background:#ffedd5}.modal-overlay{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#1a1a3580;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-box{background:var(--surface);border-radius:var(--r);width:90%;max-width:340px;box-shadow:var(--shadow-md);text-align:center;padding:28px;position:relative}.modal-close{color:var(--text-3);background:0 0;border:none;font-size:1.4rem;line-height:1;position:absolute;top:14px;right:16px}.modal-close:hover{color:var(--text-1)}.modal-box h3{color:var(--text-1);margin-bottom:6px;font-size:1rem;font-weight:800}.modal-desc{color:var(--text-2);margin-bottom:20px;font-size:.84rem}.qr-wrap{justify-content:center;margin:16px 0;display:flex}.modal-url{color:var(--text-3);word-break:break-all;background:var(--bg);border-radius:var(--r-xs);margin:10px 0;padding:8px 12px;font-size:.74rem}.modal-hint{color:var(--text-2);margin-top:14px;font-size:.78rem;line-height:1.5}.section-desc{color:var(--text-3);margin-top:3px;font-size:.8rem}.weight-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-top:16px;display:grid}.weight-card{background:var(--bg);border-radius:var(--r-sm);border:1.5px solid var(--border);flex-direction:column;gap:10px;padding:14px;display:flex}.weight-label{color:var(--text-1);font-size:.84rem;font-weight:700}.weight-inputs{align-items:center;gap:8px;display:flex}.weight-input-group{flex:1;align-items:center;gap:4px;display:flex}.weight-input{border-radius:var(--r-xs);border:1.5px solid var(--border);background:var(--surface);text-align:center;flex:1;min-width:0;padding:8px 10px;font-size:.88rem}.weight-input:focus{border-color:var(--brand);outline:none}.weight-unit{color:var(--text-3);white-space:nowrap;font-size:.78rem}.reps-select{border-radius:var(--r-xs);border:1.5px solid var(--border);background:var(--surface);color:var(--text-1);padding:8px 6px;font-size:.84rem}.reps-select:focus{border-color:var(--brand);outline:none}.equipment-section{flex-direction:column;gap:14px;display:flex}.eq-tabs{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.eq-tab{border:1.5px solid var(--border);background:var(--surface);color:var(--text-2);border-radius:20px;align-items:center;gap:5px;padding:8px 16px;font-size:.82rem;font-weight:600;transition:all .15s;display:flex}.eq-tab:hover{border-color:var(--brand);color:var(--brand)}.eq-tab.active{background:var(--brand);color:#fff;border-color:var(--brand)}.eq-tab-cnt{text-align:center;background:#ffffff4d;border-radius:10px;min-width:18px;padding:1px 6px;font-size:.72rem;font-weight:700}.eq-tab:not(.active) .eq-tab-cnt{background:var(--brand-light);color:var(--brand)}.eq-sections{flex-direction:column;gap:14px;display:flex}.eq-section{flex-direction:column;gap:8px;display:flex}.eq-section-header{justify-content:space-between;align-items:center;display:flex}.eq-section-name{color:var(--text-2);align-items:center;gap:6px;font-size:.82rem;font-weight:700;display:flex}.eq-section-cnt{color:var(--brand);background:var(--brand-light);border-radius:8px;padding:1px 6px;font-size:.72rem;font-weight:700}.eq-section-toggle{color:var(--brand);border-radius:var(--r-xs);background:0 0;border:none;padding:2px 8px;font-size:.76rem;font-weight:600}.eq-section-toggle:hover{background:var(--brand-light)}.eq-items{flex-wrap:wrap;gap:7px;display:flex}.eq-chip{border:1.5px solid var(--border);background:var(--surface);color:var(--text-2);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:20px;align-items:center;gap:0;padding:7px 13px;font-size:.82rem;transition:all .15s;display:flex}.eq-chip input[type=checkbox]{display:none}.eq-chip:hover{border-color:var(--brand);color:var(--brand)}.eq-chip.selected{background:var(--brand-light);border-color:var(--brand);color:var(--brand);font-weight:600}.eq-summary{background:var(--bg);border-radius:var(--r-sm);border:1px solid var(--border);flex-direction:column;gap:10px;padding:12px 14px;display:flex}.eq-summary-chips{flex-wrap:wrap;gap:6px;display:flex}.eq-summary-chip{background:var(--brand);color:#fff;border-radius:14px;align-items:center;gap:4px;padding:4px 8px 4px 10px;font-size:.78rem;font-weight:600;display:flex}.eq-summary-chip button{color:#fff;background:#ffffff59;border:none;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;padding:0;font-size:.75rem;line-height:1;display:flex}.eq-summary-chip button:hover{background:#ffffff8c}.eq-clear-all{color:var(--danger);background:0 0;border:none;align-self:flex-start;padding:0;font-size:.78rem;font-weight:600}.eq-clear-all:hover{text-decoration:underline}.loading-text{justify-content:center;align-items:center;gap:10px;display:flex}.spinner{border:3px solid #ffffff59;border-top-color:#fff;border-radius:50%;flex-shrink:0;width:18px;height:18px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:.8s linear infinite spin}.day-edit-btn{border-radius:var(--r-sm);border:1.5px solid var(--brand);color:var(--brand);cursor:pointer;background:0 0;padding:5px 10px;font-size:.78rem;font-weight:600;transition:all .15s}.day-edit-btn:hover{background:var(--brand-light)}.cl-plan-editor{background:var(--surface);border-radius:var(--r);border:1.5px solid var(--brand);flex-direction:column;gap:16px;margin-top:12px;padding:18px;display:flex}.cl-plan-editor-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.cl-plan-editor-title{color:var(--text);font-size:.95rem;font-weight:700}.cl-plan-editor-actions{gap:8px;display:flex}.cl-save-btn{border-radius:var(--r-sm);background:var(--brand);color:#fff;cursor:pointer;border:none;padding:7px 14px;font-size:.82rem;font-weight:700;transition:opacity .15s}.cl-save-btn:hover{opacity:.88}.cl-cancel-btn{border-radius:var(--r-sm);color:var(--text-muted);border:1.5px solid var(--border);cursor:pointer;background:0 0;padding:7px 12px;font-size:.82rem;font-weight:600;transition:background .15s}.cl-cancel-btn:hover{background:var(--bg)}.cl-edit-ex{background:var(--bg);border-radius:var(--r-sm);border:1px solid var(--border);flex-direction:column;gap:10px;padding:14px;display:flex}.cl-edit-ex-top{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.cl-edit-ex-name{border-radius:var(--r-sm);border:1.5px solid var(--border);background:var(--surface);min-width:120px;color:var(--text);flex:1;padding:7px 10px;font-family:inherit;font-size:.88rem;font-weight:600}.cl-edit-ex-name:focus{border-color:var(--brand);outline:none}.cl-edit-rest-label{color:var(--text-muted);white-space:nowrap;font-size:.78rem}.cl-edit-rest{border-radius:var(--r-sm);border:1.5px solid var(--border);background:var(--surface);width:58px;color:var(--text);text-align:center;padding:7px 8px;font-family:inherit;font-size:.85rem}.cl-edit-rest:focus{border-color:var(--brand);outline:none}.cl-remove-ex-btn{border-radius:var(--r-sm);border:1.5px solid var(--danger);color:var(--danger);cursor:pointer;white-space:nowrap;background:0 0;padding:5px 9px;font-size:.8rem;font-weight:700;transition:background .15s}.cl-remove-ex-btn:hover{background:#fef2f2}.cl-edit-sets{flex-direction:column;gap:6px;display:flex}.cl-edit-set-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.cl-set-num{color:var(--text-muted);min-width:30px;font-size:.78rem}.cl-set-input{border-radius:var(--r-sm);border:1.5px solid var(--border);background:var(--surface);width:68px;color:var(--text);text-align:center;padding:6px 8px;font-family:inherit;font-size:.85rem}.cl-set-input:focus{border-color:var(--brand);outline:none}.cl-set-unit{color:var(--text-muted);font-size:.78rem}.cl-remove-set-btn{border-radius:var(--r-sm);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;margin-left:auto;padding:4px 8px;font-size:.78rem;transition:all .15s}.cl-remove-set-btn:hover{border-color:var(--danger);color:var(--danger)}.cl-add-set-btn{color:var(--brand);border:1.5px dashed var(--brand);border-radius:var(--r-sm);cursor:pointer;background:0 0;align-self:flex-start;padding:5px 10px;font-size:.8rem;font-weight:600;transition:background .15s}.cl-add-set-btn:hover{background:var(--brand-light)}.cl-add-ex-btn{color:var(--brand);border:1.5px dashed var(--brand);border-radius:var(--r-sm);cursor:pointer;background:0 0;align-self:flex-start;padding:8px 14px;font-size:.85rem;font-weight:700;transition:background .15s}.cl-add-ex-btn:hover{background:var(--brand-light)}.rest-timer{z-index:1100;color:var(--text-1);position:fixed}.rest-timer-pill{right:14px;bottom:calc(82px + env(safe-area-inset-bottom));background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-md);cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:7px 14px 7px 7px;animation:.2s ease-out rest-timer-pop;display:inline-flex}.rest-timer-pill-ring{width:32px;height:32px;display:inline-flex;position:relative}.rest-timer-pill-ring svg{display:block}.rest-timer-pill-icon{color:var(--brand);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.rest-timer-done .rest-timer-pill-icon{color:var(--success-text)}.rest-timer-pill-time{font-variant-numeric:tabular-nums;letter-spacing:.02em;color:var(--text-1);text-align:center;min-width:44px;font-size:1.15rem;font-weight:800}.rest-timer-done.rest-timer-pill .rest-timer-pill-time{color:var(--success-text)}.rest-timer-card{left:50%;bottom:calc(82px + env(safe-area-inset-bottom));background:var(--surface);border:1px solid var(--border);border-radius:var(--r);width:min(340px,100vw - 28px);box-shadow:var(--shadow-md);animation:.22s ease-out rest-timer-pop;transform:translate(-50%)}@keyframes rest-timer-pop{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.rest-timer-card{animation-name:rest-timer-pop-card}@keyframes rest-timer-pop-card{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}.rest-timer-content{flex-direction:column;align-items:center;gap:16px;padding:16px 18px 18px;display:flex}.rest-timer-label{width:100%;color:var(--text-2);align-items:center;gap:7px;font-size:.85rem;font-weight:600;display:flex}.rest-timer-emoji{color:var(--brand);align-items:center;display:inline-flex}.rest-timer-done .rest-timer-emoji{color:var(--success-text)}.rest-timer-exname{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.rest-timer-close{color:var(--text-3);border-radius:var(--r-xs);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:3px 6px;font-size:.95rem;line-height:1}.rest-timer-close:hover{background:var(--surface-2);color:var(--text-1)}.rest-timer-min{color:var(--text-3);border-radius:var(--r-xs);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:2px 4px;display:inline-flex}.rest-timer-min:hover{background:var(--surface-2);color:var(--text-1)}.rest-timer-ring-wrap{width:128px;height:128px;position:relative}.rest-timer-ring{width:128px;height:128px;display:block}.rest-timer-ring-track{stroke:var(--surface-2)}.rest-timer-ring-fill{stroke:var(--brand);transition:stroke-dashoffset 1s linear}.rest-timer-done .rest-timer-ring-fill{stroke:var(--success-text)}.rest-timer-display{font-variant-numeric:tabular-nums;letter-spacing:.02em;color:var(--text-1);justify-content:center;align-items:center;font-size:2.6rem;font-weight:800;display:flex;position:absolute;inset:0}.rest-timer-display.done{color:var(--success-text);font-size:1.55rem}.rest-timer-btns{justify-content:center;align-items:center;gap:8px;display:flex}.rest-timer-btns button{background:var(--surface-2);color:var(--text-1);border:1px solid var(--border);border-radius:var(--r-sm);cursor:pointer;justify-content:center;align-items:center;padding:9px 14px;font-size:.9rem;font-weight:700;transition:background .15s,border-color .15s;display:inline-flex}.rest-timer-btns button:hover:not(:disabled){background:var(--border)}.rest-timer-btns button:disabled{opacity:.4;cursor:not-allowed}.rest-timer-playpause{width:48px;background:var(--brand)!important;border-color:var(--brand)!important;color:#fff!important}.rest-timer-playpause:hover:not(:disabled){background:var(--brand-dark)!important}.rest-timer-presets{gap:6px;width:100%;display:flex}.rest-timer-presets button{color:var(--text-2);border:1px solid var(--border);border-radius:var(--r-sm);cursor:pointer;background:0 0;flex:1;padding:7px 0;font-size:.8rem;font-weight:600;transition:background .15s,color .15s,border-color .15s}.rest-timer-presets button:hover{background:var(--surface-2);color:var(--text-1)}.rest-timer-presets button.active{background:var(--brand-light);border-color:var(--brand);color:#7eb0ff}.rest-timer-done{border-color:var(--success);animation:.7s ease-in-out 3 rest-timer-blink}@keyframes rest-timer-blink{0%,to{box-shadow:var(--shadow-md)}50%{box-shadow:0 0 0 3px var(--success), var(--shadow-md)}}.ex-youtube{color:#4299e1;white-space:nowrap;background:#ebf8ff;border:1px solid #bee3f8;border-radius:6px;margin-left:8px;margin-right:auto;padding:3px 8px;font-size:.78rem;font-weight:600;text-decoration:none;transition:background .15s}.ex-youtube:hover{background:#bee3f8}.pwa-update-toast{bottom:calc(16px + env(safe-area-inset-bottom));right:calc(16px + env(safe-area-inset-right));color:#fff;z-index:1001;background:#1a202c;border-radius:12px;align-items:center;gap:12px;padding:12px 16px;font-size:.88rem;animation:.3s ease-out pwa-toast-pop;display:flex;position:fixed;box-shadow:0 8px 24px #0000004d}@keyframes pwa-toast-pop{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.pwa-update-toast button{color:#fff;cursor:pointer;background:#4299e1;border:none;border-radius:8px;padding:6px 12px;font-size:.85rem;font-weight:700}.pwa-update-toast button:hover{background:#3182ce}.pwa-update-close{color:#a0aec0!important;background:0 0!important;padding:4px 8px!important}.chart-card{padding-bottom:8px}.chart-subtitle{color:var(--text-3);margin:-4px 0 12px;font-size:.78rem}.chart-wrap{width:100%}.recharts-tooltip-wrapper{outline:none!important}.confirm-overlay{z-index:2000;background:#00000080;justify-content:center;align-items:center;padding:20px;animation:.15s ease-out confirm-fade;display:flex;position:fixed;inset:0}@keyframes confirm-fade{0%{opacity:0}to{opacity:1}}.confirm-dialog{background:var(--surface);border:1px solid var(--border);border-radius:16px;width:100%;max-width:380px;padding:24px;animation:.2s ease-out confirm-pop;box-shadow:0 12px 40px #00000080}@keyframes confirm-pop{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.confirm-title{color:var(--text-1);margin:0 0 12px;font-size:1.1rem}.confirm-msg{color:var(--text-2);margin:0 0 20px;font-size:.92rem;line-height:1.5}.confirm-btns{justify-content:flex-end;gap:10px;display:flex}.confirm-cancel-btn,.confirm-ok-btn{cursor:pointer;border:none;border-radius:10px;padding:10px 18px;font-size:.9rem;font-weight:700;transition:background .15s,transform 50ms}.confirm-cancel-btn:active,.confirm-ok-btn:active{transform:scale(.97)}.confirm-cancel-btn{background:var(--surface-2);color:var(--text-2)}.confirm-cancel-btn:hover{background:var(--border)}.confirm-ok-btn{color:#fff;background:#48bb78}.confirm-ok-btn:hover{background:#38a169}.confirm-ok-btn.warn{background:#ed8936}.confirm-ok-btn.warn:hover{background:#dd6b20}.confirm-ok-btn:disabled{opacity:.6;cursor:not-allowed}.day-done-actions{align-items:center;gap:8px;display:flex}.undo-done-btn{border:1px solid var(--border);color:var(--text-3);cursor:pointer;background:0 0;border-radius:8px;padding:6px 12px;font-size:.82rem;font-weight:600;transition:background .15s,color .15s}.undo-done-btn:hover{background:var(--danger-bg);color:var(--danger-text);border-color:var(--danger)}@media (width<=480px){.app-top-inner{gap:6px;height:54px;padding:0 14px}.app-brand-name{font-size:1.05rem}.new-routine-btn{padding:6px 12px;font-size:.78rem}.back-btn{padding:6px 12px;font-size:.8rem}.user-name{max-width:52px}.qr-btn{display:none}.app-content{padding:16px 12px 40px}.mp-card{padding:16px 15px}.form{gap:22px;padding:20px 16px}.profile-hero{gap:13px;padding:18px 16px}.profile-avatar{width:48px;height:48px;font-size:1.2rem}.nickname-hero-name{font-size:1.25rem}.stat-val{font-size:1.4rem}.sets-table{gap:8px;padding:12px}.sets-header{grid-template-columns:28px 1fr 60px 60px 46px;gap:5px;font-size:.72rem}.set-row{grid-template-columns:28px 1fr 60px 60px 46px;gap:5px;padding:9px}.set-num{font-size:.95rem}.set-input{padding:9px 4px;font-size:1.02rem;font-weight:600}.set-target{font-size:.82rem}.check-btn{width:42px;height:42px;font-size:1.25rem}.ex-header{flex-wrap:wrap;gap:8px;padding:13px 14px}.ex-name{font-size:1.14rem}.ex-rest{font-size:.86rem}.ex-tip{padding:9px 14px;font-size:.9rem}.day-tab{padding:9px 14px;font-size:.92rem}.day-info strong{font-size:1.08rem}.checklist-header h1{font-size:1.25rem}.week-info,.rpe-row label{font-size:.9rem}.notes-input{font-size:.92rem}.checklist-actions{flex-direction:column}.skip-btn{width:100%}.week-done-banner{flex-direction:column;align-items:flex-start}.next-week-btn{text-align:center;width:100%}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(64px,1fr))}.pr-grid{grid-template-columns:repeat(auto-fit,minmax(88px,1fr))}}input,select,textarea{background:var(--surface);color:var(--text-1)}input::placeholder,textarea::placeholder{color:var(--text-3)}.ex-youtube{color:#7eb3ff;background:#3b82f624;border-color:#3b82f652}.editing-banner{color:#93c5fd;background:#17263f;border-color:#2b4a7a}.start-workout-btn{border-radius:var(--r-sm);background:var(--brand);color:#fff;cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;width:100%;margin:4px 0 14px;padding:15px;font-size:1.05rem;font-weight:700;transition:background .15s,transform .1s;display:inline-flex}.start-workout-btn:active{transform:scale(.99)}.workout-running{border-radius:var(--r-sm);border:1px solid var(--brand);background:var(--brand-light);justify-content:space-between;align-items:center;gap:10px;margin:4px 0 14px;padding:12px 14px;display:flex}.workout-running-time{color:var(--text-1);font-variant-numeric:tabular-nums;align-items:center;gap:6px;font-size:.95rem;font-weight:700;display:inline-flex}.workout-resume-btn{background:var(--brand);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:8px;padding:8px 14px;font-size:.88rem;font-weight:600}.focus-mode{z-index:1000;background:var(--bg);padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);flex-direction:column;display:flex;position:fixed;inset:0}.focus-top{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:16px 18px;display:flex}.focus-progress{color:var(--text-3);font-size:.95rem;font-weight:700}.focus-workout-timer{background:var(--surface-2);border:1px solid var(--border);color:var(--text-2);font-variant-numeric:tabular-nums;letter-spacing:.5px;border-radius:999px;align-items:center;gap:5px;margin-left:auto;padding:5px 10px;font-size:1rem;font-weight:700;display:inline-flex}.focus-workout-timer svg{color:var(--text-3)}.focus-exit{background:var(--surface-2);width:40px;height:40px;color:var(--text-2);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.focus-body{flex-direction:column;flex:1;padding:24px 20px 16px;display:flex;overflow-y:auto}.focus-exname{color:var(--text-1);font-size:1.7rem;font-weight:800;line-height:1.25}.focus-meta{color:var(--text-3);gap:16px;margin-top:8px;font-size:.95rem;display:flex}.focus-meta span{align-items:center;gap:5px;display:inline-flex}.focus-lastperf{color:var(--brand);margin-top:8px;font-size:.95rem;font-weight:700}.focus-tip{color:var(--brand);background:var(--brand-light);border-radius:10px;margin-top:10px;padding:10px 14px;font-size:.95rem}.focus-warm{color:var(--warn-text);background:var(--warn-bg);border:1px solid var(--warn);border-radius:10px;margin-top:10px;padding:8px 12px;font-size:.9rem}.focus-sets{flex-direction:column;gap:12px;margin-top:18px;display:flex}.focus-set-row{background:var(--surface);border:1.5px solid var(--border);border-radius:14px;grid-template-columns:38px 1fr 1fr 60px;align-items:center;gap:10px;padding:12px;display:grid}.focus-set-row.done{background:var(--success-bg);border-color:var(--success)}.focus-set-num{color:var(--text-3);text-align:center;font-size:1.1rem;font-weight:800}.focus-set-field{align-items:baseline;gap:4px;display:flex}.focus-set-input{border:1.5px solid var(--border);background:var(--bg);text-align:center;width:100%;color:var(--text-1);border-radius:10px;padding:12px 6px;font-size:1.3rem;font-weight:700}.focus-set-input:focus{border-color:var(--brand);outline:none}.focus-set-unit{color:var(--text-3);font-size:.85rem;font-weight:600}.focus-check{border:2.5px solid var(--border);background:var(--surface);width:54px;height:54px;color:var(--text-3);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:1.55rem;transition:all .15s;display:flex}.focus-check.checked{background:var(--success);border-color:var(--success);color:#fff}.focus-dots{flex-wrap:wrap;justify-content:center;gap:7px;margin-top:22px;display:flex}.focus-dot{background:var(--border);border-radius:50%;width:7px;height:7px;transition:all .15s}.focus-dot.touched{background:var(--brand);opacity:.5}.focus-dot.active{background:var(--brand);opacity:1;transform:scale(1.4)}.focus-bottom{border-top:1px solid var(--border);align-items:center;gap:10px;padding:14px 18px;display:flex}.focus-nav-btn{border:1.5px solid var(--border);background:var(--surface);width:52px;height:52px;color:var(--text-1);cursor:pointer;border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.focus-nav-btn:disabled{opacity:.35;cursor:not-allowed}.focus-next-btn{background:var(--surface-2);height:52px;color:var(--text-1);cursor:pointer;border:none;border-radius:14px;flex-direction:column;flex:1;justify-content:center;align-items:center;font-size:1rem;font-weight:700;line-height:1.1;display:flex}.focus-next-name{color:var(--text-3);text-overflow:ellipsis;white-space:nowrap;max-width:60vw;margin-top:2px;font-size:.76rem;font-weight:500;overflow:hidden}.focus-finish-btn{background:var(--success);color:#fff;cursor:pointer;border:none;border-radius:14px;flex:1;height:52px;font-size:1.05rem;font-weight:800}.gym-dialog{max-width:420px}.gym-warn{color:var(--warn-text,var(--text-2));background:var(--warn-bg,var(--surface-2));border-radius:8px;margin:0 0 10px;padding:8px 10px;font-size:.78rem}.gym-rows{flex-direction:column;gap:8px;margin:4px 0 16px;display:flex}.gym-row{text-align:left;grid-template-columns:58px 1fr;align-items:center;gap:10px;font-size:.85rem;display:grid}.gym-row>span{color:var(--text-3);font-size:.78rem}.gym-row>b{color:var(--text-1);word-break:break-word;font-weight:600}.gym-row em{color:var(--text-3);font-size:.75rem;font-style:normal;font-weight:400}.gym-toggle{gap:6px;display:flex}.gym-toggle button{cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text-2);border-radius:14px;padding:5px 12px;font-size:.78rem}.gym-toggle button.on{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}.gym-toast{background:var(--surface-2);color:var(--text-1);border:1px solid var(--border);z-index:90;text-align:center;border-radius:10px;max-width:calc(100vw - 32px);padding:10px 16px;font-size:.82rem;animation:3.2s forwards gymToast;position:fixed;bottom:92px;left:50%;transform:translate(-50%)}@keyframes gymToast{0%{opacity:0;transform:translate(-50%,8px)}12%{opacity:1;transform:translate(-50%)}85%{opacity:1}to{opacity:0}}.gym-card-desc{color:var(--text-2);margin:0 0 10px;font-size:.8rem;line-height:1.55}.gym-card-empty{color:var(--text-3);margin:0;font-size:.8rem;line-height:1.55}.gym-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.gym-list-item{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.gym-list-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.gym-list-main>b{color:var(--text-1);font-size:.85rem;font-weight:600}.gym-list-main>span{color:var(--text-3);font-size:.73rem}.gym-del-btn{cursor:pointer;border:1px solid var(--border);background:var(--surface);width:30px;height:30px;color:var(--text-3);border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.gym-del-btn:disabled{opacity:.5;cursor:default}.lock-screen{background:var(--bg);padding:calc(24px + env(safe-area-inset-top)) 24px calc(24px + env(safe-area-inset-bottom));justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow-y:auto}.lock-inner{width:100%;max-width:340px}.lock-brand{text-align:center;margin-bottom:32px}.lock-logo{background:var(--surface-2);border:1px solid var(--border);width:62px;height:62px;color:var(--brand);border-radius:18px;justify-content:center;align-items:center;margin-bottom:14px;display:inline-flex}.lock-brand h1{color:var(--text-1);margin:0 0 4px;font-size:1.5rem;font-weight:800}.lock-brand p{color:var(--text-3);margin:0;font-size:.82rem}.lock-label{color:var(--text-2);text-align:center;margin:0 0 14px;font-size:.85rem}.lock-hint{color:var(--text-3);text-align:center;font-size:.85rem;line-height:1.7}.lock-users{flex-direction:column;gap:10px;display:flex}.lock-user{background:var(--surface);border:1px solid var(--border);width:100%;color:var(--text-1);text-align:left;border-radius:14px;align-items:center;gap:12px;padding:14px 16px;transition:background .15s,border-color .15s;display:flex}.lock-user:active{background:var(--surface-2);border-color:var(--brand)}.lock-avatar{background:var(--brand);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:1rem;font-weight:700;display:inline-flex}.lock-avatar.lg{width:52px;height:52px;font-size:1.3rem}.lock-name{flex:1;font-size:1rem;font-weight:600}.lock-new{color:var(--text-3);font-size:.7rem}.lock-back{color:var(--text-3);background:0 0;border:none;align-self:flex-start;align-items:center;gap:4px;margin-bottom:12px;padding:4px 0;font-size:.82rem;display:inline-flex}.lock-picked{flex-direction:column;align-items:center;gap:8px;margin-bottom:18px;display:flex}.lock-picked b{color:var(--text-1);font-size:1.05rem}.lock-input{box-sizing:border-box;background:var(--surface);border:1px solid var(--border);width:100%;color:var(--text-1);text-align:center;letter-spacing:.08em;border-radius:12px;padding:14px 16px}.lock-submit{background:var(--brand);color:#fff;border:none;border-radius:12px;margin-top:16px;padding:14px;font-size:.95rem;font-weight:700}.lock-submit:disabled{opacity:.45}.user-logout-btn{width:100%;color:var(--text-2);text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:7px;padding:10px 12px;font-size:.85rem;display:flex}.user-logout-btn:active{background:var(--surface-2)}.user-switch-hint{color:var(--text-3);margin:2px 12px 6px;font-size:.72rem;line-height:1.5}.user-option-name:disabled{opacity:.45}.bottom-nav{z-index:60;background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);display:flex;position:fixed;bottom:0;left:0;right:0}.bnav-item{min-height:56px;color:var(--text-3);letter-spacing:-.2px;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;padding:7px 2px 6px;font-size:.68rem;font-weight:600;transition:color .18s;display:flex}.bnav-item span{line-height:1}.bnav-item.on{color:var(--brand)}.bnav-item.on svg{transform:translateY(-1px)}.bnav-item svg{transition:transform .18s}.bnav-item:active{opacity:.65}.lock{background:var(--bg);padding:calc(28px + env(safe-area-inset-top)) 22px calc(28px + env(safe-area-inset-bottom));justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow-y:auto}.lock-card{width:100%;max-width:330px}.lock-head{text-align:center;margin-bottom:30px;position:relative}.lock-back{width:40px;height:40px;min-height:40px;color:var(--text-3);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:0;left:-8px}.lock-mark{background:var(--brand);color:#fff;border-radius:17px;justify-content:center;align-items:center;width:58px;height:58px;margin-bottom:13px;display:inline-flex}.lock-head h1{color:var(--text-1);margin:0 0 5px;font-size:1.42rem;font-weight:800}.lock-head p{color:var(--text-3);margin:0;font-size:.8rem}.lock-list{flex-direction:column;gap:9px;display:flex}.lock-row{background:var(--surface);border:1px solid var(--border);width:100%;color:var(--text-1);text-align:left;border-radius:15px;align-items:center;gap:13px;padding:13px 15px;transition:transform .14s,border-color .14s;display:flex}.lock-row:active{border-color:var(--brand);transform:scale(.985)}.lock-row-text{flex-direction:column;gap:2px;min-width:0;display:flex}.lock-row-text b{font-size:.98rem;font-weight:600}.lock-row-text em{color:var(--text-3);font-size:.7rem;font-style:normal}.lock-av{background:var(--surface-2);width:38px;height:38px;color:var(--brand);border-radius:13px;flex-shrink:0;justify-content:center;align-items:center;font-size:1rem;font-weight:700;display:inline-flex}.lock-av.lg{border-radius:19px;width:56px;height:56px;font-size:1.4rem}.lock-add{border:1px dashed var(--border);width:100%;color:var(--text-3);background:0 0;border-radius:15px;justify-content:center;align-items:center;gap:6px;margin-top:14px;padding:13px;font-size:.85rem;font-weight:600;display:flex}.lock-add:active{color:var(--brand);border-color:var(--brand)}.lock-form{flex-direction:column;display:flex}.lock-who{flex-direction:column;align-items:center;gap:9px;margin-bottom:22px;display:flex}.lock-who b{color:var(--text-1);font-size:1.05rem}.lock-lab{color:var(--text-3);margin-bottom:7px;font-size:.78rem}.lock-input{box-sizing:border-box;background:var(--surface);border:1px solid var(--border);width:100%;color:var(--text-1);border-radius:13px;padding:13px 15px}.lock-input:focus{border-color:var(--brand);outline:none}.lock-err{color:#f87171;text-align:center;margin:11px 0 0;font-size:.78rem}.lock-go{background:var(--brand);color:#fff;border:none;border-radius:13px;margin-top:20px;padding:14px;font-size:.95rem;font-weight:700}.lock-go:disabled{opacity:.4}.lock-muted{color:var(--text-3);text-align:center;font-size:.85rem}
