:root{--primary: #6366f1;--primary-dark: #4f46e5;--primary-light: #818cf8;--primary-glow: rgba(99, 102, 241, .5);--secondary: #22c55e;--secondary-dark: #16a34a;--secondary-glow: rgba(34, 197, 94, .5);--accent: #f59e0b;--accent-light: #fbbf24;--accent-glow: rgba(245, 158, 11, .5);--danger: #ef4444;--danger-glow: rgba(239, 68, 68, .5);--gradient-fire: linear-gradient(135deg, #f97316 0%, #ef4444 50%, #dc2626 100%);--gradient-gold: linear-gradient(135deg, #fbbf24 0%, #f59e0b 50%, #d97706 100%);--gradient-level: linear-gradient(135deg, #6366f1 0%, #8b5cf6 50%, #a855f7 100%);--gradient-success: linear-gradient(135deg, #22c55e 0%, #10b981 100%);--gradient-header: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);--bg-dark: #0c0f1a;--bg-card: #1a1f35;--bg-card-hover: #232942;--bg-input: #2a3150;--bg-hover: #353d5c;--bg-glow: radial-gradient(circle at 50% 0%, rgba(99, 102, 241, .15) 0%, transparent 50%);--text-primary: #f8fafc;--text-secondary: #94a3b8;--text-muted: #64748b;--border: #3d4663;--shadow: 0 4px 20px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 40px rgba(0, 0, 0, .5);--shadow-glow: 0 0 30px var(--primary-glow);--shadow-fire: 0 0 30px rgba(249, 115, 22, .4);--radius: 16px;--radius-sm: 10px;--radius-lg: 20px}[data-theme=light]{--bg-dark: #f0f4ff;--bg-card: #ffffff;--bg-card-hover: #f8fafc;--bg-input: #e2e8f0;--bg-hover: #cbd5e1;--bg-glow: radial-gradient(circle at 50% 0%, rgba(99, 102, 241, .08) 0%, transparent 50%);--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #64748b;--border: #e2e8f0;--shadow: 0 4px 20px rgba(0, 0, 0, .08);--shadow-lg: 0 10px 40px rgba(0, 0, 0, .12);--shadow-glow: 0 0 30px rgba(99, 102, 241, .2)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-dark);background-image:var(--bg-glow);color:var(--text-primary);min-height:100vh;min-height:100dvh;-webkit-tap-highlight-color:transparent;transition:background .3s,color .3s}#app{max-width:480px;margin:0 auto;padding-bottom:80px}#main-content{animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.header{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);padding:20px;text-align:center;position:sticky;top:0;z-index:100}.header h1{font-size:1.5rem;font-weight:700;color:#fff}.status-card{background:var(--bg-card);margin:16px;padding:20px;border-radius:var(--radius);box-shadow:var(--shadow)}.status-row{display:flex;justify-content:space-around;text-align:center}.status-item{flex:1}.status-value{font-size:2rem;font-weight:700;color:var(--primary);transition:transform .3s,color .3s}.status-value.streak{color:var(--warning)}.status-label{font-size:.75rem;color:var(--text-secondary);margin-top:4px}.level-progress{margin-top:16px}.progress-bar{height:8px;background:var(--bg-input);border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--primary) 0%,var(--secondary) 100%);transition:width .3s ease}.progress-text{font-size:.75rem;color:var(--text-muted);text-align:right;margin-top:4px}.exercise-section{padding:16px}.section-title{font-size:1rem;font-weight:600;margin-bottom:12px;color:var(--text-secondary)}.exercise-card{background:var(--bg-card);border-radius:var(--radius);padding:16px;margin-bottom:12px;box-shadow:var(--shadow);transition:transform .2s,box-shadow .2s}.exercise-card:active{transform:scale(.98)}.exercise-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.exercise-name{font-size:1.1rem;font-weight:600}.exercise-total{font-size:.8rem;color:var(--text-muted)}.exercise-controls{display:flex;align-items:center;justify-content:center;gap:20px}.count-btn{width:56px;height:56px;border-radius:50%;border:none;font-size:1.5rem;font-weight:700;cursor:pointer;transition:transform .1s,background .2s,box-shadow .2s;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;user-select:none;-webkit-user-select:none}.count-btn:after{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background:#ffffff4d;border-radius:50%;transform:translate(-50%,-50%);transition:width .3s,height .3s}.count-btn:active:after{width:100px;height:100px}.count-btn:active{transform:scale(.9)}.count-btn.minus{background:var(--bg-input);color:var(--text-primary)}.count-btn.minus:hover{background:var(--bg-hover)}.count-btn.minus:active{background:var(--danger);color:#fff}.count-btn.plus{background:var(--primary);color:#fff;box-shadow:0 4px 12px #4f46e566}.count-btn.plus:hover{background:var(--primary-dark);box-shadow:0 6px 16px #4f46e580}.count-btn.plus:active{background:var(--secondary);box-shadow:0 2px 8px #10b98166}.count-display{font-size:2rem;font-weight:700;min-width:80px;text-align:center;transition:transform .15s,color .15s}.count-display.pulse-up{animation:countPulseUp .3s ease}.count-display.pulse-down{animation:countPulseDown .3s ease}@keyframes countPulseUp{0%{transform:scale(1);color:var(--text-primary)}50%{transform:scale(1.3);color:var(--secondary)}to{transform:scale(1);color:var(--text-primary)}}@keyframes countPulseDown{0%{transform:scale(1);color:var(--text-primary)}50%{transform:scale(.8);color:var(--danger)}to{transform:scale(1);color:var(--text-primary)}}.nav{position:fixed;bottom:0;left:0;right:0;background:var(--bg-card);border-top:1px solid var(--border);display:flex;justify-content:space-around;padding:8px 0;padding-bottom:max(8px,env(safe-area-inset-bottom));z-index:100}.nav-item{display:flex;flex-direction:column;align-items:center;padding:8px 16px;color:var(--text-muted);text-decoration:none;font-size:.7rem;cursor:pointer;transition:color .2s,transform .2s;background:none;border:none}.nav-item:active{transform:scale(.95)}.nav-item.active{color:var(--primary)}.nav-icon{font-size:1.5rem;margin-bottom:4px;transition:transform .2s}.nav-item.active .nav-icon{transform:scale(1.1)}.badge-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;padding:16px}.badge-card{background:var(--bg-card);border-radius:var(--radius);padding:16px;text-align:center;box-shadow:var(--shadow);opacity:.5;filter:grayscale(1);transition:all .3s;cursor:pointer}.badge-card:active{transform:scale(.95)}.badge-card.unlocked{opacity:1;filter:none}.badge-card.unlocked:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.badge-icon{font-size:2.5rem;margin-bottom:8px}.badge-name{font-size:.9rem;font-weight:600;margin-bottom:4px}.badge-desc{font-size:.75rem;color:var(--text-muted)}.badge-progress{margin-top:8px;font-size:.7rem;color:var(--primary)}.modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:300;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}.modal-overlay.show{opacity:1;visibility:visible}.modal{background:var(--bg-card);border-radius:var(--radius-lg);padding:24px;max-width:320px;width:90%;text-align:center;transform:scale(.9);transition:transform .3s}.modal-overlay.show .modal{transform:scale(1)}.modal-icon{font-size:4rem;margin-bottom:16px}.modal-title{font-size:1.25rem;font-weight:700;margin-bottom:8px}.modal-desc{color:var(--text-secondary);margin-bottom:16px}.modal-status{padding:8px 16px;border-radius:var(--radius-sm);font-size:.9rem;font-weight:600}.modal-status.unlocked{background:#10b98133;color:var(--secondary)}.modal-status.locked{background:#ef444433;color:var(--danger)}.modal-close{margin-top:16px;padding:12px 32px;background:var(--primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s}.modal-close:hover{background:var(--primary-dark)}.history-list{padding:16px}.history-date{font-size:.9rem;font-weight:600;color:var(--text-secondary);margin-bottom:8px;margin-top:16px}.history-date:first-child{margin-top:0}.history-item{background:var(--bg-card);border-radius:var(--radius-sm);padding:12px 16px;margin-bottom:8px;display:flex;justify-content:space-between;align-items:center;position:relative;overflow:hidden;transition:transform .2s}.history-item.swiped{transform:translate(-80px)}.history-exercise{font-weight:500}.history-count{color:var(--primary);font-weight:700}.history-delete{position:absolute;right:0;top:0;bottom:0;width:80px;background:var(--danger);display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.5rem;cursor:pointer;transform:translate(100%);transition:transform .2s}.history-item.swiped .history-delete{transform:translate(0)}.confirm-dialog{position:fixed;bottom:0;left:0;right:0;background:var(--bg-card);border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:24px;padding-bottom:max(24px,env(safe-area-inset-bottom));z-index:400;transform:translateY(100%);transition:transform .3s}.confirm-dialog.show{transform:translateY(0)}.confirm-title{font-size:1.1rem;font-weight:600;margin-bottom:16px;text-align:center}.confirm-buttons{display:flex;gap:12px}.confirm-btn{flex:1;padding:14px;border-radius:var(--radius-sm);font-size:1rem;font-weight:600;cursor:pointer;border:none;transition:background .2s,transform .1s}.confirm-btn:active{transform:scale(.98)}.confirm-btn.cancel{background:var(--bg-input);color:var(--text-primary)}.confirm-btn.danger{background:var(--danger);color:#fff}.settings-section{padding:16px}.setting-item{background:var(--bg-card);border-radius:var(--radius-sm);padding:16px;margin-bottom:12px;display:flex;justify-content:space-between;align-items:center;cursor:pointer;transition:background .2s}.setting-item:hover{background:var(--bg-hover)}.setting-item.clickable:active{transform:scale(.98)}.setting-label{font-weight:500}.setting-value{color:var(--text-muted)}.toggle{position:relative;width:50px;height:28px;background:var(--bg-input);border-radius:14px;cursor:pointer;transition:background .3s}.toggle.active{background:var(--primary)}.toggle:after{content:"";position:absolute;top:2px;left:2px;width:24px;height:24px;background:#fff;border-radius:50%;transition:transform .3s}.toggle.active:after{transform:translate(22px)}.add-exercise-btn{width:100%;padding:14px;background:var(--primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:1rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;margin-top:16px;transition:background .2s}.add-exercise-btn:hover{background:var(--primary-dark)}.input-modal{background:var(--bg-card);border-radius:var(--radius-lg);padding:24px;max-width:320px;width:90%}.input-modal input{width:100%;padding:14px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:1rem;margin-bottom:16px}.input-modal input:focus{outline:none;border-color:var(--primary)}.chart-section{padding:16px}.chart-container{background:var(--bg-card);border-radius:var(--radius);padding:16px;margin-bottom:16px}.chart-title{font-size:.9rem;font-weight:600;color:var(--text-secondary);margin-bottom:16px}.chart-bars{display:flex;justify-content:space-between;align-items:flex-end;height:120px;gap:8px}.chart-bar-wrapper{flex:1;display:flex;flex-direction:column;align-items:center;height:100%}.chart-bar{width:100%;background:linear-gradient(to top,var(--primary),var(--primary-light));border-radius:4px 4px 0 0;min-height:4px;transition:height .5s ease}.chart-label{font-size:.7rem;color:var(--text-muted);margin-top:8px}.chart-value{font-size:.7rem;color:var(--text-secondary);margin-bottom:4px}.toast{position:fixed;bottom:120px;left:50%;transform:translate(-50%) translateY(100px);background:var(--secondary);color:#fff;padding:12px 24px;border-radius:var(--radius);font-weight:600;opacity:0;transition:all .3s ease;z-index:200;text-align:center;max-width:90%;box-shadow:var(--shadow-lg)}.toast.show{transform:translate(-50%) translateY(0);opacity:1}.toast.badge-toast{background:linear-gradient(135deg,#f59e0b,#d97706)}@keyframes levelUp{0%{transform:scale(1)}50%{transform:scale(1.2)}to{transform:scale(1)}}.level-up{animation:levelUp .5s ease}@keyframes badgeUnlock{0%{transform:scale(1) rotate(0)}25%{transform:scale(1.2) rotate(-5deg)}50%{transform:scale(1.2) rotate(5deg)}75%{transform:scale(1.1) rotate(-3deg)}to{transform:scale(1) rotate(0)}}.badge-unlock{animation:badgeUnlock .6s ease}.empty-state{text-align:center;padding:40px 20px;color:var(--text-muted)}.empty-icon{font-size:3rem;margin-bottom:12px}.empty-action{margin-top:16px;padding:12px 24px;background:var(--primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s}.empty-action:hover{background:var(--primary-dark)}.dialog-overlay{position:fixed;inset:0;background:#00000080;z-index:350;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}.dialog-overlay.show{opacity:1;visibility:visible}.tab-indicator{position:absolute;bottom:0;height:3px;background:var(--primary);border-radius:3px 3px 0 0;transition:left .3s,width .3s}.page-exit{opacity:0;transform:translateY(-10px);transition:opacity .15s,transform .15s}.page-enter{animation:pageEnter .2s ease}@keyframes pageEnter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.theme-toggle{display:flex;gap:12px;margin-bottom:24px}.theme-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px;background:var(--bg-card);border:2px solid var(--border);border-radius:var(--radius);color:var(--text-primary);cursor:pointer;transition:all .2s}.theme-btn:hover{background:var(--bg-hover)}.theme-btn.active{border-color:var(--primary);background:#4f46e51a}.theme-btn span:first-child{font-size:1.5rem}.theme-btn span:last-child{font-size:.9rem;font-weight:500}.exercise-list{display:flex;flex-direction:column;gap:8px}.exercise-item{background:var(--bg-card);border-radius:var(--radius-sm);padding:12px 16px;display:flex;justify-content:space-between;align-items:center;transition:transform .2s,opacity .2s}.exercise-item .exercise-name{font-weight:500}.exercise-actions{display:flex;gap:8px}.exercise-edit,.exercise-delete{width:36px;height:36px;border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s,transform .1s;font-size:1rem;background:var(--bg-input)}.exercise-edit:hover,.exercise-delete:hover{background:var(--bg-hover)}.exercise-edit:active,.exercise-delete:active{transform:scale(.9)}.exercise-delete{background:#ef444426}.exercise-delete:hover{background:#ef444440}.exercise-modal{text-align:left}.exercise-modal .modal-title{text-align:center;margin-bottom:16px}.exercise-input{width:100%;padding:14px;background:var(--bg-input);border:2px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:1rem;transition:border-color .2s}.exercise-input:focus{outline:none;border-color:var(--primary)}.exercise-input.shake{animation:shake .3s ease;border-color:var(--danger)}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-8px)}50%{transform:translate(8px)}75%{transform:translate(-4px)}}.modal-buttons{display:flex;gap:12px;margin-top:16px}.modal-btn{flex:1;padding:12px;border-radius:var(--radius-sm);font-size:1rem;font-weight:600;cursor:pointer;border:none;transition:background .2s,transform .1s}.modal-btn:active{transform:scale(.98)}.modal-btn.cancel{background:var(--bg-input);color:var(--text-primary)}.modal-btn.cancel:hover{background:var(--bg-hover)}.modal-btn.confirm{background:var(--primary);color:#fff}.modal-btn.confirm:hover{background:var(--primary-dark)}.confirm-message{font-size:.9rem;color:var(--text-muted);margin-bottom:20px;text-align:center}.progress-fill{background:var(--gradient-level);position:relative;overflow:hidden}.progress-fill:after{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);animation:shimmer 2s infinite}@keyframes shimmer{0%{left:-100%}to{left:100%}}.fire-streak{background:var(--gradient-fire);position:relative;animation:fireGlow 1.5s ease-in-out infinite alternate}.fire-streak:before{content:"";position:absolute;inset:-2px;background:var(--gradient-fire);filter:blur(8px);opacity:.6;z-index:-1;border-radius:inherit}@keyframes fireGlow{0%{box-shadow:0 0 20px #f9731666}to{box-shadow:0 0 35px #ef444499}}.streak-flames{position:absolute;bottom:100%;left:50%;transform:translate(-50%);display:flex;gap:2px}.flame{width:8px;height:20px;background:var(--gradient-fire);border-radius:50% 50% 20% 20%;animation:flicker .3s ease-in-out infinite alternate;transform-origin:bottom}.flame:nth-child(2){animation-delay:.1s;height:25px}.flame:nth-child(3){animation-delay:.2s;height:18px}@keyframes flicker{0%{transform:scaleY(1) scaleX(1)}to{transform:scaleY(1.2) scaleX(.8)}}.level-up-overlay{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:500;animation:fadeInOverlay .3s ease}@keyframes fadeInOverlay{0%{opacity:0}to{opacity:1}}.level-up-content{text-align:center;animation:levelUpBounce .5s ease}@keyframes levelUpBounce{0%{transform:scale(.5);opacity:0}50%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}.level-up-icon{font-size:5rem;margin-bottom:16px;animation:starSpin 1s ease infinite}@keyframes starSpin{0%{transform:rotate(0) scale(1)}50%{transform:rotate(180deg) scale(1.2)}to{transform:rotate(360deg) scale(1)}}.level-up-text{font-size:2rem;font-weight:800;background:var(--gradient-gold);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-shadow:none}.level-up-level{font-size:3.5rem;font-weight:900;color:var(--accent-light);text-shadow:0 0 30px var(--accent-glow);margin:8px 0}.particle-container{position:fixed;inset:0;pointer-events:none;z-index:400;overflow:hidden}.particle{position:absolute;font-size:1.2rem;font-weight:700;color:var(--secondary);animation:particleFly 1s ease-out forwards;text-shadow:0 0 10px var(--secondary-glow)}@keyframes particleFly{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-100px) scale(.5)}}.xp-gain{color:var(--accent);animation:xpFloat .8s ease-out forwards}@keyframes xpFloat{0%{opacity:1;transform:translateY(0) translate(-50%)}to{opacity:0;transform:translateY(-50px) translate(-50%)}}.card-shine{position:relative;overflow:hidden}.card-shine:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:linear-gradient(45deg,transparent 40%,rgba(255,255,255,.03) 50%,transparent 60%);transform:rotate(45deg);transition:transform .5s}.card-shine:hover:before{transform:rotate(45deg) translateY(100%)}.badge-card.unlocked{position:relative}.badge-card.unlocked:after{content:"";position:absolute;inset:-2px;background:var(--gradient-gold);border-radius:inherit;z-index:-1;opacity:0;filter:blur(8px);transition:opacity .3s}.badge-card.unlocked:hover:after{opacity:.5}.confetti-container{position:fixed;inset:0;pointer-events:none;z-index:450;overflow:hidden}.confetti{position:absolute;width:10px;height:10px;animation:confettiFall 3s ease-out forwards}@keyframes confettiFall{0%{opacity:1;transform:translateY(-100vh) rotate(0)}to{opacity:0;transform:translateY(100vh) rotate(720deg)}}.status-card{background:var(--bg-card);background-image:var(--bg-glow);border:1px solid var(--border)}.streak-section{background:var(--gradient-fire);padding:16px;border-radius:var(--radius);text-align:center;position:relative;overflow:hidden;margin-bottom:16px}.streak-section:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.1) 0%,transparent 50%)}.streak-value{font-size:3rem;font-weight:900;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.3)}.streak-label{font-size:.9rem;color:#ffffffe6;font-weight:600;text-transform:uppercase;letter-spacing:1px}.level-section{background:var(--bg-card);padding:16px;border-radius:var(--radius);border:1px solid var(--border)}.level-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.level-badge{display:flex;align-items:center;gap:8px}.level-icon{width:40px;height:40px;background:var(--gradient-level);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.2rem;box-shadow:0 0 20px var(--primary-glow)}.level-number{font-size:1.8rem;font-weight:800;background:var(--gradient-level);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.level-title{font-size:.8rem;color:var(--text-secondary)}.xp-display{text-align:right}.xp-current{font-size:1.2rem;font-weight:700;color:var(--primary-light)}.xp-needed{font-size:.75rem;color:var(--text-muted)}.level-progress .progress-bar{height:12px;background:var(--bg-input);border-radius:6px;box-shadow:inset 0 2px 4px #0003}.exercise-card{background:var(--bg-card);border:1px solid var(--border);transition:transform .2s,box-shadow .2s,border-color .2s}.exercise-card:hover{border-color:var(--primary);box-shadow:var(--shadow-glow)}.count-display{font-size:2.5rem;font-weight:800;background:linear-gradient(180deg,var(--text-primary) 0%,var(--text-secondary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.count-btn.plus{background:var(--gradient-success);box-shadow:0 4px 15px var(--secondary-glow)}.count-btn.plus:active{background:var(--gradient-level);box-shadow:0 2px 10px var(--primary-glow)}.badge-grid{gap:16px}.badge-card{border:1px solid var(--border);transition:all .3s}.badge-card.unlocked{border-color:var(--accent);box-shadow:0 0 20px var(--accent-glow)}.badge-icon{font-size:3rem;margin-bottom:12px;filter:drop-shadow(0 4px 8px rgba(0,0,0,.2))}.header{background:var(--gradient-header);position:relative;overflow:hidden}.header:before{content:"";position:absolute;top:0;left:0;right:0;height:50%;background:linear-gradient(180deg,rgba(255,255,255,.15) 0%,transparent 100%)}.header h1{position:relative;z-index:1;text-shadow:0 2px 10px rgba(0,0,0,.2)}.exercise-info{display:flex;align-items:center;gap:10px}.exercise-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:var(--primary-light)}.exercise-icon svg{width:100%;height:100%}.badge-progress-section{display:flex;align-items:center;gap:12px;padding-top:16px;margin-top:16px;border-top:1px solid var(--border)}.badge-progress-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--gradient-gold);border-radius:50%;box-shadow:0 0 15px var(--accent-glow)}.badge-progress-icon svg{width:20px;height:20px;color:#fff}.badge-progress-info{display:flex;flex-direction:column;gap:2px;min-width:70px}.badge-progress-count{font-size:1.1rem;font-weight:700;color:var(--accent)}.badge-progress-label{font-size:.7rem;color:var(--text-muted)}.badge-progress-bar{flex:1;height:8px;background:var(--bg-input);border-radius:4px;overflow:hidden}.badge-progress-fill{height:100%;background:var(--gradient-gold);border-radius:4px;transition:width .3s ease}.section-title{font-size:1rem;font-weight:700;margin-bottom:16px;color:var(--text-primary);display:flex;align-items:center;gap:8px;text-transform:uppercase;letter-spacing:1px}.section-title svg{width:20px;height:20px;color:var(--primary-light)}.nav-icon{width:24px;height:24px;display:flex;align-items:center;justify-content:center}.nav-icon svg{width:100%;height:100%}.level-icon{color:#fff}.level-icon svg{width:22px;height:22px}.count-btn svg{width:24px;height:24px}.achievement-summary{display:flex;align-items:center;gap:16px;padding:20px;margin:16px;background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow)}.achievement-trophy{width:60px;height:60px;display:flex;align-items:center;justify-content:center;background:var(--gradient-gold);border-radius:50%;box-shadow:0 0 25px var(--accent-glow);animation:trophyPulse 2s ease-in-out infinite}@keyframes trophyPulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.achievement-trophy svg{width:32px;height:32px;color:#fff}.achievement-stats{flex:1}.achievement-main{display:flex;align-items:baseline;gap:4px}.achievement-count{font-size:2.5rem;font-weight:900;background:var(--gradient-gold);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.achievement-total{font-size:1.2rem;color:var(--text-muted);font-weight:600}.achievement-label{font-size:.75rem;color:var(--text-secondary);font-weight:600;text-transform:uppercase;letter-spacing:1px;margin-top:4px}.achievement-progress-ring{width:60px;height:60px;position:relative}.achievement-progress-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.progress-ring-bg{stroke:var(--bg-input)}.progress-ring-fill{stroke:var(--accent);stroke-linecap:round;transition:stroke-dasharray .5s ease}.progress-ring-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.8rem;font-weight:700;color:var(--accent)}.stats-row{display:flex;gap:12px;padding:0 16px;margin-bottom:20px}.stat-card{flex:1;background:var(--bg-card);border-radius:var(--radius-sm);padding:16px 12px;text-align:center;border:1px solid var(--border)}.stat-icon{width:36px;height:36px;margin:0 auto 8px;border-radius:50%;display:flex;align-items:center;justify-content:center}.stat-icon svg{width:20px;height:20px;color:#fff}.stat-icon.fire{background:var(--gradient-fire);box-shadow:0 0 15px #f9731666}.stat-icon.level{background:var(--gradient-level);box-shadow:0 0 15px var(--primary-glow)}.stat-icon.xp{background:var(--gradient-gold);box-shadow:0 0 15px var(--accent-glow)}.stat-value{font-size:1.3rem;font-weight:800;color:var(--text-primary)}.stat-label{font-size:.7rem;color:var(--text-muted);margin-top:4px}.badge-section-header{padding:0 16px;margin-bottom:4px}.badge-icon-wrapper{position:relative;display:inline-block;margin-bottom:8px}.badge-checkmark{position:absolute;bottom:-4px;right:-4px;width:20px;height:20px;background:var(--secondary);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.7rem;color:#fff;font-weight:700;border:2px solid var(--bg-card)}.badge-date{font-size:.7rem;color:var(--text-muted);margin-top:8px}.badge-modal-content{background:var(--bg-card);background-image:var(--bg-glow)}.badge-modal-content .modal-icon{font-size:5rem;margin-bottom:16px;animation:badgeFloat 3s ease-in-out infinite}@keyframes badgeFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.quest-section{padding:0 16px;margin-bottom:20px}.quest-list{display:flex;flex-direction:column;gap:10px}.quest-card{display:flex;align-items:center;gap:12px;background:var(--bg-card);border:2px solid var(--border);border-radius:var(--radius);padding:14px;transition:all .3s}.quest-card.completed{border-color:var(--secondary);background:linear-gradient(135deg,rgba(34,197,94,.1) 0%,var(--bg-card) 100%)}.quest-card.claimed{opacity:.7}.quest-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--bg-input);border-radius:50%;flex-shrink:0}.quest-card.completed .quest-icon{background:var(--gradient-success)}.quest-icon svg{width:22px;height:22px;color:var(--text-secondary)}.quest-card.completed .quest-icon svg{color:#fff}.quest-info{flex:1;min-width:0}.quest-title{font-size:.9rem;font-weight:600;margin-bottom:6px;color:var(--text-primary)}.quest-progress-bar{height:6px;background:var(--bg-input);border-radius:3px;overflow:hidden;margin-bottom:4px}.quest-progress-fill{height:100%;background:var(--gradient-level);border-radius:3px;transition:width .3s ease}.quest-card.completed .quest-progress-fill{background:var(--gradient-success)}.quest-progress-text{font-size:.75rem;color:var(--text-muted)}.quest-reward{flex-shrink:0}.quest-xp-label{font-size:.8rem;color:var(--text-muted);padding:6px 10px;background:var(--bg-input);border-radius:var(--radius-sm)}.quest-claim-btn{background:var(--gradient-gold);color:#fff;border:none;padding:8px 14px;border-radius:var(--radius-sm);font-size:.85rem;font-weight:700;cursor:pointer;animation:questPulse 1.5s ease-in-out infinite;box-shadow:0 0 15px var(--accent-glow)}@keyframes questPulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.quest-claim-btn:active{transform:scale(.95)}.quest-claimed-badge{width:32px;height:32px;background:var(--secondary);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700}.section-desc{font-size:.85rem;color:var(--text-muted);margin-bottom:12px;line-height:1.4}.quest-manage-list{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.quest-manage-item{display:flex;justify-content:space-between;align-items:center;background:var(--bg-card);border-radius:var(--radius-sm);padding:12px 16px;transition:transform .2s,opacity .2s}.quest-manage-name{font-weight:500;color:var(--text-primary)}.quest-modal{text-align:left}.quest-form{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.quest-form-label{font-size:.85rem;font-weight:600;color:var(--text-secondary)}.quest-select,.quest-input{width:100%;padding:12px;background:var(--bg-input);border:2px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:1rem;transition:border-color .2s}.quest-select:focus,.quest-input:focus{outline:none;border-color:var(--primary)}.quest-input.shake{animation:shake .3s ease;border-color:var(--danger)}.quest-list-compact{display:flex;flex-direction:column;gap:8px}.quest-row{display:flex;align-items:center;justify-content:space-between;background:var(--bg-card);border-radius:var(--radius-sm);padding:10px 12px;gap:12px}.quest-row-left{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.quest-row-icon{width:28px;height:28px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.quest-row-icon svg{width:20px;height:20px;color:var(--primary-light)}.quest-row-info{display:flex;flex-direction:column;min-width:0}.quest-row-name{font-size:.85rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.quest-row-count{font-size:.7rem;color:var(--text-muted)}.quest-row-difficulties{display:flex;gap:6px;flex-shrink:0}.quest-chip{width:40px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:6px;font-size:.7rem;font-weight:700;color:var(--text-muted);background:var(--bg-input);transition:all .2s}.quest-chip.empty{opacity:.3}.quest-chip.difficulty-must{border:2px solid var(--secondary);color:var(--secondary)}.quest-chip.difficulty-normal{border:2px solid var(--primary);color:var(--primary)}.quest-chip.difficulty-challenge{border:2px solid var(--accent);color:var(--accent)}.quest-chip.completed{color:#fff;cursor:pointer;animation:chipPulse 1.5s ease-in-out infinite}.quest-chip.completed.difficulty-must{background:var(--secondary)}.quest-chip.completed.difficulty-normal{background:var(--primary)}.quest-chip.completed.difficulty-challenge{background:var(--accent)}@keyframes chipPulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.quest-chip.claimed{opacity:.5;animation:none;cursor:default}.quest-difficulty-legend{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:16px;padding:12px;background:var(--bg-card);border-radius:var(--radius-sm)}.legend-item{display:flex;align-items:center;gap:6px;font-size:.8rem;color:var(--text-secondary)}.legend-badge{font-size:.65rem;font-weight:700;color:#fff;padding:2px 6px;border-radius:4px}.quest-exercise-settings{display:flex;flex-direction:column;gap:12px}.quest-exercise-setting{background:var(--bg-card);border-radius:var(--radius);padding:14px;border:1px solid var(--border)}.quest-exercise-setting .quest-exercise-header{margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--border)}.quest-exercise-setting .quest-exercise-icon{width:32px;height:32px}.quest-exercise-setting .quest-exercise-icon svg{width:18px;height:18px}.quest-exercise-setting .quest-exercise-name{font-size:.9rem}.quest-difficulty-inputs{display:flex;gap:8px;margin-bottom:12px}.quest-difficulty-input-group{flex:1;display:flex;flex-direction:column;gap:4px}.quest-difficulty-label{font-size:.7rem;font-weight:700;text-align:center}.quest-difficulty-input{width:100%;padding:10px 6px;background:var(--bg-input);border:2px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.9rem;text-align:center;transition:border-color .2s}.quest-difficulty-input:focus{outline:none;border-color:var(--primary)}.quest-difficulty-input::placeholder{color:var(--text-muted);font-size:.8rem}.quest-save-btn{width:100%;padding:10px;background:var(--primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s}.quest-save-btn:hover{background:var(--primary-dark)}.quest-save-btn:active{transform:scale(.98)}.quest-save-btn:disabled{background:var(--secondary);cursor:default}
