*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg: #0a0e1a;--color-surface: rgba(255, 255, 255, .04);--color-surface-solid: #12162a;--color-surface-hover: rgba(255, 255, 255, .08);--color-surface-active: rgba(255, 255, 255, .12);--gradient-primary: linear-gradient(135deg, #6366f1, #8b5cf6, #a78bfa);--gradient-accent: linear-gradient(135deg, #6366f1, #06b6d4);--gradient-success: linear-gradient(135deg, #10b981, #34d399);--gradient-warm: linear-gradient(135deg, #f59e0b, #f97316);--gradient-danger: linear-gradient(135deg, #ef4444, #f87171);--color-primary: #7c3aed;--color-primary-glow: rgba(124, 58, 237, .35);--color-accent: #06b6d4;--color-success: #10b981;--color-danger: #ef4444;--color-text: #f1f5f9;--color-text-secondary: #cbd5e1;--color-text-muted: #64748b;--color-border: rgba(255, 255, 255, .06);--color-border-hover: rgba(255, 255, 255, .12);--radius: 16px;--radius-sm: 10px;--radius-full: 9999px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .3), 0 1px 2px rgba(0, 0, 0, .2);--shadow-md: 0 4px 16px rgba(0, 0, 0, .4), 0 2px 4px rgba(0, 0, 0, .3);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .5), 0 4px 12px rgba(0, 0, 0, .3);--shadow-glow: 0 0 30px var(--color-primary-glow)}html{font-size:16px;-webkit-text-size-adjust:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--color-bg);color:var(--color-text);min-height:100dvh;-webkit-font-smoothing:antialiased;overflow-x:hidden}#root{min-height:100dvh;display:flex;flex-direction:column}button{font:inherit;cursor:pointer;border:none;border-radius:var(--radius);transition:all .2s cubic-bezier(.4,0,.2,1);-webkit-tap-highlight-color:transparent}button:active{transform:scale(.95)}input,select{font:inherit;background:#ffffff0d;color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.8rem 1rem;width:100%;outline:none;transition:all .25s cubic-bezier(.4,0,.2,1);-webkit-appearance:none}input:focus,select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-glow),var(--shadow-sm);background:#ffffff12}input:hover,select:hover{border-color:var(--color-border-hover);background:#ffffff0f}input::placeholder{color:var(--color-text-muted)}::selection{background:var(--color-primary);color:#fff}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes popIn{0%{opacity:0;transform:scale(.5)}70%{transform:scale(1.05)}to{opacity:1;transform:scale(1)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes successFlash{0%{box-shadow:0 0 #10b98180}50%{box-shadow:0 0 20px 4px #10b9814d}to{box-shadow:0 0 #10b98100}}@keyframes countUp{0%{opacity:0;transform:translateY(8px) scale(.8)}to{opacity:1;transform:translateY(0) scale(1)}}.app{display:flex;flex-direction:column;min-height:100dvh;padding-top:var(--safe-top);position:relative}.app:before{content:"";position:fixed;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(ellipse 600px 600px at 20% 20%,rgba(99,102,241,.08),transparent),radial-gradient(ellipse 500px 500px at 80% 80%,rgba(6,182,212,.06),transparent),radial-gradient(ellipse 400px 400px at 60% 30%,rgba(139,92,246,.04),transparent);pointer-events:none;z-index:0}.header{position:sticky;top:0;z-index:20;background:#0a0e1acc;backdrop-filter:blur(20px) saturate(1.5);-webkit-backdrop-filter:blur(20px) saturate(1.5);border-bottom:1px solid var(--color-border);padding:1.1rem 1.25rem;display:flex;align-items:center;justify-content:space-between}.header:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--gradient-accent);opacity:.5}.header h1{font-size:1.3rem;font-weight:800;letter-spacing:-.02em;background:linear-gradient(135deg,#a78bfa,#6366f1,#06b6d4);background-size:200% 200%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:shimmer 6s ease infinite}.header-date{font-size:.78rem;color:var(--color-text-muted);font-weight:500}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:30;display:flex;justify-content:space-around;align-items:center;background:#0a0e1ad9;backdrop-filter:blur(20px) saturate(1.5);-webkit-backdrop-filter:blur(20px) saturate(1.5);border-top:1px solid var(--color-border);padding:.5rem 0;padding-bottom:calc(.5rem + var(--safe-bottom))}.bottom-nav:before{content:"";position:absolute;top:-1px;left:0;right:0;height:1px;background:var(--gradient-accent);opacity:.3}.nav-item{display:flex;flex-direction:column;align-items:center;gap:.2rem;padding:.4rem 1.25rem;background:transparent;color:var(--color-text-muted);font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;border-radius:var(--radius-sm);transition:all .2s cubic-bezier(.4,0,.2,1)}.nav-item:hover{color:var(--color-text-secondary)}.nav-item:active{transform:scale(.92)}.nav-item.active{color:#a78bfa}.nav-item.active svg{filter:drop-shadow(0 0 6px rgba(167,139,250,.4))}.main{flex:1;padding:1.5rem 1.25rem;padding-bottom:calc(5rem + var(--safe-bottom));max-width:600px;width:100%;margin:0 auto;position:relative;z-index:1}.page-title{font-size:1.4rem;font-weight:800;margin-bottom:1.25rem;letter-spacing:-.02em}.home-hero{text-align:center;padding:2rem 0 1.75rem;animation:fadeInUp .5s ease-out}.home-greeting{font-size:.82rem;color:var(--color-text-muted);font-weight:500;text-transform:uppercase;letter-spacing:.1em;margin-bottom:.5rem}.home-title{font-size:2.2rem;font-weight:900;letter-spacing:-.03em;background:linear-gradient(135deg,#f1f5f9,#a78bfa,#06b6d4);background-size:200% 200%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:shimmer 4s ease infinite;line-height:1.1}.home-streak{display:inline-flex;align-items:center;gap:.4rem;margin-top:1rem;padding:.5rem 1rem;background:#f59e0b14;border:1px solid rgba(245,158,11,.15);border-radius:var(--radius-full);animation:fadeInUp .5s ease-out .15s both}.home-streak-fire{font-size:1.2rem}.home-streak-count{font-size:1.3rem;font-weight:800;color:#fbbf24;line-height:1}.home-streak-label{font-size:.75rem;color:var(--color-text-muted);font-weight:600}.home-progress-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.5rem;display:flex;align-items:center;gap:1.5rem;margin-bottom:1.5rem;animation:fadeInUp .5s ease-out .1s both}.home-cta{margin-top:1.5rem;font-size:1.05rem;padding:1rem}.view-all-btn{width:100%;padding:.7rem;background:transparent;border:1px dashed var(--color-border);color:var(--color-text-muted);font-size:.82rem;font-weight:600;border-radius:var(--radius)}.view-all-btn:hover{border-color:var(--color-border-hover);color:var(--color-text-secondary);background:#ffffff08}.stats-bar{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin-bottom:1.75rem;animation:fadeInUp .5s ease-out}.stat-card{position:relative;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1rem .75rem;text-align:center;overflow:hidden;transition:all .3s cubic-bezier(.4,0,.2,1)}.stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;border-radius:var(--radius) var(--radius) 0 0}.stat-card:nth-child(1):before{background:var(--gradient-primary)}.stat-card:nth-child(2):before{background:var(--gradient-accent)}.stat-card:nth-child(3):before{background:var(--gradient-warm)}.stat-card:hover{transform:translateY(-2px);border-color:var(--color-border-hover);box-shadow:var(--shadow-md)}.stat-value{font-size:1.75rem;font-weight:800;letter-spacing:-.02em;line-height:1}.stat-card:nth-child(1) .stat-value{background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.stat-card:nth-child(2) .stat-value{background:var(--gradient-accent);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.stat-card:nth-child(3) .stat-value{background:var(--gradient-warm);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.stat-value.animate{animation:countUp .4s cubic-bezier(.4,0,.2,1)}.stat-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-muted);margin-top:.35rem;font-weight:600}.form-card{position:relative;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.5rem;margin-bottom:2rem;box-shadow:var(--shadow-sm);animation:fadeInUp .5s ease-out .1s both;overflow:hidden}.form-card:before{content:"";position:absolute;inset:0;border-radius:var(--radius);padding:1px;background:linear-gradient(135deg,rgba(99,102,241,.2),transparent,rgba(6,182,212,.15));-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}.form-card h2{font-size:1.05rem;font-weight:700;margin-bottom:1.25rem;display:flex;align-items:center;gap:.5rem}.form-card h2:before{content:"";display:inline-block;width:4px;height:18px;border-radius:2px;background:var(--gradient-primary)}.form-date-tag{font-size:.7rem;font-weight:700;background:#6366f126;color:#a78bfa;padding:.2rem .55rem;border-radius:var(--radius-full);margin-left:auto;letter-spacing:.02em}.muscle-group-pills{display:flex;flex-wrap:wrap;gap:.4rem}.muscle-pill{padding:.4rem .75rem;font-size:.78rem;font-weight:600;border-radius:var(--radius-full);background:#ffffff0d;color:var(--color-text-muted);border:1px solid var(--color-border);transition:all .2s cubic-bezier(.4,0,.2,1);white-space:nowrap}.muscle-pill:hover{background:#ffffff14;color:var(--color-text-secondary);border-color:var(--color-border-hover)}.muscle-pill.active{background:#6366f126;color:#a78bfa;border-color:#6366f14d;box-shadow:0 0 12px #6366f126}.muscle-pill:active{transform:scale(.95)}.form-row{display:grid;gap:.75rem;margin-bottom:.85rem}.form-row-2{grid-template-columns:1fr 1fr}.form-row-3{grid-template-columns:1fr 1fr 1fr}label{display:block;font-size:.7rem;color:var(--color-text-muted);margin-bottom:.35rem;text-transform:uppercase;letter-spacing:.08em;font-weight:600}.btn-primary{width:100%;padding:.9rem;background:var(--gradient-primary);background-size:200% 200%;color:#fff;font-weight:700;font-size:.95rem;letter-spacing:.02em;margin-top:.75rem;box-shadow:0 4px 16px #6366f14d;position:relative;overflow:hidden}.btn-primary:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.15),transparent);opacity:0;transition:opacity .2s}.btn-primary:hover{box-shadow:0 6px 24px #6366f173,0 0 60px #6366f126;transform:translateY(-1px)}.btn-primary:hover:before{opacity:1}.btn-primary:active{transform:translateY(0) scale(.98);box-shadow:0 2px 8px #6366f14d}.btn-primary.success{background:var(--gradient-success);box-shadow:0 4px 16px #10b9814d;animation:successFlash .6s ease-out}.section-title{font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-muted);margin-bottom:1rem;font-weight:700;display:flex;align-items:center;gap:.75rem;animation:fadeInUp .5s ease-out .2s both}.section-title:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--color-border),transparent)}.workout-list{display:flex;flex-direction:column;gap:.75rem}.workout-card{position:relative;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1rem 1.25rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;transition:all .25s cubic-bezier(.4,0,.2,1);animation:slideInRight .35s cubic-bezier(.4,0,.2,1) both;overflow:hidden}.workout-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:var(--radius) 0 0 var(--radius);background:var(--gradient-primary);opacity:0;transition:opacity .25s}.workout-card:hover{transform:translate(4px);border-color:var(--color-border-hover);box-shadow:var(--shadow-md);background:var(--color-surface-hover)}.workout-card:hover:before{opacity:1}.workout-card.new{animation:popIn .4s cubic-bezier(.4,0,.2,1) both}.workout-card:nth-child(1){animation-delay:0s}.workout-card:nth-child(2){animation-delay:.05s}.workout-card:nth-child(3){animation-delay:.1s}.workout-card:nth-child(4){animation-delay:.15s}.workout-card:nth-child(5){animation-delay:.2s}.workout-info{flex:1;min-width:0}.workout-name{font-weight:700;font-size:1rem;margin-bottom:.3rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.workout-details{font-size:.82rem;color:var(--color-text-muted);display:flex;flex-wrap:wrap;gap:.15rem}.workout-tag{display:inline-flex;align-items:center;gap:.25rem;background:#ffffff0d;border-radius:var(--radius-full);padding:.2rem .6rem;font-size:.75rem;font-weight:500;transition:background .15s}.workout-card:hover .workout-tag{background:#ffffff14}.workout-tag.muscle-group{color:#34d399;background:#10b9811a;border:1px solid rgba(16,185,129,.15)}.workout-tag.sets{color:#a78bfa}.workout-tag.reps{color:#22d3ee}.workout-tag.weight{color:#fbbf24}.btn-delete{flex-shrink:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:transparent;color:var(--color-text-muted);font-size:.85rem;border-radius:var(--radius-full);transition:all .2s cubic-bezier(.4,0,.2,1)}.btn-delete:hover{background:#ef444426;color:var(--color-danger);transform:rotate(90deg)}.btn-delete:active{transform:rotate(90deg) scale(.9)}.empty-state{text-align:center;padding:3rem 1.5rem;color:var(--color-text-muted);animation:fadeInUp .5s ease-out .3s both}.empty-icon{width:80px;height:80px;margin:0 auto 1.25rem;border-radius:50%;background:var(--color-surface);border:1px solid var(--color-border);display:flex;align-items:center;justify-content:center;font-size:2rem;animation:float 3s ease-in-out infinite}.empty-state h4{font-size:1.05rem;color:var(--color-text-secondary);font-weight:600;margin-bottom:.5rem}.empty-state p{font-size:.85rem;line-height:1.5}.streak-badge{display:inline-flex;align-items:center;gap:.35rem;background:#f59e0b1a;border:1px solid rgba(245,158,11,.2);border-radius:var(--radius-full);padding:.3rem .7rem;font-size:.72rem;font-weight:700;color:#fbbf24;letter-spacing:.02em}.streak-badge .fire{font-size:.85rem}.progress-section{margin-bottom:1.75rem;animation:fadeInUp .5s ease-out .05s both}.progress-bar-container{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.25rem;display:flex;align-items:center;gap:1.25rem}.progress-ring-wrapper{position:relative;flex-shrink:0}.progress-ring{transform:rotate(-90deg)}.progress-ring-bg{fill:none;stroke:#ffffff0f}.progress-ring-fill{fill:none;stroke-linecap:round;transition:stroke-dashoffset .8s cubic-bezier(.4,0,.2,1)}.progress-ring-text{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-weight:800}.progress-info{flex:1}.progress-title{font-size:.95rem;font-weight:700;margin-bottom:.25rem}.progress-subtitle{font-size:.78rem;color:var(--color-text-muted)}.history-date-header{margin-top:.25rem}@media(min-width:640px){.main{padding:2rem;padding-bottom:calc(5rem + var(--safe-bottom))}.header{padding:1.1rem 2rem}.stat-card{padding:1.25rem 1rem}.stat-value{font-size:2rem}.workout-card{padding:1.15rem 1.5rem}.home-title{font-size:2.8rem}}.calendar-card{position:relative;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.25rem;margin-bottom:1.75rem;box-shadow:var(--shadow-sm);animation:fadeInUp .4s ease-out both;overflow:hidden}.calendar-card:before{content:"";position:absolute;inset:0;border-radius:var(--radius);padding:1px;background:linear-gradient(135deg,rgba(99,102,241,.15),transparent,rgba(6,182,212,.1));-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}.calendar-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.cal-nav-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#ffffff0d;border-radius:var(--radius-full);color:var(--color-text-secondary);font-size:1.4rem;line-height:1}.cal-nav-btn:hover{background:#ffffff1a;color:var(--color-text)}.cal-month-label{font-size:.95rem;font-weight:700;color:var(--color-text);background:transparent;padding:.35rem .75rem;border-radius:var(--radius-sm);letter-spacing:-.01em}.cal-month-label:hover{background:#ffffff0d;color:#a78bfa}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.calendar-header-cell{text-align:center;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);padding-bottom:.5rem;-webkit-user-select:none;user-select:none}.calendar-day{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;aspect-ratio:1;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);font-size:.85rem;padding:2px;gap:2px;transition:all .15s cubic-bezier(.4,0,.2,1)}.calendar-day:hover{background:#ffffff0f;color:var(--color-text)}.calendar-day:active{transform:scale(.92)}.calendar-day.outside{color:var(--color-text-muted);opacity:.35}.calendar-day.outside:hover{opacity:.55}.calendar-day.today{color:var(--color-text)}.calendar-day.today .day-number{position:relative}.calendar-day.today .day-number:after{content:"";position:absolute;bottom:-2px;left:50%;transform:translate(-50%);width:4px;height:4px;border-radius:50%;background:var(--color-accent)}.calendar-day.selected{background:#6366f126;color:#fff;box-shadow:inset 0 0 0 1.5px #6366f180}.calendar-day.selected:hover{background:#6366f133}.calendar-day.selected.today .day-number:after{background:#fff}.calendar-day.has-workout{color:var(--color-text)}.day-number{font-weight:600;line-height:1;font-size:.82rem}.day-badge{font-size:.55rem;font-weight:700;line-height:1;padding:1px 4px;border-radius:var(--radius-full);background:var(--gradient-primary);color:#fff;min-width:14px;text-align:center}.calendar-day.outside .day-badge{opacity:.5}.calendar-day.selected .day-badge{background:var(--gradient-accent)}@media(min-width:640px){.calendar-card{padding:1.5rem}.calendar-grid{gap:5px}.calendar-day{font-size:.9rem}.day-number{font-size:.88rem}}
