:root{--bg:#0f0f13;--surface:#1a1a24;--surface-2:#141419;--surface-hover:#22222f;--border:#2a2a3a;--text-primary:#e8e8f0;--text-muted:#6b6b80;--accent:#6366f1;--accent-soft:#6366f11f;--danger:#f87171;--success:#4ade80;-webkit-font-smoothing:antialiased;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:16px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{background:var(--bg);width:100%;height:100%;color:var(--text-primary)}button,input{font-family:inherit}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none}input[type=number]{-moz-appearance:textfield}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.home{flex-direction:column;justify-content:center;align-items:center;gap:3rem;height:100%;padding:2rem;display:flex}.home-date{flex-direction:column;align-items:center;gap:.25rem;display:flex}.home-day-name{color:var(--text-muted);text-transform:uppercase;letter-spacing:.12em;font-size:1rem;font-weight:500}.home-day-number{color:var(--text-primary);letter-spacing:-4px;font-size:7rem;font-weight:700;line-height:1}.home-month{color:var(--text-muted);font-size:1.1rem;font-weight:400}.home-cta{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:14px;align-items:center;gap:.6rem;padding:1rem 2rem;font-size:1rem;font-weight:600;transition:opacity .15s,transform .15s;display:flex;box-shadow:0 4px 20px #6366f159}.home-cta:hover{opacity:.9;transform:translateY(-1px)}.home-cta:active{transform:translateY(0)}.calendar{padding:1rem}.calendar-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.calendar-header h2{color:var(--text-primary);font-size:1.2rem;font-weight:600}.nav-btn{background:var(--surface);color:var(--text-primary);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;font-size:1.5rem;transition:background .2s;display:flex}.nav-btn:hover{background:var(--surface-hover)}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.day-label{text-align:center;color:var(--text-muted);text-transform:uppercase;padding:.4rem 0;font-size:.75rem;font-weight:600}.day-cell{aspect-ratio:1;cursor:pointer;background:0 0;border:none;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:2px;transition:background .15s;display:flex;position:relative}.day-cell:not(.empty):hover{background:var(--surface-hover)}.day-cell.empty{cursor:default}.day-number{color:var(--text-primary);font-size:.9rem;font-weight:400;line-height:1}.day-cell.today .day-number{color:var(--accent);font-weight:700}.day-cell.today{background:var(--accent-soft)}.day-cell.has-workout{background:var(--surface)}.day-cell.has-workout.today{background:var(--accent-soft)}.workout-count{background:var(--accent);color:#fff;border-radius:10px;padding:1px 5px;font-size:.6rem;font-weight:600;line-height:1.4}.day-view{padding:1rem 1rem 8rem}.day-view-header{align-items:center;gap:.75rem;margin-bottom:1.5rem;display:flex}.back-btn{background:var(--surface);color:var(--text-primary);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;font-size:1.5rem;display:flex}.day-view-header h2{color:var(--text-primary);font-size:1.1rem;font-weight:600}.entries{flex-direction:column;gap:.75rem;display:flex}.entry-card{background:var(--surface);border-radius:14px;padding:1rem}.entry-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.entry-name{color:var(--text-primary);font-size:1rem;font-weight:600}.entry-actions{gap:.5rem;display:flex}.sets-list{flex-direction:column;gap:.4rem;display:flex}.set-row{flex-direction:column;gap:.35rem;display:flex}.set-label{color:var(--text-muted);font-size:.78rem;font-weight:600}.set-row-inputs{gap:.5rem;display:flex}.set-row-inputs .stepper{flex:1}.stepper{align-items:center;gap:0;display:flex}.stepper-btn{background:var(--surface-hover);border:1px solid var(--border);width:1.8rem;height:1.8rem;color:var(--text-primary);cursor:pointer;justify-content:center;align-items:center;font-size:1rem;font-weight:600;line-height:1;transition:background .12s,color .12s;display:flex}.stepper-btn:first-child{border-radius:8px 0 0 8px}.stepper-btn:last-of-type{border-radius:0 8px 8px 0}.stepper-btn:hover{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.stepper-value{background:var(--bg);border-top:1px solid var(--border);border-bottom:1px solid var(--border);min-width:0;color:var(--text-primary);text-align:center;flex:1;padding:.2rem .1rem;font-size:.8rem;font-weight:600;line-height:1.4}.stepper-unit{color:var(--text-muted);margin-left:.35rem;font-size:.75rem}.remove-set-btn{color:var(--danger);cursor:pointer;background:0 0;border:none;margin-left:auto;padding:.2rem;font-size:.8rem}.add-set-btn{border:1px dashed var(--border);color:var(--accent);cursor:pointer;text-align:center;background:0 0;border-radius:8px;margin-top:.25rem;padding:.4rem;font-size:.8rem}.add-exercise-btn{border:1.5px dashed var(--border);width:100%;color:var(--text-muted);letter-spacing:.08em;cursor:pointer;background:0 0;border-radius:14px;margin-top:.75rem;padding:.9rem;font-size:.75rem;font-weight:700;transition:border-color .15s,color .15s,background .15s}.add-exercise-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.picker-overlay{z-index:100;background:#00000080;align-items:flex-end;display:flex;position:fixed;inset:0}.picker-sheet{background:var(--surface-2);border-radius:20px 20px 0 0;width:100%;max-height:70vh;padding:1.25rem;overflow-y:auto}.picker-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.picker-header h3{font-size:1rem;font-weight:600}.exercise-list{flex-direction:column;gap:.5rem;display:flex}.exercise-pick-btn{background:var(--surface);cursor:pointer;text-align:left;border:none;border-radius:12px;align-items:center;gap:.5rem;padding:.8rem 1rem;transition:background .15s;display:flex}.exercise-pick-btn:hover:not(.already-added){background:var(--surface-hover)}.exercise-pick-btn.already-added{opacity:.5;cursor:default}.ex-name{color:var(--text-primary);flex:1;font-size:.95rem;font-weight:500}.ex-category{color:var(--accent);background:var(--accent-soft);border-radius:20px;padding:2px 8px;font-size:.75rem}.ex-done{color:var(--success);font-weight:700}.library{padding:1rem 1rem 6rem}.library-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.library-header h2{color:var(--text-primary);font-size:1.2rem;font-weight:600}.add-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:20px;padding:.5rem 1rem;font-size:.85rem;font-weight:600;transition:opacity .2s}.add-btn:hover{opacity:.9}.empty-msg{text-align:center;color:var(--text-muted);margin-top:3rem;line-height:1.8}.exercise-cards{flex-direction:column;gap:.4rem;display:flex}.exercise-card{background:var(--surface);border-radius:12px;justify-content:space-between;align-items:center;padding:.8rem 1rem;display:flex}.ex-info{flex-direction:column;gap:.15rem;display:flex}.ex-name{color:var(--text-primary);font-size:.95rem;font-weight:500}.ex-desc{color:var(--text-muted);font-size:.78rem}.ex-actions{gap:.4rem;display:flex}.icon-btn{background:var(--surface-hover);cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;width:2rem;height:2rem;font-size:.85rem;display:flex}.icon-btn.danger{color:var(--danger)}.form-overlay{z-index:100;background:#00000080;align-items:flex-end;display:flex;position:fixed;inset:0}.form-sheet{background:var(--surface-2);border-radius:20px 20px 0 0;width:100%;max-height:80vh;padding:1.25rem;overflow-y:auto}.form-header{justify-content:space-between;align-items:center;margin-bottom:1.25rem;display:flex}.form-header h3{color:var(--text-primary);font-size:1rem;font-weight:600}.close-btn{background:var(--surface-hover);cursor:pointer;width:2rem;height:2rem;color:var(--text-primary);border:none;border-radius:50%;font-size:.9rem}.form-field{margin-bottom:1rem}.form-field label{color:var(--text-muted);margin-bottom:.4rem;font-size:.8rem;font-weight:500;display:block}.text-input{background:var(--surface);border:1px solid var(--border);width:100%;color:var(--text-primary);box-sizing:border-box;border-radius:10px;padding:.65rem .85rem;font-size:.95rem}.text-input:focus{border-color:var(--accent);outline:none}.save-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:12px;width:100%;margin-top:.5rem;padding:.85rem;font-size:1rem;font-weight:600;transition:opacity .2s}.save-btn:disabled{opacity:.4;cursor:not-allowed}.timer-bar{bottom:calc(65px + env(safe-area-inset-bottom));z-index:90;background:var(--surface);border-top:1px solid var(--border);border-bottom:1px solid var(--border);position:fixed;left:0;right:0;overflow:hidden}.timer-bar-progress{background:var(--accent-soft);pointer-events:none;transition:width 1s linear;position:absolute;inset:0}.timer-bar.finished .timer-bar-progress{background:#4ade801f}.timer-bar-inner{align-items:center;gap:.6rem;padding:.65rem 1rem;display:flex;position:relative}.timer-bar-time{font-variant-numeric:tabular-nums;color:var(--text-primary);letter-spacing:-.5px;min-width:3.4rem;font-size:1.35rem;font-weight:700}.timer-bar.finished .timer-bar-time{color:var(--success)}.timer-bar.running .timer-bar-time{color:var(--accent)}.timer-bar-presets{flex:1;gap:.3rem;display:flex}.timer-bar-preset{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;text-align:center;background:0 0;border-radius:8px;flex:1;padding:.5rem 0;font-size:.85rem;font-weight:600;transition:background .12s,color .12s,border-color .12s}.timer-bar-preset:hover{color:var(--text-primary);background:var(--surface-hover)}.timer-bar-preset.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.timer-bar-actions{gap:.3rem;display:flex}.timer-bar-btn{border:1px solid var(--border);background:var(--surface-hover);width:2.6rem;height:2.6rem;color:var(--text-muted);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;transition:background .12s,color .12s;display:flex}.timer-bar-btn:hover{color:var(--text-primary)}.timer-bar-btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.timer-bar-btn.primary:hover{opacity:.88}.timer-bar.finished .timer-bar-btn.primary{background:var(--success);border-color:var(--success);animation:1s ease-in-out 3 timer-pulse}@keyframes timer-pulse{0%,to{box-shadow:0 0 #4ade8066}50%{box-shadow:0 0 0 6px #4ade8000}}.app{flex-direction:column;height:100dvh;display:flex;overflow:hidden}.content{flex:1;padding-bottom:1rem;overflow-y:auto}.bottom-nav{background:var(--surface-2);border-top:1px solid var(--border);padding:.5rem 0;padding-bottom:calc(.5rem + env(safe-area-inset-bottom));flex-shrink:0;display:flex}.bottom-nav button{cursor:pointer;color:var(--text-muted);background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:.25rem;padding:.4rem 0;font-size:.7rem;font-weight:500;transition:color .15s;display:flex}.bottom-nav button.active{color:var(--accent)}.bottom-nav button svg{transition:color .15s}.install-banner{background:var(--accent);color:#fff;flex-shrink:0;align-items:center;gap:.75rem;padding:.75rem 1rem;font-size:.85rem;font-weight:500;display:flex}.install-banner span{flex:1}.install-btn{color:var(--accent);cursor:pointer;white-space:nowrap;background:#fff;border:none;border-radius:8px;padding:.4rem .9rem;font-size:.8rem;font-weight:700}.install-dismiss{color:#fffc;cursor:pointer;background:0 0;border:none;padding:.2rem;font-size:1rem;line-height:1}
