@import"https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800&display=swap";@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light;color:#000000de;background-color:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-width:320px;min-height:100vh;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;overscroll-behavior-y:none}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}html,body{position:fixed;overflow:hidden;width:100%;height:100%;overscroll-behavior:none;-webkit-overflow-scrolling:touch;padding-bottom:0}#root{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;height:100%;padding-bottom:0}@media (max-width: 768px){html,body,#root{padding-bottom:0!important;margin-bottom:0!important}}@media (display-mode: standalone){html,body,#root{padding-bottom:0!important}}@media (hover: none) and (pointer: coarse){html,body,#root{padding-bottom:0!important;margin-bottom:0!important}}.home-container{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100vh;padding:0;background:linear-gradient(135deg,#f5f7fa,#c3cfe2);overflow:hidden;position:fixed;inset:0}body.home-page{overflow:hidden;position:fixed;width:100%;height:100%}.home-title{font-size:2.8rem;color:#2d3748;margin:2rem 0;text-align:center;font-weight:700;position:relative;display:inline-block;padding-bottom:.5rem;letter-spacing:-.5px;background:linear-gradient(to right,#3182ce,#805ad5);-webkit-background-clip:text;background-clip:text;color:transparent}.home-title:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:60%;height:4px;background:linear-gradient(to right,#3182ce,#805ad5);border-radius:2px}.options-container{display:flex;justify-content:center;gap:2rem;width:100%;max-width:1400px;padding:0 1rem}.option-card{display:flex;flex-direction:column;align-items:center;padding:2rem 1rem;background-color:#fff;border-radius:1rem;box-shadow:0 10px 25px #0000001a;cursor:pointer;transition:all .3s ease;width:100%;max-width:50%;text-align:center}.option-card:hover{transform:translateY(-10px);box-shadow:0 15px 30px #00000026}.option-card h2{margin:1rem 0 .5rem;font-size:1.8rem;font-weight:600;color:#2d3748}.option-card p{color:#718096;margin-bottom:.5rem}.icon-container{width:80px;height:80px;display:flex;align-items:center;justify-content:center;border-radius:50%;margin-bottom:1rem}.expenses .icon-container{background-color:#ebf8ff;color:#3182ce}.gym .icon-container{background-color:#fff0e6;color:#ff7e36}.icon-container svg{width:40px;height:40px}.gym .icon-container svg{width:50px;height:50px}.expenses .icon-container svg{width:45px;height:45px}@media (max-width: 640px){.home-title{display:none}.home-container{padding-top:2rem}.options-container{flex-direction:row;gap:1rem;padding:0 .5rem;margin-top:0}.option-card{padding:1.2rem .8rem;max-width:50%}.option-card h2{font-size:1.4rem;margin:.7rem 0 .3rem}.option-card p{font-size:.9rem;margin-bottom:.3rem}.icon-container{width:60px;height:60px}.icon-container svg{width:30px;height:30px}.expenses{margin-left:10px}.gym{margin-right:10px}}@media (min-width: 641px) and (max-width: 1024px){.option-card{max-width:45%;padding:1.7rem 1.2rem}}.page-container{padding:1rem;width:100%;margin:0 auto}.back-button{padding:.5rem 1rem;background-color:#4a5568;color:#fff;border:none;border-radius:.5rem;cursor:pointer;margin-bottom:1.5rem;font-weight:500}.back-button:hover{background-color:#2d3748}.user-bar{position:absolute;top:1rem;right:1rem;display:flex;align-items:center;gap:1rem;z-index:10}.user-info{display:flex;align-items:center;gap:.8rem;background-color:#fff;border-radius:2rem;padding:.4rem .8rem .4rem .4rem;box-shadow:0 2px 5px #0000001a}.avatar{width:2rem;height:2rem;background-color:#3182ce;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1rem}.user-name{font-weight:500;color:#2d3748}.home-logout-button{background-color:#f56565;color:#fff;border:none;border-radius:.5rem;padding:.5rem 1rem;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:.5rem;box-shadow:0 2px 4px #f5656533}.home-logout-button:hover{background-color:#e53e3e;transform:translateY(-2px)}.logout-icon{width:1.25rem;height:1.25rem}@media (max-width: 640px){.user-bar{top:.75rem;right:.75rem}.home-logout-button span{display:none}.home-logout-button{padding:.4rem}.user-name{display:none}}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#4a00e0,#8e2de2);position:relative;overflow:hidden}.login-background{position:absolute;top:0;left:0;width:100%;height:100%;z-index:0;opacity:.8}.login-shape{position:absolute;border-radius:50%;background:radial-gradient(circle at center,rgba(255,255,255,.1) 0%,transparent 70%)}.shape-1{top:-10%;left:-5%;width:50vw;height:50vw;animation:float 15s infinite ease-in-out}.shape-2{top:60%;left:60%;width:40vw;height:40vw;animation:float 20s infinite ease-in-out reverse}.shape-3{top:40%;left:-10%;width:30vw;height:30vw;animation:float 25s infinite ease-in-out 5s}.shape-4{bottom:-10%;right:20%;width:25vw;height:25vw;animation:float 18s infinite ease-in-out 2s}@keyframes float{0%{transform:translate(0) rotate(0)}25%{transform:translate(5%,5%) rotate(5deg)}50%{transform:translateY(10%) rotate(0)}75%{transform:translate(-5%,5%) rotate(-5deg)}to{transform:translate(0) rotate(0)}}.login-container{display:flex;width:100%;max-width:1000px;min-height:600px;background-color:#fff;border-radius:20px;box-shadow:0 20px 60px #0003;overflow:hidden;z-index:1;animation:fadeScale .7s ease-out forwards}@keyframes fadeScale{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.login-left{display:flex;flex-direction:column;justify-content:space-between;width:50%;padding:3rem;background:linear-gradient(to bottom right,#4a00e0,#8e2de2);color:#fff}.login-logo{display:flex;align-items:center;gap:1rem;margin-bottom:2rem}.logo-icon{display:flex;align-items:center;justify-content:center;width:3rem;height:3rem;background-color:#ffffff26;border-radius:12px;padding:.6rem}.logo-icon svg{width:100%;height:100%;color:#fff}.login-logo h1{font-size:1.8rem;font-weight:800;letter-spacing:-.5px;margin:0}.login-logo span{opacity:.8;font-weight:400;margin-left:.3rem}.login-welcome{margin-bottom:2rem}.login-welcome h2{font-size:2.2rem;font-weight:700;margin:0 0 1rem;line-height:1.2}.login-welcome p{font-size:1rem;opacity:.8;margin:0;line-height:1.6}.login-features{display:flex;flex-direction:column;gap:1.5rem}.feature-item{display:flex;align-items:center;gap:1rem;background-color:#ffffff1a;border-radius:12px;padding:1rem;transition:all .3s ease}.feature-item:hover{background-color:#ffffff26;transform:translate(5px)}.feature-icon{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;background-color:#fff3;border-radius:10px;flex-shrink:0}.feature-icon svg{width:1.2rem;height:1.2rem;color:#fff}.feature-text h3{font-size:1rem;font-weight:600;margin:0 0 .25rem}.feature-text p{font-size:.85rem;opacity:.7;margin:0;line-height:1.4}.login-right{width:50%;padding:3rem;display:flex;flex-direction:column}.login-form-header{text-align:center;margin-bottom:2.5rem}.login-form-header h2{font-size:1.8rem;font-weight:700;color:#2d3748;margin:0 0 .5rem}.login-form-header p{font-size:.95rem;color:#718096;margin:0}.error-message{display:flex;align-items:center;gap:.5rem;background-color:#fff5f5;color:#e53e3e;border-left:4px solid #E53E3E;padding:.75rem 1rem;border-radius:.5rem;margin-bottom:1.5rem;font-size:.875rem;animation:shakeError .5s cubic-bezier(.36,.07,.19,.97) both}@keyframes shakeError{10%,90%{transform:translate(-1px)}20%,80%{transform:translate(2px)}30%,50%,70%{transform:translate(-4px)}40%,60%{transform:translate(4px)}}.error-icon{width:1.25rem;height:1.25rem;flex-shrink:0}.login-form{display:flex;flex-direction:column;gap:1.5rem;margin-bottom:2rem}.form-group{display:flex;flex-direction:column;position:relative}.label-container{display:flex;justify-content:space-between;margin-bottom:.5rem}.form-group label{text-align:left;font-size:.9rem;font-weight:600;color:#4a5568;margin-bottom:.5rem}.input-container{position:relative;display:flex;align-items:center}.input-icon{position:absolute;left:1rem;width:1.25rem;height:1.25rem;color:#a0aec0}.input-valid-icon{position:absolute;right:1rem;width:1.25rem;height:1.25rem;color:#48bb78;display:flex;align-items:center;justify-content:center}.input-valid-icon svg{width:1.25rem;height:1.25rem}.form-group input{width:100%;padding:.9rem 1rem .9rem 3rem;border:1px solid #E2E8F0;border-radius:.5rem;font-size:1rem;transition:all .2s ease;color:#2d3748;background-color:#f7fafc}.form-group input:focus{outline:none;border-color:#4a00e0;background-color:#fff;box-shadow:0 0 0 3px #4a00e01a}.form-group input::placeholder{color:#cbd5e0}.form-group input.has-value{border-color:#4a5568;background-color:#fff}.password-toggle{position:absolute;right:1rem;background:none;border:none;color:#a0aec0;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:color .2s}.password-toggle:hover{color:#4a5568}.password-toggle svg{width:1.25rem;height:1.25rem}.login-options{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.remember-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;user-select:none}.remember-label input[type=checkbox]{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.checkbox-custom{position:relative;display:inline-block;width:1.25rem;height:1.25rem;background-color:#f7fafc;border:2px solid #E2E8F0;border-radius:.375rem;transition:all .2s}.remember-label:hover .checkbox-custom{border-color:#cbd5e0}.remember-label input:checked~.checkbox-custom{background-color:#4a00e0;border-color:#4a00e0}.checkbox-custom:after{content:"";position:absolute;display:none;left:6px;top:2px;width:5px;height:10px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg)}.remember-label input:checked~.checkbox-custom:after{display:block}.remember-label span:last-child{font-size:.875rem;color:#4a5568}.login-button{display:flex;align-items:center;justify-content:center;gap:.75rem;width:100%;padding:1rem;border:none;border-radius:.5rem;background:linear-gradient(to right,#4a00e0,#8e2de2);color:#fff;font-weight:600;font-size:1rem;cursor:pointer;transition:all .3s ease;position:relative;overflow:hidden}.login-button:before{content:"";position:absolute;top:0;left:0;width:0;height:100%;background:#ffffff1a;transition:width .3s ease}.login-button:hover:not(:disabled):before{width:100%}.login-button:active:not(:disabled){transform:scale(.98)}.login-button:disabled{opacity:.7;cursor:not-allowed}.login-button svg{width:1.25rem;height:1.25rem}.spinner{width:1.25rem;height:1.25rem;border:2px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;animation:spin .8s linear infinite}.login-footer{margin-top:auto;display:flex;justify-content:center}.secure-badge{display:flex;align-items:center;gap:.5rem;color:#718096;font-size:.875rem}.secure-badge svg{width:1rem;height:1rem;color:#48bb78}@media (max-width: 1024px){.login-container{max-width:90%;min-height:auto}}@media (max-width: 768px){.login-container{flex-direction:column;max-width:90%;min-height:auto;max-height:90vh;overflow-y:auto}.login-left{display:none}.login-right{width:100%;padding:2.5rem;box-sizing:border-box;max-width:none;margin:0 auto}}@media (max-width: 640px){.login-left,.login-right{padding:1.5rem}.login-container{max-width:100%;border-radius:0;height:100vh}.login-page{padding:0;background:linear-gradient(135deg,#4a00e0,#8e2de2)}.login-shape{display:none}.login-container{max-width:100%;height:100vh;border-radius:0;box-shadow:none;margin:0}.login-right{padding:2rem;justify-content:center;height:100%;margin:0;max-width:100%;box-sizing:border-box}.login-form-header{margin-bottom:1.5rem}.login-form-header h2{font-size:1.8rem}.login-form-header p{font-size:.9rem}.form-group input{width:100%;box-sizing:border-box;padding:.85rem 3rem .85rem 2.75rem;font-size:1rem;height:3.2rem}.password-toggle{padding:.5rem;right:.5rem}.password-toggle svg{width:1.35rem;height:1.35rem}.remember-label{gap:.75rem}.checkbox-custom{width:1.35rem;height:1.35rem}.login-button{padding:1.1rem;font-size:1.05rem;margin-top:.5rem}.login-footer{margin-top:2rem}@media (max-height: 500px) and (orientation: landscape){.login-container{height:auto;min-height:100%}.login-form-header{margin-bottom:1rem}.login-form{gap:1.25rem}.form-group input{height:2.8rem;padding:.75rem 1rem .75rem 2.5rem}.login-footer{margin-top:1rem}}.error-message{padding:.85rem;margin-bottom:1.25rem}}@media (max-width: 360px){.login-right{padding:1.5rem}.login-form-header h2{font-size:1.6rem}.form-group label{font-size:.85rem}.remember-label span:last-child{font-size:.8rem}.login-options{margin-bottom:1.25rem}.form-group input{font-size:.95rem}}@supports (padding: max(0px)){.login-page{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}@media (max-width: 640px){.login-container{padding-top:max(1rem,env(safe-area-inset-top));padding-bottom:max(1rem,env(safe-area-inset-bottom))}}}.bottom-nav-container{position:fixed;bottom:0;left:0;right:0;z-index:9999;height:65px;transform:translateZ(0);will-change:transform;padding-bottom:0;min-height:65px}.bottom-nav-backdrop{position:absolute;inset:0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background-color:#ffffffd9;box-shadow:0 -8px 16px #0000000f;z-index:-1;transform:translateZ(0)}@supports not (backdrop-filter: blur(12px)){.bottom-nav-backdrop{background-color:#fffffff2}}.bottom-nav-separator{position:absolute;top:0;left:16px;right:16px;height:1px;background:linear-gradient(90deg,#e7e8ec00,#e7e8ec 15% 85%,#e7e8ec00)}.bottom-nav{display:flex;justify-content:space-around;align-items:center;height:65px;padding:0 8px;position:relative;max-width:600px;margin:0 auto}.bottom-nav-indicator{display:none}.bottom-nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-decoration:none;color:#64748b;font-weight:500;position:relative;padding:8px 12px;overflow:hidden;transition:all .3s ease;border-radius:8px;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.bottom-nav-item-content{display:flex;flex-direction:column;align-items:center;position:relative;z-index:2}.bottom-nav-icon{width:24px;height:24px;margin-bottom:4px;position:relative;transition:transform .2s ease}.bottom-nav-icon svg{width:24px;height:24px;color:#64748b;transition:color .3s ease,opacity .3s ease}.bottom-nav-label{font-size:.7rem;transition:color .3s ease;letter-spacing:-.1px;white-space:nowrap}.bottom-nav-item.active{color:#4f46e5;background-color:#4f46e514;border-radius:8px;-webkit-tap-highlight-color:transparent}.bottom-nav-item.active .bottom-nav-icon svg{color:#4f46e5}.bottom-nav-item.active .bottom-nav-label{color:#4f46e5;font-weight:600}.bottom-nav-ripple{position:absolute;background:radial-gradient(circle,rgba(99,102,241,.1) 0%,rgba(99,102,241,.05) 50%,transparent 70%);border-radius:50%;width:100px;height:100px;top:50%;left:50%;transform:translate(-50%,-50%) scale(0);opacity:0;transition:transform .4s cubic-bezier(.1,.82,.25,1),opacity .4s ease;z-index:1}.bottom-nav-item:active .bottom-nav-ripple{transform:translate(-50%,-50%) scale(1);opacity:1;transition:transform .3s ease-out,opacity .4s ease-out}.bottom-nav-item:not(.active):hover{background-color:#6366f108;border-radius:8px}.bottom-nav-item:not(.active):hover .bottom-nav-icon svg{color:#818cf8}.bottom-nav-item:not(.active):hover .bottom-nav-label{color:#818cf8}@media (max-width: 768px){.bottom-nav-container{bottom:0!important;padding-bottom:0!important;margin-bottom:0!important;height:80px!important;min-height:80px!important}.bottom-nav{height:80px!important;margin-bottom:0!important;padding-bottom:0!important}.bottom-nav-item{padding:12px 8px!important}}@supports (-webkit-touch-callout: none){.bottom-nav-container{bottom:0!important;padding-bottom:0!important;height:85px!important;min-height:85px!important}.bottom-nav{height:85px!important;margin-bottom:0!important}}@media (display-mode: standalone){.bottom-nav-container{bottom:0!important;padding-bottom:0!important;height:90px!important;min-height:90px!important}.bottom-nav{height:90px!important;margin-bottom:0!important}.bottom-nav-item{padding:15px 8px!important}}@media (max-width: 480px){.bottom-nav-container{height:85px!important;min-height:85px!important}.bottom-nav{height:85px!important;padding:0 4px!important}.bottom-nav-icon{margin-bottom:6px!important}.bottom-nav-label{font-size:.65rem}}@media (max-width: 360px){.bottom-nav-container{height:85px!important}.bottom-nav{height:85px!important;padding:0 2px!important}.bottom-nav-icon{margin-bottom:6px!important}.bottom-nav-label{font-size:.6rem;letter-spacing:-.2px}}@media screen and (max-width: 768px) and (-webkit-min-device-pixel-ratio: 1){.bottom-nav-container{bottom:0!important;padding-bottom:0!important;margin-bottom:0!important;height:85px!important;min-height:85px!important}}@media only screen and (device-width: 390px) and (device-height: 844px) and (-webkit-device-pixel-ratio: 3){.bottom-nav-container{bottom:0!important;padding-bottom:25px!important;height:90px!important;min-height:90px!important}}@media only screen and (device-width: 428px) and (device-height: 926px) and (-webkit-device-pixel-ratio: 3){.bottom-nav-container{bottom:0!important;padding-bottom:25px!important;height:90px!important;min-height:90px!important}}@media (hover: none) and (pointer: coarse){.bottom-nav-container{bottom:0!important;padding-bottom:0!important;margin-bottom:0!important;height:85px!important;min-height:85px!important}.bottom-nav{height:85px!important;margin-bottom:0!important;padding-bottom:0!important}}.bottom-nav-item.active .bottom-nav-icon svg{transform:scale(1.1)}.bottom-nav-item:active .bottom-nav-icon{transform:scale(.9)}.expense-modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;padding:20px;box-sizing:border-box;z-index:10000}.expense-modal{background:#fff;border-radius:12px;width:100%;max-width:440px;max-height:85vh;overflow:hidden;box-shadow:0 10px 25px #0003;display:flex;flex-direction:column;margin:0 auto;position:relative;z-index:10001}.expense-new-category-modal{max-width:380px}.expense-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e5e7eb;background:#fafafa;flex-shrink:0}.expense-modal-header h2,.expense-modal-header h3{margin:0;font-size:20px;font-weight:600;color:#111827}.expense-modal-close{background:none;border:none;cursor:pointer;width:32px;height:32px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:20px;color:#6b7280;transition:all .2s}.expense-modal-close:hover{background-color:#f3f4f6;color:#374151}.expense-modal-body{flex:1;overflow-y:auto}.expense-form{padding:24px}.expense-error-message{background:#fef2f2;border:1px solid #fecaca;color:#dc2626;padding:12px 16px;border-radius:8px;margin-bottom:20px;font-size:14px}.expense-form-group{margin-bottom:20px}.expense-form-group label{display:block;margin-bottom:8px;font-weight:500;color:#374151;font-size:14px}.expense-input-wrapper{position:relative}.expense-currency{position:absolute;left:12px;top:50%;transform:translateY(-50%);font-weight:600;color:#6b7280;font-size:16px}.expense-input-wrapper input{width:100%;padding:12px 12px 12px 36px;border:1px solid #d1d5db;border-radius:8px;font-size:16px;transition:border-color .2s;box-sizing:border-box}.expense-form-group input[type=text],.expense-form-group input[type=number],.expense-form-group input[type=date]{width:100%;padding:12px;border:1px solid #d1d5db;border-radius:8px;font-size:16px;transition:border-color .2s;box-sizing:border-box}.expense-form-group input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.expense-category-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.expense-add-category-btn{background:#3b82f6;color:#fff;border:none;padding:6px 12px;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;transition:background-color .2s}.expense-add-category-btn:hover{background:#2563eb}.expense-categories-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:0}.expense-category-item{display:flex;align-items:center;padding:12px;background:#fff;border:2px solid #e5e7eb;border-radius:8px;cursor:pointer;transition:all .2s;gap:8px;min-height:44px}.expense-category-item:hover{border-color:#d1d5db;background:#f9fafb}.expense-category-item.selected{border-color:#3b82f6;background:#eff6ff}.expense-category-color{width:12px;height:12px;border-radius:50%;flex-shrink:0}.expense-category-name{font-size:13px;font-weight:500;color:#374151;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.expense-form-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px;padding-top:20px;border-top:1px solid #e5e7eb}.expense-btn-primary,.expense-btn-secondary{padding:12px 20px;border-radius:8px;font-weight:500;cursor:pointer;transition:all .2s;font-size:14px;border:none}.expense-btn-primary{background:#ef4444;color:#fff}.expense-btn-primary:hover:not(:disabled){background:#dc2626}.expense-btn-primary:disabled{opacity:.6;cursor:not-allowed}.expense-btn-secondary{background:#f3f4f6;color:#374151;border:1px solid #d1d5db}.expense-btn-secondary:hover{background:#e5e7eb}@media (max-width: 768px){.expense-modal-overlay{padding:0;align-items:stretch;z-index:10000}.expense-modal{max-width:100%;width:100%;height:100%;max-height:100%;border-radius:0;margin:0;z-index:10001}.expense-new-category-modal{max-width:100%}.expense-categories-grid{grid-template-columns:repeat(2,1fr);gap:10px}.expense-form-actions{flex-direction:column-reverse;gap:10px}.expense-btn-primary,.expense-btn-secondary{width:100%;padding:16px;font-size:16px;margin-bottom:100px}.expense-form-group input,.expense-input-wrapper input{padding:16px;font-size:16px}.expense-input-wrapper input{padding-left:44px}.expense-currency{left:16px}}.income-modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;padding:20px;box-sizing:border-box;z-index:10000}.income-modal{background:#fff;border-radius:12px;width:100%;max-width:440px;max-height:85vh;overflow:hidden;box-shadow:0 10px 25px #0003;display:flex;flex-direction:column;margin:0 auto;position:relative;z-index:10001}.income-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e5e7eb;background:#fafafa;flex-shrink:0}.income-modal-header h2{margin:0;font-size:20px;font-weight:600;color:#111827}.income-modal-close{background:none;border:none;cursor:pointer;width:32px;height:32px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:20px;color:#6b7280;transition:all .2s}.income-modal-close:hover{background-color:#f3f4f6;color:#374151}.income-modal-body{padding:24px;flex:1}.income-error-message{background:#fef2f2;border:1px solid #fecaca;color:#dc2626;padding:12px 16px;border-radius:8px;margin-bottom:20px;font-size:14px}.income-form-group{margin-bottom:20px}.income-form-group label{display:block;margin-bottom:8px;font-weight:500;color:#374151;font-size:14px}.income-input-wrapper{position:relative}.income-currency{position:absolute;left:12px;top:50%;transform:translateY(-50%);font-weight:600;color:#6b7280;font-size:16px}.income-input-wrapper input{width:100%;padding:12px 12px 12px 36px;border:1px solid #d1d5db;border-radius:8px;font-size:16px;transition:border-color .2s;box-sizing:border-box}.income-form-group input[type=text],.income-form-group input[type=number],.income-form-group input[type=date]{width:100%;padding:12px;border:1px solid #d1d5db;border-radius:8px;font-size:16px;transition:border-color .2s;box-sizing:border-box}.income-form-group input:focus{outline:none;border-color:#10b981;box-shadow:0 0 0 3px #10b9811a}.income-form-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px;padding-top:20px;border-top:1px solid #e5e7eb}.income-btn-primary,.income-btn-secondary{padding:12px 20px;border-radius:8px;font-weight:500;cursor:pointer;transition:all .2s;font-size:14px;border:none}.income-btn-primary{background:#10b981;color:#fff}.income-btn-primary:hover:not(:disabled){background:#059669}.income-btn-primary:disabled{opacity:.6;cursor:not-allowed}.income-btn-secondary{background:#f3f4f6;color:#374151;border:1px solid #d1d5db}.income-btn-secondary:hover{background:#e5e7eb}@media (max-width: 768px){.income-modal-overlay{padding:0;align-items:stretch;z-index:10000}.income-modal{max-width:100%;width:100%;height:100%;max-height:100%;border-radius:0;margin:0;z-index:10001}.income-form-actions{flex-direction:column-reverse;gap:10px}.income-btn-primary,.income-btn-secondary{width:100%;padding:16px;font-size:16px}.income-form-group input,.income-input-wrapper input{padding:16px;font-size:16px}.income-input-wrapper input{padding-left:44px}.income-currency{left:16px}}.expenses-container{min-height:100vh;background:linear-gradient(135deg,#fff,#f5f7fa);padding:20px;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.expenses-header{text-align:center;margin-bottom:30px;color:#fff}.expenses-header h1{font-size:2.5rem;margin-bottom:10px;font-weight:700;text-shadow:2px 2px 4px rgba(0,0,0,.3)}.expenses-header p{font-size:1.1rem;opacity:.9;margin:0}.remaining-budget-card{background:linear-gradient(135deg,#0f0f0f,#121213);border-radius:20px;padding:30px;margin-bottom:25px;box-shadow:0 20px 40px #0000001a;border:1px solid rgba(17,17,17,.2)}.remaining-content{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:center}.remaining-info h2{color:#fff;font-size:1.8rem;margin-bottom:10px;font-weight:600}.remaining-amount{display:flex;align-items:baseline;margin-bottom:10px;justify-content:center}.currency{font-size:2rem;color:#70b0e0;font-weight:700;margin-right:5px;font-family:Arial,Helvetica,sans-serif}.amount{font-size:3.5rem;color:#70b0e0;font-weight:800;line-height:1}.budget-progress{text-align:right}.progress-info{display:flex;justify-content:space-between;margin-bottom:10px;font-size:.9rem;color:#fff;font-weight:500}.progress-bar{width:100%;height:12px;background-color:#e5e7eb;border-radius:6px;overflow:hidden;margin-bottom:8px}.progress-fill{height:100%;background:linear-gradient(90deg,#ec5a04,#e42929);border-radius:6px;transition:width .3s ease}.progress-percentage{font-size:.85rem;color:#fff;font-weight:600}.chart-container{background:transparent;border-radius:20px;padding:20px;margin-bottom:25px;box-shadow:none}.chart-legend{display:flex;justify-content:center;gap:30px;margin-bottom:15px}.legend-item{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600}.legend-color{width:16px;height:16px;border-radius:4px}.expenses-color{background-color:#ef4444}.income-color{background-color:#10b981}.finance-overview{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-bottom:25px;overflow:hidden}.expenses-section,.income-section{padding:30px;position:relative;min-height:250px;border:none}.expenses-section{background:linear-gradient(135deg,#fee2e2,#fecaca);border-radius:20px 0 0 20px}.income-section{background:linear-gradient(135deg,#d1fae5,#a7f3d0);border-radius:0 20px 20px 0}.section-header{display:flex;align-items:center;margin-bottom:20px}.section-icon{font-size:2rem;margin-right:12px}.section-header h3{font-size:1.5rem;font-weight:700;margin:0}.expenses-section h3{color:#991b1b}.income-section h3{color:#065f46}.amount{font-size:2.8rem;font-weight:800;margin-bottom:20px;line-height:1}.expenses-amount{color:#dc2626}.income-amount{color:#059669}.section-details{margin-bottom:25px}.detail-item{display:flex;justify-content:space-between;margin-bottom:8px;font-size:.95rem;font-weight:500}.expenses-section .detail-item{color:#7f1d1d}.income-section .detail-item{color:#064e3b}.horizontal-bar-container{position:absolute;bottom:20px;left:30px;right:30px}.horizontal-bar{height:8px;border-radius:4px;position:relative;overflow:hidden}.expenses-bar{background-color:#ef444433}.income-bar{background-color:#10b98133}.horizontal-fill{height:100%;border-radius:4px;transition:width .5s ease}.expenses-fill{background:linear-gradient(90deg,#f59e0b,#ef4444)}.income-fill{background:linear-gradient(90deg,#10b981,#059669)}.bar-label{position:absolute;top:-25px;left:0;font-size:.8rem;font-weight:600;color:#000000b3}.action-btn{display:flex;align-items:center;justify-content:center;gap:10px;padding:15px 20px;border:none;border-radius:15px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;color:#fff}.add-expense{background:linear-gradient(135deg,#ef4444,#dc2626)}.add-income{background:linear-gradient(135deg,#10b981,#059669)}.view-details{background:linear-gradient(135deg,#6366f1,#4f46e5)}.action-btn:hover{transform:translateY(-2px);box-shadow:0 10px 20px #0003}.btn-icon{font-size:1.2rem}.section-button{border:none;cursor:pointer;transition:all .3s ease;text-align:left;font-family:inherit;position:relative;overflow:hidden}.section-button:hover{transform:translateY(-2px);box-shadow:0 15px 30px #00000026}.section-button:active{transform:translateY(0)}.expenses-section.section-button:hover{background:linear-gradient(135deg,#fecaca,#f87171)}.expenses-section.section-button:focus{outline:none!important}.income-section.section-button:focus{outline:none!important}.income-section.section-button:hover{background:linear-gradient(135deg,#a7f3d0,#6ee7b7)}.add-indicator{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:15px;padding:8px 16px;border-radius:20px;background:#fff3;font-size:.9rem;font-weight:600;opacity:.8;transition:opacity .3s ease}.section-button:hover .add-indicator{opacity:1}.expenses-section .add-indicator{color:#7f1d1d}.income-section .add-indicator{color:#064e3b}.add-icon{font-size:1.1rem}.savings-content{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:center}.savings-amount h3{margin:0 0 10px;font-size:1.2rem;font-weight:600;opacity:.9}.savings-value{display:flex;align-items:baseline;gap:5px}.savings-value .amount{font-size:2.2rem;font-weight:800;color:#fff}.savings-value .currency{font-size:1.5rem;font-weight:700;opacity:.8}.savings-progress-section{text-align:right}.savings-progress-info{display:flex;justify-content:space-between;margin-bottom:8px;font-size:.9rem;font-weight:500;opacity:.9}.savings-progress-bar{width:100%;height:10px;background-color:#ffffff4d;border-radius:5px;overflow:hidden}.savings-progress-fill{height:100%;background:linear-gradient(90deg,#34d399,#fff);border-radius:5px;transition:width .3s ease}@media (max-width: 768px){.expenses-container{padding:15px}.remaining-content{grid-template-columns:1fr;gap:20px;text-align:center}.budget-progress{text-align:center}.finance-overview{grid-template-columns:1fr 1fr;gap:0}.expenses-section,.income-section{padding:20px;min-height:150px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;border:none}.expenses-section{border-radius:20px 0 0 20px}.income-section{border-radius:0 20px 20px 0}.section-header{justify-content:center;margin-bottom:15px}.section-header h3{font-size:1.2rem;text-align:center}.chart-wrapper{height:300px}.chart-container{background:transparent;box-shadow:none}.chart-legend{margin-bottom:15px}.amount{font-size:2rem;margin-bottom:0}.remaining-amount .amount{font-size:2.8rem}.add-indicator{margin-top:10px;font-size:.8rem}.horizontal-bar-container{display:none}}@media (max-width: 480px){.expenses-header h1{font-size:2rem}.remaining-budget-card{padding:15px}.finance-overview{grid-template-columns:1fr 1fr;gap:0}.expenses-section,.income-section{padding:15px;min-height:120px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;border:none}.expenses-section{border-radius:20px 0 0 20px}.income-section{border-radius:0 20px 20px 0}.section-header{margin-bottom:10px}.amount{font-size:1.8rem;margin-bottom:0}.remaining-amount .amount{font-size:2.4rem}.section-header h3{font-size:1.1rem}.add-indicator{font-size:.75rem}.horizontal-bar-container{display:none}}@supports (padding: max(0px)){.expenses-container{padding-bottom:max(105px,calc(105px + env(safe-area-inset-bottom)))}}.analysis-container{min-height:100vh;background:linear-gradient(135deg,#fff,#f8fafc);padding:20px 20px 120px;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;width:100%;max-width:100vw;box-sizing:border-box;overflow-x:hidden}.analysis-header{text-align:center;margin-bottom:30px;width:100%}.analysis-header h1{font-size:2.5rem;font-weight:700;color:#1e293b;margin-bottom:8px}.analysis-header p{color:#64748b;font-size:1.1rem}.analysis-summary{display:flex;justify-content:center;margin-bottom:25px;width:100%}.summary-card.total-only{background:#fff;border-radius:16px;padding:30px 40px;box-shadow:0 4px 6px #0000000d;border:1px solid #e2e8f0;display:flex;align-items:center;gap:20px;transition:transform .2s ease,box-shadow .2s ease;max-width:400px;width:100%;box-sizing:border-box}.summary-card.total-only:hover{transform:translateY(-2px);box-shadow:0 8px 25px #0000001a}.summary-icon svg{width:28px;height:28px;color:#fff}.summary-info h3{font-size:20px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.5px;margin:0}.summary-amount{font-size:28px;font-weight:800;color:#dc2626;margin:0}.analysis-chart-container{background:#fff;border-radius:20px;padding:20px;margin-bottom:25px;box-shadow:0 4px 6px #0000000d;border:1px solid #e2e8f0;width:100%;max-width:100%;box-sizing:border-box;overflow:hidden}.analysis-chart-container h2{text-align:center;font-size:1.5rem;font-weight:700;color:#1e293b;margin-bottom:20px}.chart-wrapper{position:relative;width:100%;height:350px;display:flex;align-items:center;justify-content:center;overflow:hidden}.chart-wrapper *,.chart-wrapper *:focus,.chart-wrapper *:active{outline:none!important;border:none!important}.chart-wrapper svg,.chart-wrapper svg *,.chart-wrapper svg path,.chart-wrapper svg text{outline:none!important;border:none!important}.chart-wrapper{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.recharts-wrapper,.recharts-surface,.recharts-layer,.recharts-pie,.recharts-pie-sector{outline:none!important;border:none!important}.recharts-wrapper *:focus{outline:none!important}.recharts-pie-sector:focus,.recharts-pie-sector:active,.recharts-tooltip-wrapper:focus,.recharts-tooltip-wrapper:active{outline:none!important;border:none!important}.analysis-tooltip{background:#fff;border-radius:8px;padding:12px 16px;box-shadow:0 4px 12px #00000026;border:1px solid #e2e8f0;z-index:1000}.tooltip-category{font-weight:600;color:#1e293b;margin-bottom:4px;font-size:14px}.tooltip-amount{font-size:18px;font-weight:700;color:#6366f1;margin-bottom:4px}.tooltip-percentage{font-size:12px;color:#64748b;margin:0}.analysis-categories{background:#fff;border-radius:20px;padding:30px;box-shadow:0 4px 6px #0000000d;border:1px solid #e2e8f0;width:100%;max-width:100%;box-sizing:border-box}.analysis-categories h2{font-size:1.5rem;font-weight:700;color:#1e293b;margin-bottom:24px;text-align:center}.categories-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;width:100%;box-sizing:border-box}.category-card{background:#f8fafc;border-radius:12px;padding:16px;border:1px solid #e2e8f0;transition:all .2s ease;display:flex;flex-direction:column;align-items:center;text-align:center;min-height:110px;width:100%;box-sizing:border-box}.category-card:hover{background:#f1f5f9;transform:translateY(-2px);box-shadow:0 4px 12px #00000014}.category-card-header{display:flex;flex-direction:column;align-items:center;gap:8px;margin-bottom:12px}.category-color{width:16px;height:16px;border-radius:4px;flex-shrink:0}.category-card h3{font-size:13px;font-weight:600;color:#1e293b;margin:0;line-height:1.3;text-align:center;word-break:break-word;max-width:100%}.category-card-amount{font-size:18px;font-weight:700;color:#1e293b;margin-bottom:6px}.category-card-percentage{font-size:12px;color:#6366f1;font-weight:600}.analysis-loading,.analysis-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;text-align:center;width:100%}.error-message h3{color:#ef4444;margin-bottom:8px}.error-message p{color:#64748b;margin-bottom:16px}.retry-button{background:#6366f1;color:#fff;border:none;padding:12px 24px;border-radius:8px;font-weight:600;cursor:pointer;transition:background-color .2s}.retry-button:hover{background:#4f46e5}.no-data{text-align:center;padding:40px 20px;color:#64748b;background:#fff;border-radius:20px;border:1px solid #e2e8f0;grid-column:1 / -1;width:100%;max-width:100%;box-sizing:border-box;margin:0 0 25px}.analysis-chart-container .no-data{margin:20px 0;padding:30px 15px}.analysis-categories .no-data{grid-column:1 / -1;margin:0;padding:30px 15px}@media (max-width: 768px){.analysis-container{padding:16px 16px 120px;max-width:100vw}.analysis-header h1{font-size:2rem}.summary-card.total-only{padding:20px;flex-direction:column;text-align:center;gap:16px;max-width:100%}.summary-amount{font-size:24px}.analysis-chart-container,.analysis-categories{padding:20px;margin-left:0;margin-right:0}.chart-wrapper{height:280px}.categories-grid{gap:12px;grid-template-columns:1fr 1fr}.category-card{padding:14px;min-height:100px}.category-card-amount{font-size:16px}.category-card h3{font-size:12px}.no-data{padding:25px 15px;font-size:14px}.analysis-chart-container .no-data,.analysis-categories .no-data{padding:20px 10px}}@media (max-width: 480px){.analysis-container{padding:12px 12px 120px}.analysis-header h1{font-size:1.8rem}.chart-wrapper{height:220px}.summary-card.total-only,.analysis-chart-container,.analysis-categories{padding:16px}.categories-grid{grid-template-columns:1fr 1fr;gap:8px}.category-card{padding:12px;min-height:85px}.category-card-amount{font-size:14px}.category-card h3{font-size:11px;line-height:1.2}.category-color{width:14px;height:14px}.category-card-percentage{font-size:10px}.no-data{padding:20px 10px;font-size:13px}.analysis-chart-container .no-data,.analysis-categories .no-data{padding:15px 8px}}@media (max-width: 360px){.analysis-container{padding:8px 8px 120px}.categories-grid{gap:6px}.category-card{padding:10px;min-height:80px}.chart-wrapper{height:200px}.no-data{padding:15px 8px;font-size:12px}.analysis-chart-container .no-data,.analysis-categories .no-data{padding:12px 6px}}@supports (padding: max(0px)){.analysis-container{padding-bottom:max(120px,calc(80px + env(safe-area-inset-bottom)))}}.gym-container{padding:1rem 1rem 80px;background-color:#f8fafc;min-height:100vh;position:relative;width:100%;box-sizing:border-box;margin:0 auto;max-width:1400px;padding-bottom:calc(80px + env(safe-area-inset-bottom,0px));min-height:calc(100vh - 80px - env(safe-area-inset-bottom,0px))}.gym-content-wrapper{width:100%;margin:0 auto}.gym-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;flex-wrap:wrap}.gym-user-info{display:flex;align-items:center;gap:.5rem;flex:1}.gym-avatar{width:40px;height:40px;background-color:#6366f1;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1rem}.gym-header h1{font-size:1.5rem;font-weight:700;color:#1e293b;margin:0}.gym-logout-button{display:flex;align-items:center;gap:.5rem;background-color:#fff;color:#f56565;border:1px solid #f56565;border-radius:15px;padding:.5rem 1rem;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease;margin-left:auto;z-index:5}.gym-logout-button:hover{background-color:#f56565;color:#fff;border:1px solid #f56565!important}.gym-logout-button svg{width:16px;height:16px}.gym-exercise-filters{display:flex;gap:.75rem;margin-bottom:1.5rem;overflow-x:auto;padding-bottom:.5rem;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:.5rem;width:100%;justify-content:center}.gym-exercise-filters::-webkit-scrollbar{display:none}.gym-filter-button{background-color:#fff;border:1px solid #e2e8f0;border-radius:20px;padding:.5rem 1rem;font-size:.875rem;color:#64748b;font-weight:500;white-space:nowrap;cursor:pointer;transition:all .2s}.gym-filter-button.gym-active{background-color:#6366f1;color:#fff;border-color:#6366f1}.gym-filter-button.gym-active:focus{outline:none!important;border:none!important}.gym-exercise-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;margin-bottom:2rem;width:100%;justify-content:center}.gym-exercise-card{background-color:#fff;border-radius:12px;overflow:hidden;box-shadow:0 4px 15px #00000014;cursor:pointer;transition:all .3s ease;height:100%;display:flex;flex-direction:column}.gym-exercise-card:hover{transform:translateY(-4px);box-shadow:0 8px 20px #6366f126}.gym-exercise-image{position:relative;height:180px;overflow:hidden;border-radius:12px 12px 0 0}.gym-exercise-image img{width:100%;height:100%;object-fit:cover}.gym-exercise-badge{position:absolute;top:10px;left:10px;background-color:#6366f1e6;color:#fff;border-radius:20px;padding:.25rem .75rem;font-size:.75rem;font-weight:600}.gym-delete-button{position:absolute;top:10px;left:10px;background-color:#ef4444e6;color:#fff;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:none;cursor:pointer;z-index:10;transition:all .2s}.gym-delete-button:hover{background-color:#dc2626;transform:scale(1.1)}.gym-delete-button svg{width:16px;height:16px}.gym-exercise-info{padding:1rem}.gym-exercise-info h3{margin:0 0 .5rem;font-size:1.125rem;color:#1e293b}.gym-exercise-last-record{display:flex;flex-direction:column;gap:.5rem}.gym-record-date{font-size:.75rem;color:#64748b}.gym-record-sets{display:flex;flex-wrap:wrap;gap:.5rem}.gym-set-pill{background-color:#f1f5f9;color:#475569;border-radius:15px;padding:.25rem .75rem;font-size:.75rem;font-weight:500}.gym-add-exercise-button{position:fixed;bottom:90px;right:20px;width:56px;height:56px;background-color:#6366f1;color:#fff;border:none;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 10px #6366f14d;cursor:pointer;transition:all .2s;z-index:1000;bottom:calc(90px + env(safe-area-inset-bottom,0px))}.gym-add-exercise-button span{font-size:24px!important;font-weight:300!important;line-height:1!important;color:#fff!important;font-family:-apple-system,BlinkMacSystemFont,sans-serif!important;-webkit-font-smoothing:antialiased!important;-moz-osx-font-smoothing:grayscale!important}@media (max-width: 480px){.gym-container{padding-bottom:calc(100px + env(safe-area-inset-bottom,0px))}.gym-add-exercise-button{bottom:calc(95px + env(safe-area-inset-bottom,0px));right:15px}}@supports (padding: max(0px)){.gym-container{padding-bottom:max(100px,calc(100px + env(safe-area-inset-bottom,0px)));min-height:calc(100vh - max(100px,calc(100px + env(safe-area-inset-bottom,0px))))}.gym-add-exercise-button{bottom:max(90px,calc(90px + env(safe-area-inset-bottom,0px)))}}@media (display-mode: standalone){.gym-container{padding-bottom:max(120px,calc(120px + env(safe-area-inset-bottom,0px)))}.gym-add-exercise-button{bottom:max(110px,calc(110px + env(safe-area-inset-bottom,0px)))}}.gym-modal-header{display:flex;align-items:center;padding-bottom:1rem;border-bottom:1px solid rgba(0,0,0,.08);margin-bottom:1.75rem;position:relative}.gym-close-button{background:#f56565;border:none;color:#fff;cursor:pointer;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s;padding:0;box-shadow:0 2px 8px #f5656566}.gym-close-button:hover{background-color:#e53e3e;transform:scale(1.05);box-shadow:0 3px 10px #f5656599}.gym-close-button:active{transform:scale(.95)}.gym-close-button svg{width:18px;height:18px;stroke:#fff;stroke-width:2}.gym-modal-header h2{margin:0;font-size:1.5rem;color:#1a202c;flex:1;font-weight:700}.gym-muscle-tag{background:linear-gradient(135deg,#4a00e0,#8e2de2);color:#fff;border-radius:20px;padding:.5rem 1rem;font-size:.85rem;font-weight:600;box-shadow:0 4px 8px #4a00e040}.gym-exercise-images{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-bottom:1.5rem}.gym-detail-image{height:200px;border-radius:12px;overflow:hidden}.gym-detail-image img{width:100%;height:100%;object-fit:cover}.gym-session-history{margin-bottom:2rem}.gym-session-history h3{font-size:1.25rem;color:#1e293b;margin:0 0 .5rem}.gym-history-date{font-size:.875rem;color:#64748b;margin-bottom:1rem}.gym-sets-container{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem}.gym-set-card{background-color:#f8fafc;border-radius:12px;overflow:hidden}.gym-set-header{display:flex;justify-content:space-between;align-items:center;background-color:#6366f1;color:#fff;padding:.5rem;font-weight:600;font-size:.875rem;text-align:center}.gym-set-details{padding:1rem}.gym-detail-item{display:flex;justify-content:space-between;margin-bottom:.5rem}.gym-detail-item:last-child{margin-bottom:0}.gym-detail-label{font-size:.75rem;color:#64748b}.gym-detail-value{font-size:.875rem;font-weight:600;color:#1e293b}.gym-start-workout-button{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;background-color:#6366f1;color:#fff;border:none;border-radius:8px;padding:1rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.gym-start-workout-button:hover{background-color:#4f46e5}.gym-start-workout-button svg{width:20px;height:20px}.gym-add-exercise-modal{position:fixed;inset:0;background-color:#fff;z-index:1001;padding:1.5rem;overflow-y:auto;animation:slideUp .3s ease-out}.gym-add-exercise-form{display:flex;flex-direction:column;flex:1;overflow-y:auto}.gym-form-group{display:flex;flex-direction:column;gap:.5rem}.gym-form-group label{font-size:.875rem;font-weight:600;color:#1e293b}.gym-form-group input,.gym-form-group select{padding:.75rem;border:1px solid #e2e8f0;border-radius:8px;font-size:1rem;color:#1e293b}.gym-form-group input:focus,.gym-form-group select:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.gym-image-uploader{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem}.gym-upload-placeholder{height:150px;border:2px dashed #e2e8f0;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;cursor:pointer;transition:all .2s}.gym-upload-placeholder:hover{border-color:#6366f1}.gym-upload-placeholder svg{width:24px;height:24px;color:#94a3b8}.gym-upload-placeholder span{font-size:.75rem;color:#64748b}.gym-save-exercise-button{background-color:#6366f1;color:#fff;border:none;border-radius:8px;padding:1rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;margin-top:1rem}.gym-save-exercise-button:hover{background-color:#4f46e5}.gym-workout-modal{position:fixed;inset:0;background-color:#fff;z-index:1001;padding:1.5rem;overflow-y:auto;animation:slideUp .3s ease-out}.gym-workout-form{margin-bottom:1.5rem}.gym-form-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:1rem;margin-bottom:1rem}.gym-add-set-button{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;background-color:#6366f1;color:#fff;border:none;border-radius:8px;padding:.75rem;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s}.gym-add-set-button:hover{background-color:#4f46e5}.gym-add-set-button svg{width:18px;height:18px}.gym-current-sets{margin-bottom:1.5rem}.gym-current-sets h3{font-size:1.25rem;color:#1e293b;margin:0 0 1rem;padding-top:20px}.gym-save-workout-button{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;background-color:#6366f1;color:#fff;border:none;border-radius:8px;padding:1rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.gym-save-workout-button:hover{background-color:#4f46e5}.gym-save-workout-button:disabled{background-color:#94a3b8;cursor:not-allowed}.gym-save-workout-button svg{width:20px;height:20px}.gym-has-image{position:relative;padding:0;border:none}.gym-has-image img{width:100%;height:100%;object-fit:cover;border-radius:8px}@media (min-width: 640px){.gym-exercise-list{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1024px){.gym-exercise-list{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));max-width:1200px;margin:0 auto 2rem}.gym-container{padding:2rem 2rem 70px}}@media (min-width: 1600px){.gym-container{max-width:100%}.gym-modal-view-pc{max-width:1200px;width:90%;position:fixed;left:50%;transform:translate(-50%)}}@media (max-width: 768px){.gym-exercise-filters{background:none;background-color:transparent;padding-left:.5rem;padding-right:.5rem;overflow-x:auto;scroll-snap-type:x proximity;scroll-padding:.5rem;flex-wrap:nowrap;max-width:100%;box-sizing:border-box;-webkit-mask-image:none;mask-image:none;scrollbar-width:none;-webkit-overflow-scrolling:touch}.gym-exercise-filters:before,.gym-exercise-filters:after{display:none}.gym-filter-button{padding:.4rem .6rem;font-size:.8rem;flex-shrink:0;scroll-snap-align:start;white-space:nowrap}}@media (max-width: 480px){.gym-logout-text{display:none}.gym-logout-button{padding:.5rem;border-radius:50%}.gym-form-actions{display:flex;justify-content:space-between;gap:1rem}.gym-form-actions button{min-width:140px}.gym-button-primary,.gym-button-success{flex:0 1 auto;padding:.85rem 1.75rem;transition:transform .2s ease,box-shadow .2s ease}.gym-container{padding-bottom:150px!important}}@media (max-width: 360px){.gym-header{flex-direction:column;align-items:flex-start}.gym-logout-button{position:absolute;top:1rem;right:1rem}.gym-filter-type-button{padding:.35rem .5rem;font-size:.75rem}.gym-filter-button{padding:.3rem .6rem;font-size:.75rem}.gym-header h1{font-size:1.2rem}.gym-exercise-image{height:120px}.gym-button-secondary,.gym-button-primary,.gym-button-success{padding:.6rem 1rem;font-size:.9rem;min-width:auto}.gym-button-secondary span,.gym-button-primary span,.gym-button-success span{display:none}.gym-button-success{font-size:.8rem!important}}@supports (padding: max(0px)){.gym-container{padding-bottom:max(100px,calc(80px + env(safe-area-inset-bottom)));padding-left:max(1rem,env(safe-area-inset-left));padding-right:max(1rem,env(safe-area-inset-right));padding-top:max(1rem,env(safe-area-inset-top))}.gym-add-exercise-button{bottom:max(85px,calc(85px + env(safe-area-inset-bottom)))}}.gym-search-container{margin-bottom:1rem;width:100%;position:relative;max-width:100%;box-sizing:border-box}.gym-search-input{width:100%;padding:.75rem 2.5rem .75rem 1rem;border-radius:8px;border:1px solid #e2e8f0;font-size:.95rem;background-color:#fff;box-sizing:border-box}.gym-search-input:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.gym-filter-type-selector{display:flex;justify-content:center;margin-bottom:.75rem;gap:.5rem;width:100%}.gym-filter-type-button{flex:1;max-width:140px;padding:.45rem .75rem;font-size:.85rem}.gym-clear-search{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;color:#94a3b8;padding:5px;cursor:pointer;border-radius:50%}.gym-clear-search:hover{background-color:#f1f5f9;color:#64748b}.gym-no-results-container{width:100%;display:flex;justify-content:center;align-items:center;margin-bottom:2rem}.gym-no-results{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:3rem 2rem;color:#64748b;font-size:1.1rem;background-color:#f8fafc;border-radius:16px;box-shadow:0 6px 24px #6366f112;width:100%;margin:1.5rem auto;max-width:450px;border:1px solid rgba(99,102,241,.15);position:relative;overflow:hidden}.gym-no-results:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#6366f1,#8b5cf6);z-index:1}.gym-no-results svg{width:60px;height:60px;margin-bottom:1.5rem;color:#8b5cf6;opacity:.8}.gym-no-results p{margin:0 0 1.5rem;font-size:1.1rem;color:#475569;max-width:300px;font-weight:500;line-height:1.5}.gym-reset-filters{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;background-color:#6366f1;color:#fff;border:none;border-radius:8px;padding:.75rem 1.25rem;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 12px #6366f133}.gym-reset-filters:hover{transform:translateY(-2px);background-color:#4f46e5;box-shadow:0 6px 16px #6366f14d}.gym-reset-filters:before{content:"";display:inline-block;width:18px;height:18px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M13.5 2c-5.621 0-10.211 4.443-10.475 10h-3.025l5 6.5 5-6.5h-2.975c.257-3.353 3.06-6 6.475-6 3.584 0 6.5 2.916 6.5 6.5s-2.916 6.5-6.5 6.5a6.453 6.453 0 01-4.5-1.823v3.021a9.485 9.485 0 004.5 1.127c5.247 0 9.5-4.253 9.5-9.5s-4.253-9.5-9.5-9.5z'/%3E%3C/svg%3E");background-size:cover;margin-right:8px}.gym-no-results-container{width:100%;display:flex;justify-content:center;align-items:center;margin:2rem 0 3rem;min-height:300px}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.gym-no-results{animation:fadeInUp .5s ease-out forwards}.gym-exercise-list:has(.gym-no-results){display:flex;justify-content:center;align-items:center}.gym-filter-type-selector{display:flex;justify-content:center;margin-bottom:1rem;gap:.5rem}.gym-filter-type-button{background-color:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;padding:.5rem 1rem;font-size:.9rem;color:#64748b;font-weight:600;cursor:pointer;transition:all .2s}.gym-filter-type-button.gym-active{background-color:#6366f1;color:#fff;border-color:#6366f1}.gym-filter-type-button{flex:1;max-width:140px}.gym-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;color:#6366f1;font-size:1.1rem;font-weight:500}.gym-loading-spinner{width:50px;height:50px;border:3px solid rgba(99,102,241,.2);border-radius:50%;border-top-color:#6366f1;animation:spin 1s ease-in-out infinite;margin-bottom:1rem}@keyframes spin{to{transform:rotate(360deg)}}.gym-add-exercise-modal{position:fixed;inset:0;background-color:#fff;z-index:1001;padding:1.5rem;overflow-y:auto;animation:slideUp .3s ease-out;display:flex;flex-direction:column;-webkit-overflow-scrolling:touch}.gym-stepper{display:flex;align-items:center;justify-content:center;margin:1rem 0 2rem;padding:.5rem;background-color:#f8fafc;border-radius:12px}.gym-step{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:.5rem 0;transition:all .2s ease;position:relative;flex:1;max-width:120px}.gym-step-number{width:32px;height:32px;border-radius:50%;background-color:#e2e8f0;color:#64748b;display:flex;align-items:center;justify-content:center;font-weight:600;transition:all .2s ease}.gym-step-text{font-size:.85rem;color:#64748b;font-weight:500}.gym-step.active .gym-step-number{background-color:#6366f1;color:#fff;box-shadow:0 0 0 4px #6366f133}.gym-step.active .gym-step-text{color:#1e293b;font-weight:600}.gym-step-connector{flex-grow:1;height:2px;background-color:#e2e8f0;margin:0 .5rem;max-width:50px}.gym-form-step{animation:fadeIn .3s ease}.gym-input-wrapper{position:relative;margin-top:.5rem;width:100%}.gym-input-wrapper svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:20px;height:20px;color:#64748b}.gym-input-wrapper input,.gym-input-wrapper select,.gym-input-wrapper textarea{width:100%;padding:.85rem 1rem .85rem 2.75rem;border:1px solid #e2e8f0!important;border-radius:10px;font-size:.95rem;color:#1e293b!important;transition:all .2s;background-color:#fff!important;box-sizing:border-box}#serie-weight,#serie-reps,#serie-position{background-color:#fff!important;color:#1e293b!important}.gym-input-wrapper textarea{min-height:100px;resize:vertical}.gym-input-wrapper input:focus,.gym-input-wrapper select:focus,.gym-input-wrapper textarea:focus{border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a;outline:none}.gym-select{appearance:none;padding-right:2.5rem!important}.gym-select-arrow{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:20px;height:20px;color:#64748b;pointer-events:none}.gym-input-hint{margin:.25rem 0 0;font-size:.75rem;color:#94a3b8}.gym-form-hint{margin:0 0 1rem;font-size:.875rem;color:#64748b}.gym-image-uploader-modern{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:.5rem}.gym-upload-box{height:200px;border:2px dashed #e2e8f0;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;position:relative;overflow:hidden;background-color:#f8fafc}.gym-upload-box:hover{border-color:#6366f1;background-color:#f5f3ff}.gym-upload-box.secondary{background-color:#f1f5f9;border-style:dashed;border-color:#cbd5e1}.gym-upload-content{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:1.5rem;text-align:center}.gym-upload-icon{width:48px;height:48px;color:#6366f1}.gym-upload-label{display:flex;flex-direction:column;gap:.25rem}.gym-primary-text{font-size:1rem;font-weight:600;color:#1e293b}.gym-secondary-text{font-size:.875rem;color:#64748b}.gym-hidden-input{opacity:0;width:0;height:0;position:absolute}.gym-has-image{border:none}.gym-has-image img{width:100%;height:100%;object-fit:cover;display:block}.gym-image-overlay{position:absolute;inset:0;background-color:#0006;opacity:0;transition:opacity .2s;display:flex;align-items:center;justify-content:center}.gym-has-image:hover .gym-image-overlay{opacity:1}.gym-remove-image{background-color:#fff;border:none;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#ef4444}.gym-remove-image svg{width:20px;height:20px}.gym-form-intro{margin-bottom:1.5rem;text-align:center}.gym-form-intro h3{font-size:1.25rem;color:#1e293b;margin:0 0 .5rem}.gym-form-intro p{font-size:.95rem;color:#64748b;max-width:400px;margin:0 auto}.gym-form-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;margin-bottom:1.5rem}.gym-form-row.three-columns{grid-template-columns:repeat(3,1fr)}@media (max-width: 768px){.gym-form-row.three-columns{grid-template-columns:repeat(2,1fr)}}@media (max-width: 480px){.gym-form-row.three-columns,.gym-image-uploader-modern{grid-template-columns:1fr}}.gym-form-group label{display:flex;align-items:center;gap:.5rem;font-size:.95rem;font-weight:600;color:#1e293b}.gym-form-group label svg{width:18px;height:18px;color:#6366f1}.gym-form-notes{background-color:#f0f9ff;border:1px solid #bae6fd;border-radius:12px;padding:1rem;display:flex;align-items:center;gap:1rem}.gym-note-icon{width:32px;height:32px;flex-shrink:0;color:#0ea5e9}.gym-form-notes p{margin:0;font-size:.9rem;color:#0369a1;line-height:1.5}.gym-form-actions{display:flex;justify-content:space-between;margin-top:2rem;padding-top:1rem;border-top:1px solid #e2e8f0}.gym-button-secondary,.gym-button-primary,.gym-button-success{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;border:none}.gym-button-secondary{background-color:#f1f5f9;color:#64748b}.gym-button-primary{background-color:#6366f1;color:#fff;box-shadow:0 4px 12px #6366f133;margin-left:auto}.gym-button-success{background-color:#10b981;color:#fff;box-shadow:0 4px 12px #10b98133;margin-left:auto}.gym-button-secondary svg,.gym-button-primary svg,.gym-button-success svg{width:18px;height:18px}.gym-button-secondary:hover{background-color:#e2e8f0}.gym-button-primary:hover{background-color:#4f46e5;transform:translateY(-2px);box-shadow:0 6px 16px #6366f14d}.gym-button-success:hover{background-color:#059669;transform:translateY(-2px);box-shadow:0 6px 16px #10b9814d}.gym-toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%);min-width:300px;max-width:90%;background-color:#fff;box-shadow:0 4px 15px #00000026;border-radius:10px;padding:1rem;display:flex;align-items:center;gap:.75rem;z-index:2000;animation:slideUp .3s ease-out,fadeOut .3s ease-out 2.7s forwards}.gym-toast.success{border-left:4px solid #10b981}.gym-toast.error{border-left:4px solid #ef4444}.gym-toast.info{border-left:4px solid #3b82f6}.gym-toast-icon{width:24px;height:24px;flex-shrink:0}.gym-toast.success .gym-toast-icon{color:#10b981}.gym-toast.error .gym-toast-icon{color:#ef4444}.gym-toast.info .gym-toast-icon{color:#3b82f6}.gym-toast-content{font-size:.95rem;color:#1e293b;font-weight:500}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.gym-confirm-modal-overlay{position:fixed;inset:0;background-color:#0009;z-index:2000;display:flex;align-items:center;justify-content:center;padding:1rem}.gym-confirm-modal{background-color:#fff;border-radius:12px;padding:1.5rem;width:100%;max-width:400px;animation:fadeIn .3s ease;box-shadow:0 10px 25px #00000026;text-align:center}.gym-confirm-icon{width:60px;height:60px;color:#ef4444;margin:0 auto 1rem}.gym-confirm-modal h3{margin:0 0 1rem;font-size:1.25rem;color:#1e293b}.gym-confirm-modal p{margin:0 0 1.5rem;color:#64748b;line-height:1.5}.gym-confirm-actions{display:flex;gap:1rem;justify-content:center}.gym-confirm-cancel,.gym-confirm-delete{padding:.75rem 1.5rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;flex:1}.gym-confirm-cancel{background-color:#f1f5f9;color:#64748b;border:none}.gym-confirm-cancel:hover{background-color:#e2e8f0}.gym-confirm-delete{background-color:#ef4444;color:#fff;border:none}.gym-confirm-delete:hover{background-color:#dc2626}.gym-delete-button-improved{position:absolute;top:8px;right:8px;background-color:#ffffffe6;border:none;border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;box-shadow:0 2px 4px #0000001a;opacity:.8;transition:all .2s ease;z-index:2}.gym-delete-button-improved svg{color:#dc2626;width:16px;height:16px}.gym-delete-button-improved:hover{opacity:1;background-color:#fff;box-shadow:0 2px 8px #0003;transform:scale(1.05)}.gym-delete-button-improved:active{transform:scale(.95)}.gym-exercise-detail-modal{position:fixed;inset:0;background-color:#fff;z-index:1001;padding:1.5rem;animation:slideUp .3s ease-out;display:flex;flex-direction:column;max-height:100vh;box-sizing:border-box;overflow-y:auto;-webkit-overflow-scrolling:touch}.gym-detail-info-section{margin-top:1.5rem;background-color:#f8fafc;border-radius:12px;padding:1.5rem;margin-bottom:1.5rem}.gym-history-section{margin-top:1.5rem;background-color:#f8fafc;border-radius:12px;padding:1.5rem}.gym-detail-buttons{display:flex;gap:1rem;margin-top:2rem;justify-content:flex-end}.gym-edit-button{display:flex;align-items:center;gap:.5rem;background-color:#6366f1;color:#fff;border:none;border-radius:8px;padding:.75rem 1.25rem;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s}.gym-edit-button svg{width:18px;height:18px}.gym-edit-button:hover{background-color:#4f46e5}.gym-edit-button:focus{border:none!important;outline:none!important}.gym-edit-button:active{border:none!important;outline:none!important}.gym-cancel-button{background-color:#e2e8f0;color:#475569;border:none;border-radius:8px;padding:.75rem 1.25rem;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s}.gym-cancel-button:hover{background-color:#cbd5e1}.gym-cancel-button:focus{border:none!important;outline:none!important}.gym-cancel-button:active{border:none!important;outline:none!important}.gym-save-button{background-color:#10b981;color:#fff;border:none;border-radius:8px;padding:.75rem 1.25rem;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s}.gym-save-button:hover{background-color:#059669}.gym-save-button:focus{border:none!important;outline:none!important}.gym-save-button:active{border:none!important;outline:none!important}.gym-exercise-detail-modal{top:0;transform:translateY(0);height:100%}.gym-remove-serie{background:none;border:none;color:#fff;cursor:pointer;padding:2px}.gym-button-success:disabled{background-color:#94a3b8;cursor:not-allowed;opacity:.7}.gym-record-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.gym-position-badge,.gym-position-badge-large{display:flex;align-items:center;background-color:#f0f9ff;color:#0284c7;border-radius:12px;font-weight:600;white-space:nowrap}.gym-position-badge{padding:.15rem .5rem;font-size:.7rem}.gym-position-badge-large{padding:.25rem .75rem;font-size:.8rem}.position-icon{margin-right:3px;width:12px;height:12px}.gym-set-pill{display:flex;align-items:center;background-color:#f1f5f9;border-radius:15px;padding:.25rem .5rem;font-size:.75rem;font-weight:500;margin-right:.5rem;margin-bottom:.5rem;box-shadow:0 1px 2px #0000000d;border:1px solid #e2e8f0}.gym-set-number{background-color:#6366f1;color:#fff;border-radius:10px;padding:.1rem .35rem;font-size:.65rem;font-weight:600;margin-right:.35rem}.gym-set-data{color:#334155}.gym-record-sets{display:flex;flex-wrap:wrap}.gym-history-header,.gym-record-header{display:flex;justify-content:space-between;align-items:center}.gym-history-header{margin-bottom:1rem}.gym-record-header{margin-bottom:.5rem}.gym-position-badge-large{display:flex;align-items:center;background-color:#f0f9ff;color:#0284c7;border-radius:12px;padding:.25rem .75rem;font-size:.8rem;font-weight:600;white-space:nowrap}.gym-position-badge-large .position-icon{width:16px;height:16px;margin-right:5px}.gym-button-success:focus,.gym-button-secondary:focus{outline:none}.gym-exercise-image-slider{margin-bottom:1.5rem;width:100%}.gym-image-main{position:relative;height:300px;border-radius:12px;overflow:hidden;margin-bottom:.75rem;background-color:#f1f5f9}.gym-image-main img{width:100%;height:100%;object-fit:cover}.gym-slider-prev,.gym-slider-next{position:absolute;top:50%;transform:translateY(-50%);background-color:#0009!important;border:none!important;width:50px!important;height:50px!important;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 8px #0006!important;transition:all .2s ease;z-index:20!important;opacity:1!important}.gym-slider-prev{left:15px}.gym-slider-next{right:15px}.gym-slider-prev:hover,.gym-slider-next:hover{background-color:#000000b3!important;transform:translateY(-50%) scale(1.1)}.gym-slider-prev svg,.gym-slider-next svg{width:24px!important;height:24px!important;color:#fff!important;fill:#fff!important;stroke-width:0!important;display:block!important;opacity:1!important;transform:scale(1.75)}.gym-slider-next:focus{outline:none;border:none!important}.gym-slider-prev:focus{outline:none;border:none!important}.gym-image-thumbs{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:4px}.gym-image-thumbs::-webkit-scrollbar{display:none}.gym-image-thumb{width:60px;height:60px;border-radius:6px;overflow:hidden;cursor:pointer;opacity:.7;transition:all .2s ease;border:2px solid transparent;flex-shrink:0}.gym-image-thumb.active{opacity:1;border-color:#6366f1}.gym-image-thumb img{width:100%;height:100%;object-fit:cover}.gym-no-image{height:200px;background-color:#f1f5f9;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#64748b;font-style:italic}.gym-edit-set-button{background:none;border:none;color:#fff;cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center}.gym-edit-set-button:hover{background-color:#fff3}.gym-set-edit-form{padding:1rem}.gym-set-edit-form .gym-detail-item{margin-bottom:.75rem;display:flex;flex-direction:column;align-items:flex-start}.gym-set-edit-form .gym-detail-label{margin-bottom:.25rem;font-size:.75rem;color:#64748b;width:100%}.gym-detail-input{width:100%;padding:.5rem;border:1px solid #e2e8f0;border-radius:6px;font-size:.875rem;box-sizing:border-box}.gym-set-edit-actions{display:flex;gap:.5rem;margin-top:.75rem}.gym-set-save-button,.gym-set-cancel-button{padding:.5rem;border-radius:6px;font-size:.75rem;font-weight:600;flex:1;cursor:pointer;transition:all .2s;border:none}.gym-set-save-button{background-color:#10b981;color:#fff}.gym-set-save-button:hover{background-color:#059669}.gym-set-cancel-button{background-color:#e5e7eb;color:#4b5563}.gym-set-cancel-button:hover{background-color:#d1d5db}@media (min-width: 1024px){.gym-exercise-detail-modal{max-width:100%;margin:0 auto;padding:2rem}.gym-modal-detalle-pc{max-width:1200px;margin:0 auto}.gym-detail-layout{display:grid;grid-template-columns:1fr 1fr;gap:2rem}.gym-image-main{height:400px}.gym-sets-container{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}}.gym-modal-overlay{position:fixed;inset:0;background-color:#00000080;z-index:1000}.no-scroll{overflow:hidden;position:fixed;width:100%;height:100%}.gym-filter-type-button.gym-active:focus{outline:none;border:none}.gym-routine-button-container{display:flex;align-items:center;position:relative}.gym-add-routine-button{position:absolute;right:0;top:50%;transform:translateY(-50%);width:24px;height:24px;border-radius:50%;background-color:#6366f1;display:flex;align-items:center;justify-content:center;border:none;color:#fff;cursor:pointer;margin-right:-10px;box-shadow:0 2px 4px #0000001a;z-index:2}.gym-add-routine-button:hover{background-color:#4f46e5;transform:translateY(-50%) scale(1.1)}.gym-routine-modal{position:fixed;inset:0;background-color:#fff;z-index:1001;padding:1.5rem;overflow-y:auto;animation:slideUp .3s ease-out;display:flex;flex-direction:column;-webkit-overflow-scrolling:touch}.gym-routine-form{margin-top:1.5rem}.gym-muscle-selector{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.gym-muscle-chip{padding:.5rem 1rem;border-radius:20px;background-color:#f1f5f9;color:#64748b;border:1px solid #e2e8f0;cursor:pointer;transition:all .2s}.gym-muscle-chip.selected{background-color:#6366f1;color:#fff;border-color:#4f46e5}.gym-button-danger{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;border:none;background-color:#ef4444;color:#fff}.gym-button-danger:hover{background-color:#dc2626}.gym-day-muscles{display:flex;gap:.5rem;margin-top:.5rem}.gym-day-muscle-pill{padding:.25rem .75rem;border-radius:16px;background-color:#f1f5f9;color:#64748b;font-size:.8rem;cursor:pointer}.gym-day-muscle-pill.active{background-color:#6366f1;color:#fff}.gym-add-routine-filter-button{background-color:#4f46e5;color:#fff;display:flex;align-items:center;gap:5px;font-weight:500}.gym-add-routine-filter-button:hover{background-color:#4338ca}.gym-edit-routine-icon{margin-left:6px;opacity:.6;cursor:pointer;display:inline-flex;vertical-align:middle}.gym-edit-routine-icon:hover{opacity:1}.gym-routine-muscles-filters{display:flex;justify-content:center;gap:.5rem;padding:.5rem 1rem;margin-top:0;margin-bottom:.75rem;overflow-x:auto;scrollbar-width:none;border-top:1px solid #e5e7eb;background-color:#f8fafc;border-radius:0 0 12px 12px}.gym-routine-muscles-filters::-webkit-scrollbar{display:none}.gym-muscle-filter-button{background-color:#f3f4f6;border:1px solid #e5e7eb;color:#4b5563;padding:.3rem .8rem;border-radius:16px;font-size:.8rem;white-space:nowrap;cursor:pointer;transition:all .2s}.gym-muscle-filter-button.gym-active{background-color:#6366f1;color:#fff;border-color:#6366f1}.gym-muscle-filter-with-edit{display:flex;align-items:center;position:relative}.gym-edit-routine-icon-muscle{position:absolute;right:-12px;top:-12px;background-color:#fff;border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 1px 3px #0003;opacity:.8;transition:all .2s}.gym-edit-routine-icon-muscle:hover{opacity:1;transform:scale(1.1);box-shadow:0 2px 5px #00000040}.gym-edit-routine-icon-muscle svg{color:#6366f1;width:14px;height:14px}.gym-edit-routine-button{display:flex;align-items:center;gap:6px;background-color:#fff;color:#4f46e5;border:1px solid #4f46e5;padding:.3rem .8rem;border-radius:16px;font-size:.8rem;white-space:nowrap;cursor:pointer;transition:all .2s;font-weight:500}.gym-edit-routine-button:hover{background-color:#4f46e5;color:#fff;transform:translateY(-1px);box-shadow:0 2px 4px #4f46e533}.gym-edit-routine-button svg{width:14px;height:14px}.gym-edit-images-button{position:absolute;bottom:15px;right:15px;width:40px;height:40px;border-radius:50%;background-color:#6366f1e6;color:#fff;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 8px #0003;transition:all .2s ease;z-index:20;padding:0}.gym-edit-images-button:hover{background-color:#4f46e5;transform:scale(1.1)}.gym-edit-images-button svg{width:18px;height:18px;fill:currentColor;stroke:currentColor;display:block;stroke-width:0}.gym-edit-images-container{padding:1rem 0}.gym-edit-images-container h3{font-size:1.25rem;margin:0 0 .5rem;color:#1e293b}.gym-edit-images-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:1.5rem}.gym-delete-routine-button{background-color:#ef4444;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:6px;margin-left:auto;transition:background-color .2s ease}.gym-delete-routine-button:hover{background-color:#dc2626}.gym-modal-header{display:flex;align-items:center;padding:16px;border-bottom:1px solid rgba(0,0,0,.1);position:relative}.gym-modal-header h2{margin:0;flex-grow:1;text-align:center}.gym-exercise-filters,.gym-routine-muscles-filters{display:flex;gap:.75rem;margin-bottom:1.5rem;overflow-x:auto;padding-bottom:.5rem;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:.5rem;width:100%}@media (max-width: 768px){.gym-exercise-filters,.gym-routine-muscles-filters{justify-content:flex-start;padding-left:1rem;scroll-padding-left:1rem;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;scroll-snap-align:start}.gym-filter-button,.gym-muscle-filter-button,.gym-add-routine-filter-button,.gym-edit-routine-button{scroll-snap-align:start;flex-shrink:0}.gym-exercise-filters:before,.gym-routine-muscles-filters:before{content:"";padding-left:.5rem;height:1px;display:block;flex:0 0 0}}.gym-routine-muscles-filters{background-color:#f8fafc;border-radius:0 0 12px 12px;padding-top:.5rem;padding-bottom:.5rem}@supports (padding: max(0px)){.gym-add-exercise-modal{padding-bottom:max(120px,calc(80px + env(safe-area-inset-bottom)))}}@supports (padding: max(0px)){.gym-exercise-detail-modal{padding-bottom:max(120px,calc(80px + env(safe-area-inset-bottom)))}}.page-container{padding:1rem 1rem 70px;background-color:#f8fafc;min-height:100vh;position:relative}.page-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.page-header h1{font-size:1.5rem;font-weight:700;color:#1e293b;margin:0}.avatar{width:40px;height:40px;background-color:#6366f1;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1rem}.content-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:calc(100vh - 130px);text-align:center;color:#64748b;background-color:#fff;border-radius:12px;padding:2rem;box-shadow:0 1px 3px #0000001a}.content-placeholder p{font-size:1.1rem;max-width:400px;margin:0}.meal-container{padding:1rem 1rem 80px;background-color:#f8fafc;min-height:100vh;position:relative;width:100%;box-sizing:border-box;margin:0 auto;max-width:1400px;padding-bottom:100px}.meal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;flex-wrap:wrap}.meal-user-info{display:flex;align-items:center;gap:.5rem;flex:1}.meal-avatar{width:40px;height:40px;background-color:#6366f1;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1rem}.meal-header h1{font-size:1.5rem;font-weight:700;color:#1e293b;margin:0}.meal-logout-button{display:flex;align-items:center;gap:.5rem;background-color:#fff;color:#f56565;border:1px solid #f56565;border-radius:15px;padding:.5rem 1rem;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease;margin-left:auto;z-index:5}.meal-logout-button:hover{background-color:#f56565;color:#fff;border:1px solid #f56565!important}.meal-logout-button svg{width:16px;height:16px}.meal-date-selector{display:flex;align-items:center;justify-content:space-between;padding:8px 16px 16px;border-bottom:1px solid #eee}.meal-date-display{display:flex;flex-direction:column;align-items:center}.meal-date-day{font-weight:600;text-transform:capitalize;font-size:18px;color:var(--primary-color)}.meal-date-full{color:#666;font-size:14px}.meal-date-nav-btn{background:none;border:none;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#555}.meal-date-nav-btn:hover{background-color:#f0f0f0}.meal-summary{padding:16px}.meal-macros-card{background-color:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000d;padding:20px}.meal-macros-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.meal-macros-header h2{font-size:18px;margin:0}.meal-calories-large{font-size:24px;font-weight:600;color:var(--primary-color)}.meal-calories-progress{margin-bottom:20px}.meal-progress-bar{height:8px;background-color:#f0f0f0;border-radius:4px;margin-bottom:4px;overflow:hidden}.meal-progress-fill{height:100%;background-color:var(--primary-color);border-radius:4px;transition:width .3s ease}.meal-calories-label{text-align:right;font-size:12px;color:#888}.meal-macros-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.meal-macro-item{display:flex;flex-direction:column}.meal-macro-name{font-size:14px;color:#666;margin-bottom:4px}.meal-macro-value{font-weight:600;margin-bottom:6px}.meal-macro-bar{height:4px;background-color:#f0f0f0;border-radius:2px;overflow:hidden}.meal-macro-fill{height:100%;border-radius:2px;transition:width .3s ease}.meal-macro-bar.carbs .meal-macro-fill{background-color:#4caf50}.meal-macro-bar.protein .meal-macro-fill{background-color:#2196f3}.meal-macro-bar.fat .meal-macro-fill{background-color:#ffc107}.meal-logs-container{padding:0 16px 16px}.meal-log-card{background-color:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000d;margin-bottom:16px;overflow:hidden}.meal-log-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid #f0f0f0}.meal-log-header h3{margin:0;font-size:16px}.meal-log-calories{font-weight:600;color:#666}.meal-add-button{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background-color:var(--primary-color, #6366f1);color:#fff;border:none;border-radius:50%;cursor:pointer;transition:transform .2s;box-shadow:0 2px 4px #0000001a}.meal-add-button:hover{transform:scale(1.1);background-color:#4f46e5}.meal-library-list{padding:12px 16px;flex:1;overflow-y:auto;max-height:calc(100vh - 200px)}.meal-library-item{display:flex;align-items:center;justify-content:space-between;padding:12px;background-color:#fff;margin-bottom:8px;border-radius:12px;box-shadow:0 1px 3px #0000000d}.meal-library-item-info{display:flex;align-items:center;flex:1}.meal-library-item-details{margin-left:12px;flex:1}.meal-library-item-actions{display:flex;gap:8px}.meal-add-new-btn{display:flex;align-items:center;gap:8px;background-color:var(--primary-color, #6366f1);color:#fff;border:none;border-radius:8px;padding:8px 16px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap}.meal-add-new-btn:hover{background-color:#4f46e5}.meal-add-new-btn svg{width:16px;height:16px}.meal-no-results{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px 20px;color:#94a3b8}.meal-no-results p{margin-top:16px;font-size:16px}.meal-delete-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;background-color:#fee2e2;color:#ef4444;border:none;cursor:pointer;transition:all .2s}.meal-delete-btn:hover{background-color:#fecaca}@media (max-width: 640px){.logout-button span{display:none}.logout-button{padding:.4rem}.feature-coming-soon{padding:1.5rem}}@media (max-width: 768px){.meal-add-new-btn span{display:none}.meal-add-new-btn,.meal-library-list{padding:8px}}.meal-library-modal{background-color:#f9f9f9}.meal-library-actions{display:flex;padding:12px 16px;background-color:#fff;border-bottom:1px solid #eee;gap:12px;align-items:center}.meal-library-actions .meal-search-input-wrapper{flex:1}.meal-add-new-btn{background-color:var(--primary-color);color:#fff;border:none;border-radius:8px;padding:12px 16px;font-weight:500;cursor:pointer;display:flex;align-items:center;white-space:nowrap}.meal-add-new-btn svg{margin-right:8px}.meal-library-list{padding:8px 16px;flex:1;overflow-y:auto}.meal-library-item{background-color:#fff;border-radius:12px;margin-bottom:12px;box-shadow:0 2px 6px #0000000d;display:flex;align-items:center;overflow:hidden}.meal-library-item-info{display:flex;flex:1;padding:16px;cursor:pointer}.meal-library-item-details{flex:1}.meal-library-item-actions{display:flex;padding:0 16px;border-left:1px solid #f5f5f5}.meal-favorite-btn,.meal-delete-btn{background:none;border:none;padding:8px;cursor:pointer}.meal-favorite-btn{color:#ccc}.meal-favorite-btn.active{color:#f44336}.meal-delete-btn{color:#999}.meal-delete-btn:hover{color:#d32f2f}.meal-form-modal{background-color:#f9f9f9;z-index:1100}.meal-form{flex:1;display:flex;flex-direction:column;overflow:hidden}.meal-form-fields{padding:16px;flex:1;overflow-y:auto;background-color:#fff;border-radius:12px;margin:16px;box-shadow:0 2px 8px #0000000d}.meal-form-group{margin-bottom:16px}.meal-form-group label{display:block;margin-bottom:8px;color:#555;font-weight:500}.meal-form-group input,.meal-form-group textarea,.meal-form-group select{width:100%;padding:12px;border:1px solid #ddd;border-radius:8px;background-color:#fff;font-size:16px}.meal-form-group textarea{resize:vertical;min-height:80px}.meal-form-row{display:flex;gap:12px;margin-bottom:16px}.meal-form-row .meal-form-group{flex:1;margin-bottom:0}.meal-serving-input{display:flex;gap:8px}.meal-serving-input input{flex:1}.meal-serving-input select{width:auto}.meal-form-checkbox{display:flex;align-items:center;margin:16px 0}.meal-form-checkbox input{margin-right:8px}.meal-form-image{padding:16px;display:flex;flex-direction:column;align-items:center}.meal-form-image-preview{width:120px;height:120px;border-radius:16px;overflow:hidden;margin-bottom:12px;background-color:#f0f0f0;display:flex;align-items:center;justify-content:center}.meal-form-image-preview img{width:100%;height:100%;object-fit:cover}.meal-form-image-placeholder svg{width:48px;height:48px;color:#bbb}.meal-form-image-upload{background-color:var(--primary-color);color:#fff;border-radius:8px;padding:8px 16px;cursor:pointer;font-weight:500}.meal-form-image-upload input{display:none}.meal-form-error{background-color:#ffebee;color:#c62828;padding:12px;border-radius:8px;margin:16px}.meal-form-actions{display:flex;padding:16px;gap:12px;border-top:1px solid #eee;background-color:#fff}.meal-cancel-btn,.meal-submit-btn{flex:1;padding:14px;border-radius:8px;font-weight:500;cursor:pointer;font-size:16px}.meal-cancel-btn{background-color:#f5f5f5;border:1px solid #ddd;color:#666}.meal-submit-btn{background-color:var(--primary-color);border:none;color:#fff}.meal-submit-btn:disabled{background-color:#ccc}.meal-group-form-container{display:flex;flex:1;overflow:hidden}.meal-group-form-left,.meal-group-form-right{flex:1;overflow-y:auto;padding:16px}.meal-group-form-left{background-color:#fff}.meal-group-foods-list{max-height:400px;overflow-y:auto;background-color:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000d;margin-top:16px}.meal-group-food-item{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #f5f5f5}.meal-group-food-info{display:flex;flex:1}.meal-group-food-details{flex:1}.meal-group-food-quantity{display:flex;align-items:center;gap:8px}.meal-group-food-quantity input{width:60px;padding:8px;border:1px solid #ddd;border-radius:6px;text-align:center}.meal-group-food-quantity span{color:#666}.meal-group-selected-summary{margin-top:16px;padding:12px;background-color:#f5f5f5;border-radius:8px}.meal-group-selected-count{font-weight:500;color:#666}@media (max-width: 768px){.meal-group-form-container{flex-direction:column}.meal-group-form-left,.meal-group-form-right{width:100%}.meal-logout-button{padding:.5rem;border-radius:50%}.meal-nutrition-grid{grid-template-columns:1fr}.meal-add-new-btn span{display:none}.meal-macros-grid{grid-template-columns:1fr}}.meal-modal{position:fixed;inset:0;background-color:#fff;z-index:1001;display:flex;flex-direction:column;overflow-y:auto;animation:slideUp .3s ease-out;-webkit-overflow-scrolling:touch}.meal-modal.meal-library-modal{background-color:#f9f9f9}.meal-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid #eee;background-color:#fff}.meal-modal-header h2{margin:0;font-size:18px;font-weight:600}.meal-close-button{background:none;border:none;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;cursor:pointer}.meal-close-button:hover{background-color:#f5f5f5}.meal-close-button svg{width:20px;height:20px;color:#666}.meal-add-food-fab{position:fixed;bottom:80px;right:20px;width:56px;height:56px;background-color:#6366f1;color:#fff;border:none;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 10px #6366f14d;cursor:pointer;transition:all .2s;z-index:999}.meal-add-food-fab:hover{transform:scale(1.05);background-color:#4f46e5}.meal-add-food-fab svg{width:24px;height:24px}.meal-tabs{display:flex;background-color:#fff;border-bottom:1px solid #eee}.meal-tab{flex:1;text-align:center;padding:14px;background:none;border:none;font-weight:500;color:#666;cursor:pointer;position:relative}.meal-tab.active{color:#6366f1}.meal-tab.active:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background-color:#6366f1}.meal-tab:focus{outline:none}.meal-search{padding:12px 16px;background-color:#fff}.meal-search-input-wrapper{position:relative;display:flex;align-items:center;background-color:#f5f5f5;border-radius:8px;overflow:hidden}.meal-search-input-wrapper svg{margin-left:12px;color:#999}.meal-search-input-wrapper input{flex:1;border:none;padding:12px;background:none;font-size:16px}.meal-search-input-wrapper input:focus{outline:none}.meal-clear-search{background:none;border:none;padding:8px;color:#999;cursor:pointer}.meal-items-list{flex:1;overflow-y:auto;padding:8px 16px 80px}.meal-food-item{display:flex;align-items:center;padding:12px;background-color:#fff;margin-bottom:8px;border-radius:12px;box-shadow:0 2px 6px #0000000d;cursor:pointer}.meal-food-image{width:50px;height:50px;border-radius:8px;overflow:hidden;background-color:#f0f0f0;margin-right:12px}.meal-food-image img{width:100%;height:100%;object-fit:cover}.meal-placeholder-image{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.meal-placeholder-image svg{width:24px;height:24px;color:#bbb}.meal-food-info{flex:1}.meal-food-name{font-weight:500;margin-bottom:4px}.meal-food-macros{font-size:14px;color:#666}.meal-food-action{color:#999}.meal-no-results{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 0;color:#999}.meal-no-results svg{margin-bottom:12px;color:#ccc}@keyframes slideUp{0%{transform:translateY(80px);opacity:0}to{transform:translateY(0);opacity:1}}.meal-no-scroll{overflow:hidden;position:fixed;width:100%;height:100%}@media (min-width: 1600px){.meal-container{max-width:100%}}@media (max-width: 360px){.meal-header h1{font-size:1.2rem}.meal-logout-button{position:absolute;top:1rem;right:1rem}}:root{--primary: #137fec;--primary-dark: #0d5fb8;--primary-light: #4da3f7;--background-dark: #101922;--surface-dark: #192633;--surface-light: #1e3044;--card-bg: rgba(25, 38, 51, .8);--card-border: rgba(255, 255, 255, .1);--text-primary: #ffffff;--text-secondary: rgba(255, 255, 255, .7);--text-muted: rgba(255, 255, 255, .5);--accent-green: #10b981;--accent-purple: #8b5cf6;--accent-orange: #f59e0b;--accent-pink: #ec4899;--gradient-primary: linear-gradient(135deg, #137fec 0%, #4da3f7 100%);--gradient-hero: linear-gradient(135deg, rgba(19, 127, 236, .2) 0%, rgba(139, 92, 246, .1) 100%);--shadow-glow: 0 0 40px rgba(19, 127, 236, .3);--transition-fast: .2s ease;--transition-medium: .3s ease;--transition-slow: .5s ease;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 20px;--radius-xl: 24px}.portfolio-bento *{margin:0;padding:0;box-sizing:border-box}.portfolio-bento{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background-color:var(--background-dark);color:var(--text-primary);min-height:100vh;overflow-x:hidden;position:relative}body:has(.portfolio-bento) .bottom-nav-container,body:has(.portfolio-bento) .bottom-nav{display:none!important}body:has(.portfolio-bento),html:has(.portfolio-bento){overflow-x:hidden;scroll-behavior:smooth}.portfolio-ambient{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0;overflow:hidden}.ambient-orb{position:absolute;border-radius:50%;filter:blur(80px);opacity:.4;animation:float 20s ease-in-out infinite}.ambient-orb-1{width:600px;height:600px;background:radial-gradient(circle,rgba(19,127,236,.4) 0%,transparent 70%);top:-10%;left:-10%;animation-delay:0s}.ambient-orb-2{width:500px;height:500px;background:radial-gradient(circle,rgba(139,92,246,.3) 0%,transparent 70%);top:50%;right:-15%;animation-delay:-7s}.ambient-orb-3{width:400px;height:400px;background:radial-gradient(circle,rgba(16,185,129,.25) 0%,transparent 70%);bottom:-10%;left:30%;animation-delay:-14s}@keyframes float{0%,to{transform:translate(0) scale(1)}25%{transform:translate(30px,-30px) scale(1.05)}50%{transform:translate(-20px,20px) scale(.95)}75%{transform:translate(20px,10px) scale(1.02)}}.portfolio-header{position:fixed;top:0;left:0;right:0;z-index:1000;padding:1rem 2rem;background:#101922cc;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--card-border);transition:var(--transition-medium)}.header-content{max-width:1400px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.header-logo{display:flex;align-items:center;gap:.75rem}.logo-icon{width:40px;height:40px;background:var(--gradient-primary);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.1rem;color:#fff}.logo-text{font-size:1.25rem;font-weight:700;color:var(--text-primary)}.header-nav{display:flex;gap:.5rem}.header-nav a{color:var(--text-secondary);text-decoration:none;padding:.5rem 1rem;border-radius:var(--radius-md);font-size:.9rem;font-weight:500;transition:var(--transition-fast)}.header-nav a:hover,.header-nav a.active{color:var(--text-primary)!important;background:#ffffff0d}.header-cta{display:flex;gap:.75rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.6rem 1.25rem;border-radius:var(--radius-md);font-size:.9rem;font-weight:500;text-decoration:none;cursor:pointer;border:none;transition:var(--transition-fast)}.btn-primary{background:var(--gradient-primary);color:#fff;box-shadow:0 4px 15px #137fec4d}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #137fec66;color:#fff}.btn-secondary{background:#ffffff0d;color:var(--text-primary);border:1px solid var(--card-border)}.btn-secondary:hover{background:#ffffff1a;border-color:#fff3}.mobile-menu-btn{display:none;flex-direction:column;gap:5px;padding:.5rem;background:none;border:none;cursor:pointer}.mobile-menu-btn span{width:24px;height:2px;background:var(--text-primary);transition:var(--transition-fast)}.portfolio-main{position:relative;z-index:1;padding-top:80px}.hero-section{min-height:calc(100vh - 80px);display:flex;align-items:center;padding:4rem 2rem}.hero-container{max-width:1400px;margin:0 auto;width:100%}.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}.hero-content{max-width:600px}.hero-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#137fec26;border:1px solid rgba(19,127,236,.3);border-radius:50px;font-size:.85rem;color:var(--primary-light);margin-bottom:1.5rem}.hero-badge-dot{width:8px;height:8px;background:var(--accent-green);border-radius:50%;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.hero-title{font-size:3.5rem;font-weight:800;line-height:1.1;margin-bottom:1rem;background:linear-gradient(135deg,#fff,#fffc);-webkit-background-clip:text;background-clip:text;color:transparent}.hero-title-highlight{background:var(--gradient-primary);-webkit-background-clip:text;background-clip:text;color:transparent}.hero-subtitle{font-size:1.25rem;color:var(--text-secondary);line-height:1.6;margin-bottom:2rem}.hero-buttons{display:flex;gap:1rem;margin-bottom:3rem}.hero-stats{display:flex;gap:2.5rem}.stat-item{text-align:left}.stat-number{font-size:2rem;font-weight:700;color:var(--text-primary)!important;margin-bottom:.25rem}.stat-number span{color:var(--primary)}.stat-label{font-size:.85rem;color:var(--text-muted)}.hero-visual{position:relative;display:flex;justify-content:center;align-items:center}.hero-image-container{position:relative;width:380px;height:380px}.hero-image-glow{position:absolute;inset:-20px;background:var(--gradient-primary);border-radius:50%;opacity:.3;filter:blur(40px);animation:pulse-glow 4s ease-in-out infinite}@keyframes pulse-glow{0%,to{opacity:.3;transform:scale(1)}50%{opacity:.5;transform:scale(1.05)}}.hero-image{position:relative;width:100%;height:100%;border-radius:50%;overflow:hidden;border:4px solid rgba(255,255,255,.1);z-index:1}.hero-image img{width:100%;height:100%;object-fit:cover}.floating-badge{position:absolute;background:var(--card-bg);backdrop-filter:blur(10px);border:1px solid var(--card-border);padding:.75rem 1rem;border-radius:var(--radius-lg);display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--text-primary);z-index:2;animation:float-badge 6s ease-in-out infinite}.floating-badge.top-left{top:20%;left:-30px;animation-delay:0s}.floating-badge.top-right{top:10%;right:-40px;animation-delay:-2s}.floating-badge.bottom-right{bottom:15%;right:-30px;animation-delay:-4s}@keyframes float-badge{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.badge-icon{width:32px;height:32px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center}.badge-icon.react{background:#61dafb33;color:#61dafb}.badge-icon.python{background:#3776ab33;color:#3776ab}.badge-icon.laravel{background:#ff2d2033;color:#ff2d20}.section{padding:5rem 2rem}.section-container{max-width:1400px;margin:0 auto}.section-header{text-align:center;margin-bottom:3rem}.section-title{font-size:2.5rem;font-weight:700;margin-bottom:1rem;color:var(--text-primary)}.section-subtitle{font-size:1.1rem;color:var(--text-secondary);max-width:600px;margin:0 auto}.bento-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:1.5rem}.bento-card{background:var(--card-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--card-border);border-radius:var(--radius-xl);padding:1.5rem;transition:var(--transition-medium);position:relative;overflow:hidden}.bento-card:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent)}.bento-card:hover{transform:translateY(-5px);border-color:#ffffff26;box-shadow:0 20px 40px #0000004d}.bento-card.span-6{grid-column:span 6}.bento-card.span-4{grid-column:span 4}.bento-card.span-3{grid-column:span 3}.bento-card.span-8{grid-column:span 8}.bento-card.span-12{grid-column:span 12}.card-icon{width:48px;height:48px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;margin-bottom:1rem;font-size:1.5rem}.card-icon.blue{background:#137fec33;color:var(--primary)}.card-icon.green{background:#10b98133;color:var(--accent-green)}.card-icon.purple{background:#8b5cf633;color:var(--accent-purple)}.card-icon.orange{background:#f59e0b33;color:var(--accent-orange)}.card-title{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin-bottom:.5rem}.card-description{font-size:.95rem;color:var(--text-secondary);line-height:1.6}.skills-container{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}.skills-group{background:var(--card-bg);backdrop-filter:blur(20px);border:1px solid var(--card-border);border-radius:var(--radius-lg);padding:1.5rem;transition:var(--transition-medium)}.skills-group:hover{border-color:#137fec4d;transform:translateY(-5px);box-shadow:0 20px 40px #0000004d}.skills-group-title{display:flex;align-items:center;gap:.75rem;font-size:1.1rem;font-weight:600;color:var(--text-primary);margin-bottom:1.25rem;padding-bottom:.75rem;border-bottom:1px solid var(--card-border)}.skills-group-icon{width:12px;height:12px;border-radius:50%;flex-shrink:0}.skills-group-icon.blue{background:var(--primary);box-shadow:0 0 10px #137fec80}.skills-group-icon.green{background:var(--accent-green);box-shadow:0 0 10px #10b98180}.skills-group-icon.purple{background:var(--accent-purple);box-shadow:0 0 10px #8b5cf680}.skills-group-icon.orange{background:#f59e0b;box-shadow:0 0 10px #f59e0b80}.skills-group-icon.cyan{background:#06b6d4;box-shadow:0 0 10px #06b6d480}.skills-group-icon.pink{background:#ec4899;box-shadow:0 0 10px #ec489980}.skills-list{display:flex;flex-direction:column;gap:1rem}.skill-bar-item{display:flex;flex-direction:column;gap:.4rem}.skill-bar-header{display:flex;justify-content:space-between;align-items:center}.skill-bar-name{font-size:.9rem;color:var(--text-primary);font-weight:500}.skill-bar-percent{font-size:.8rem;color:var(--text-muted);font-weight:600}.skill-bar-track{width:100%;height:8px;background:#ffffff14;border-radius:10px;overflow:hidden;position:relative}.skill-bar-fill{height:100%;background:linear-gradient(90deg,var(--primary),var(--primary-light));border-radius:10px;position:relative;transition:width 1s ease-out}.skill-bar-fill:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 50%,transparent 100%);animation:shimmer 2s infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.skill-bar-fill.green{background:linear-gradient(90deg,var(--accent-green),#34d399)}.skill-bar-fill.purple{background:linear-gradient(90deg,var(--accent-purple),#a78bfa)}.skill-bar-fill.orange{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.skill-bar-fill.cyan{background:linear-gradient(90deg,#06b6d4,#22d3ee)}.skill-bar-fill.pink{background:linear-gradient(90deg,#ec4899,#f472b6)}.timeline{position:relative;padding-left:2rem}.timeline:before{content:"";position:absolute;left:7px;top:0;bottom:0;width:2px;background:linear-gradient(180deg,var(--primary) 0%,var(--accent-purple) 50%,var(--accent-green) 100%);border-radius:2px}.timeline-item{position:relative;padding-bottom:2rem;padding-left:1.5rem}.timeline-item:last-child{padding-bottom:0}.timeline-dot{position:absolute;left:-2rem;top:0;width:16px;height:16px;border-radius:50%;background:var(--primary);border:3px solid var(--background-dark);z-index:1}.timeline-date{font-size:.85rem;color:var(--primary);font-weight:600;margin-bottom:.5rem}.timeline-title{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin-bottom:.25rem}.timeline-company{font-size:.9rem;color:var(--text-secondary);margin-bottom:.75rem}.timeline-description{font-size:.9rem;color:var(--text-muted);line-height:1.6;margin-bottom:.75rem}.timeline-tags{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.tag{padding:.25rem .75rem;background:#137fec26;border:1px solid rgba(19,127,236,.3);border-radius:50px;font-size:.75rem;color:var(--primary-light);font-weight:500}.project-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-xl);overflow:hidden;transition:var(--transition-medium)}.project-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-glow)}.project-image{height:200px;background:var(--surface-dark);display:flex;align-items:center;justify-content:center;font-size:3rem;color:var(--text-muted);position:relative;overflow:hidden}.project-image img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}.bento-card:hover .project-image img{transform:scale(1.05)}.project-image:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,var(--card-bg) 100%);pointer-events:none}.project-content{padding:1.5rem}.project-title{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin-bottom:.5rem}.project-description{font-size:.9rem;color:var(--text-secondary);line-height:1.6;margin-bottom:1rem}.project-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.project-link{display:inline-flex;align-items:center;gap:.5rem;color:var(--primary);text-decoration:none;font-weight:500;font-size:.9rem;transition:var(--transition-fast)}.project-link:hover{gap:.75rem}.cert-card{display:flex;align-items:center;gap:1rem;padding:1rem;background:#ffffff08;border:1px solid var(--card-border);border-radius:var(--radius-lg);transition:var(--transition-fast)}.cert-card:hover{background:#ffffff0d}.cert-icon{width:50px;height:50px;border-radius:var(--radius-md);background:#f59e0b33;display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0}.cert-info h4{font-size:1rem;font-weight:600;color:var(--text-primary);margin-bottom:.25rem}.cert-info p{font-size:.85rem;color:var(--text-muted)}.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem}.contact-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-xl);padding:2rem;text-align:center;transition:var(--transition-medium)}.contact-card:hover{transform:translateY(-5px);border-color:#ffffff26}.contact-card.whatsapp{background:linear-gradient(135deg,#25d36626,#25d3660d);border-color:#25d3664d}.contact-icon{width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1rem;font-size:1.5rem}.contact-icon.email{background:#137fec33;color:var(--primary)}.contact-icon.location{background:#8b5cf633;color:var(--accent-purple)}.contact-icon.whatsapp{background:#25d36633;color:#25d366}.contact-title{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin-bottom:.5rem}.contact-text{font-size:.95rem;color:var(--text-secondary);margin-bottom:1rem}.contact-link{color:var(--primary);text-decoration:none;font-weight:500}.contact-link:hover{text-decoration:underline}.whatsapp-btn{display:inline-flex;align-items:center;gap:.5rem;background:#25d366;color:#fff;padding:.75rem 1.5rem;border-radius:var(--radius-lg);text-decoration:none;font-weight:600;transition:var(--transition-fast)}.whatsapp-btn:hover{background:#22c55e;transform:translateY(-2px)}.social-section{text-align:center;margin-top:3rem;padding-top:3rem;border-top:1px solid var(--card-border)}.social-links{display:flex;justify-content:center;gap:1rem}.social-link{width:50px;height:50px;border-radius:50%;background:var(--card-bg);border:1px solid var(--card-border);display:flex;align-items:center;justify-content:center;color:var(--text-secondary);text-decoration:none;transition:var(--transition-fast)}.social-link:hover{background:var(--primary);border-color:var(--primary);color:#fff;transform:translateY(-3px)}.portfolio-footer{padding:3rem 2rem;border-top:1px solid var(--card-border);background:#10192280}.footer-content{max-width:1400px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.footer-brand h3{font-size:1.25rem;font-weight:700;color:var(--text-primary);margin-bottom:.25rem}.footer-brand p{font-size:.9rem;color:var(--text-muted)}.footer-copyright{font-size:.85rem;color:var(--text-muted)}@media (max-width: 1024px){.hero-grid{grid-template-columns:1fr;text-align:center;gap:3rem}.hero-content{max-width:100%}.hero-buttons,.hero-stats{justify-content:center}.hero-visual{order:-1}.hero-image-container{width:300px;height:300px}.floating-badge{display:none}.bento-card.span-6,.bento-card.span-4,.bento-card.span-3,.bento-card.span-8{grid-column:span 12}.skills-container{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.header-nav{display:none;position:fixed;top:70px;left:0;right:0;background:#101922fa;backdrop-filter:blur(20px);padding:1.5rem;flex-direction:column;border-bottom:1px solid var(--card-border)}.header-nav.open{display:flex}.header-cta{display:none}.mobile-menu-btn{display:flex}.hero-section{padding:2rem 1rem;min-height:auto}.hero-title{font-size:2.25rem}.hero-subtitle{font-size:1rem}.hero-image-container{width:250px;height:250px}.hero-stats{flex-direction:column;gap:1rem}.stat-item{text-align:center}.section{padding:3rem 1rem}.section-title{font-size:2rem}.bento-grid{gap:1rem}.contact-grid{grid-template-columns:1fr}.footer-content{flex-direction:column;text-align:center}.skills-container{grid-template-columns:1fr;gap:1.5rem}.skills-group{padding:1.25rem}.skills-group-title{font-size:1rem}}@media (max-width: 480px){.hero-title{font-size:1.875rem}.hero-buttons{flex-direction:column}.btn{width:100%}.hero-image-container{width:200px;height:200px}.skills-group{padding:1rem}.skill-bar-name{font-size:.85rem}.skill-bar-percent{font-size:.75rem}.skill-bar-track{height:6px}}.fade-in{opacity:0;transform:translateY(30px);animation:fadeInUp .8s ease forwards}.fade-in-delay-1{animation-delay:.1s}.fade-in-delay-3{animation-delay:.3s}.fade-in-delay-4{animation-delay:.4s}@keyframes fadeInUp{to{opacity:1;transform:translateY(0)}}.reveal{opacity:0;transform:translateY(40px);transition:opacity .8s ease,transform .8s ease}.reveal.visible{opacity:1;transform:translateY(0)}:root{--africa-blue: #2563eb;--africa-blue-dark: #1d4ed8;--africa-blue-light: #60a5fa;--africa-blue-soft: #dbeafe;--africa-honey: #d97706;--africa-honey-dark: #b45309;--africa-honey-light: #fbbf24;--africa-honey-soft: #fef3c7;--africa-bg: #fefefe;--africa-bg-alt: #f8fafc;--africa-surface: #ffffff;--africa-border: rgba(0, 0, 0, .08);--africa-text: #1e293b;--africa-text-secondary: #64748b;--africa-text-muted: #94a3b8;--africa-gradient-blue: linear-gradient(135deg, #2563eb 0%, #60a5fa 100%);--africa-gradient-honey: linear-gradient(135deg, #d97706 0%, #fbbf24 100%);--africa-gradient-mixed: linear-gradient(135deg, #2563eb 0%, #d97706 100%);--africa-shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--africa-shadow-md: 0 4px 20px rgba(0, 0, 0, .08);--africa-shadow-lg: 0 10px 40px rgba(0, 0, 0, .12);--africa-shadow-blue: 0 8px 30px rgba(37, 99, 235, .25);--africa-shadow-honey: 0 8px 30px rgba(217, 119, 6, .25);--africa-transition-fast: .2s ease;--africa-transition-medium: .3s ease;--africa-radius-sm: 8px;--africa-radius-md: 12px;--africa-radius-lg: 20px;--africa-radius-xl: 28px}.portfolio-africa *{margin:0;padding:0;box-sizing:border-box}.portfolio-africa{font-family:Poppins,-apple-system,BlinkMacSystemFont,sans-serif;background-color:var(--africa-bg);color:var(--africa-text);min-height:100vh;overflow-x:hidden;position:relative}body:has(.portfolio-africa) .bottom-nav-container,body:has(.portfolio-africa) .bottom-nav{display:none!important}body:has(.portfolio-africa),html:has(.portfolio-africa){overflow-x:hidden;scroll-behavior:smooth}.africa-ambient{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0;overflow:hidden}.africa-orb{position:absolute;border-radius:50%;filter:blur(100px);opacity:.4;animation:floatAfrica 25s ease-in-out infinite}.africa-orb-1{width:500px;height:500px;background:radial-gradient(circle,rgba(37,99,235,.3) 0%,transparent 70%);top:-15%;right:-10%;animation-delay:0s}.africa-orb-2{width:400px;height:400px;background:radial-gradient(circle,rgba(217,119,6,.25) 0%,transparent 70%);bottom:20%;left:-15%;animation-delay:-8s}.africa-orb-3{width:350px;height:350px;background:radial-gradient(circle,rgba(37,99,235,.2) 0%,transparent 70%);top:50%;right:10%;animation-delay:-16s}@keyframes floatAfrica{0%,to{transform:translate(0) scale(1)}25%{transform:translate(20px,-20px) scale(1.03)}50%{transform:translate(-15px,15px) scale(.97)}75%{transform:translate(15px,10px) scale(1.01)}}.africa-header{position:fixed;top:0;left:0;right:0;z-index:1000;padding:1rem 2rem;background:#fefefee6;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--africa-border);transition:var(--africa-transition-medium)}.africa-header-content{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.africa-logo{display:flex;align-items:center;gap:.75rem}.africa-logo-icon{width:42px;height:42px;background:var(--africa-gradient-blue);border-radius:var(--africa-radius-md);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.9rem;color:#fff;letter-spacing:-.5px}.africa-logo-text{font-size:1.15rem;font-weight:600;color:var(--africa-text)}.africa-nav{display:flex;gap:.25rem}.africa-nav a{color:var(--africa-text-secondary);text-decoration:none;padding:.5rem 1rem;border-radius:var(--africa-radius-md);font-size:.9rem;font-weight:500;transition:var(--africa-transition-fast)}.africa-nav a:hover{color:var(--africa-blue);background:var(--africa-blue-soft)}.africa-header-cta{display:flex}.africa-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.6rem 1.25rem;border-radius:var(--africa-radius-md);font-size:.9rem;font-weight:500;text-decoration:none;cursor:pointer;border:none;transition:var(--africa-transition-fast)}.africa-btn-primary{background:var(--africa-gradient-blue);color:#fff;box-shadow:var(--africa-shadow-blue)}.africa-btn-primary:hover{transform:translateY(-2px);box-shadow:0 12px 35px #2563eb59;color:#fff}.africa-btn-secondary{background:var(--africa-honey-soft);color:var(--africa-honey-dark);border:1px solid rgba(217,119,6,.2)}.africa-btn-secondary:hover{background:#d9770626}.africa-mobile-menu-btn{display:none;flex-direction:column;gap:5px;padding:.5rem;background:none;border:none;cursor:pointer}.africa-mobile-menu-btn span{width:24px;height:2px;background:var(--africa-text);transition:var(--africa-transition-fast)}.africa-main{position:relative;z-index:1;padding-top:80px}.africa-hero{min-height:calc(100vh - 80px);display:flex;align-items:center;padding:4rem 2rem}.africa-hero-container{max-width:1200px;margin:0 auto;width:100%;display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}.africa-hero-content{max-width:550px}.africa-hero-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--africa-honey-soft);border:1px solid rgba(217,119,6,.2);border-radius:50px;font-size:.85rem;color:var(--africa-honey-dark);margin-bottom:1.5rem;font-weight:500}.africa-badge-dot{width:8px;height:8px;background:var(--africa-honey);border-radius:50%;animation:pulseAfrica 2s infinite}@keyframes pulseAfrica{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.9)}}.africa-hero-title{font-size:3.25rem;font-weight:700;line-height:1.15;margin-bottom:.5rem;color:var(--africa-text)}.africa-title-highlight{background:var(--africa-gradient-blue);-webkit-background-clip:text;background-clip:text;color:transparent}.africa-hero-role{font-size:1.5rem;font-weight:500;color:var(--africa-honey);margin-bottom:1rem}.africa-hero-subtitle{font-size:1.1rem;color:var(--africa-text-secondary);line-height:1.7;margin-bottom:2rem}.africa-hero-buttons{display:flex;gap:1rem;margin-bottom:2.5rem}.africa-hero-stats{display:flex;gap:2.5rem}.africa-stat{text-align:left}.africa-stat-number{font-size:2rem;font-weight:700;color:var(--africa-blue)}.africa-stat-label{font-size:.85rem;color:var(--africa-text-muted);font-weight:500}.africa-hero-visual{display:flex;justify-content:center;align-items:center}.africa-hero-image-container{position:relative;width:350px;height:350px}.africa-image-glow{position:absolute;inset:-30px;background:var(--africa-gradient-mixed);border-radius:50%;opacity:.2;filter:blur(50px);animation:glowPulse 5s ease-in-out infinite}@keyframes glowPulse{0%,to{opacity:.2;transform:scale(1)}50%{opacity:.35;transform:scale(1.05)}}.africa-hero-image{position:relative;width:100%;height:100%;border-radius:50%;background:linear-gradient(135deg,var(--africa-blue-soft) 0%,var(--africa-honey-soft) 100%);border:4px solid white;box-shadow:var(--africa-shadow-lg);overflow:hidden;z-index:1;display:flex;align-items:center;justify-content:center}.africa-avatar-placeholder{width:60%;height:60%;color:var(--africa-blue);opacity:.3}.africa-avatar-placeholder svg{width:100%;height:100%}.africa-hero-image img{width:100%;height:100%;object-fit:cover}.africa-floating-badge{position:absolute;background:#fff;padding:.75rem 1rem;border-radius:var(--africa-radius-lg);display:flex;align-items:center;gap:.5rem;font-size:.85rem;font-weight:500;color:var(--africa-text);z-index:2;box-shadow:var(--africa-shadow-md);animation:floatBadge 6s ease-in-out infinite}.africa-floating-badge.top-left{top:15%;left:-20px;animation-delay:0s}.africa-floating-badge.top-right{top:5%;right:-30px;animation-delay:-2s}.africa-floating-badge.bottom-right{bottom:20%;right:-25px;animation-delay:-4s}@keyframes floatBadge{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.badge-emoji{font-size:1.25rem}.africa-section{padding:5rem 2rem}.africa-section-alt{background:var(--africa-bg-alt)}.africa-section-container{max-width:1200px;margin:0 auto}.africa-section-header{text-align:center;margin-bottom:3rem}.africa-section-title{font-size:2.25rem;font-weight:700;color:var(--africa-text);margin-bottom:.75rem}.africa-section-subtitle{font-size:1.05rem;color:var(--africa-text-secondary);max-width:500px;margin:0 auto}.africa-about-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem}.africa-about-card{background:#fff;border:1px solid var(--africa-border);border-radius:var(--africa-radius-lg);padding:1.75rem;text-align:center;transition:var(--africa-transition-medium)}.africa-about-card:hover{transform:translateY(-5px);box-shadow:var(--africa-shadow-md);border-color:var(--africa-blue-light)}.africa-about-icon{font-size:2.5rem;margin-bottom:1rem}.africa-about-card h3{font-size:1.1rem;font-weight:600;color:var(--africa-text);margin-bottom:.5rem}.africa-about-card p{font-size:.9rem;color:var(--africa-text-secondary);line-height:1.6}.africa-timeline{position:relative;padding-left:2.5rem;max-width:800px;margin:0 auto}.africa-timeline:before{content:"";position:absolute;left:7px;top:0;bottom:0;width:3px;background:linear-gradient(180deg,var(--africa-blue) 0%,var(--africa-honey) 100%);border-radius:3px}.africa-timeline-item{position:relative;padding-bottom:2.5rem;padding-left:2rem}.africa-timeline-item:last-child{padding-bottom:0}.africa-timeline-dot{position:absolute;left:-2.5rem;top:0;width:18px;height:18px;border-radius:50%;background:var(--africa-blue);border:4px solid white;box-shadow:var(--africa-shadow-sm);z-index:1}.africa-timeline-content{background:#fff;border:1px solid var(--africa-border);border-radius:var(--africa-radius-lg);padding:1.5rem;transition:var(--africa-transition-medium)}.africa-timeline-content:hover{box-shadow:var(--africa-shadow-md);border-color:var(--africa-blue-light)}.africa-timeline-date{font-size:.85rem;color:var(--africa-blue);font-weight:600;margin-bottom:.5rem}.africa-timeline-title{font-size:1.15rem;font-weight:600;color:var(--africa-text);margin-bottom:.25rem}.africa-timeline-company{font-size:.9rem;color:var(--africa-honey);font-weight:500;margin-bottom:.75rem}.africa-timeline-description{font-size:.9rem;color:var(--africa-text-secondary);line-height:1.6;margin-bottom:1rem}.africa-tags{display:flex;flex-wrap:wrap;gap:.5rem}.africa-tag{padding:.3rem .75rem;background:var(--africa-blue-soft);border-radius:50px;font-size:.75rem;color:var(--africa-blue);font-weight:500}.africa-other-experience{margin-top:3rem;max-width:800px;margin-left:auto;margin-right:auto}.africa-subsection-title{font-size:1.25rem;font-weight:600;color:var(--africa-text);margin-bottom:1.5rem;text-align:center}.africa-experience-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.africa-exp-card{background:#fff;border:1px solid var(--africa-border);border-radius:var(--africa-radius-lg);padding:1.5rem;display:flex;gap:1rem;transition:var(--africa-transition-medium)}.africa-exp-card:hover{box-shadow:var(--africa-shadow-md);border-color:var(--africa-honey-light)}.africa-exp-icon{font-size:2rem;flex-shrink:0}.africa-exp-info h4{font-size:1rem;font-weight:600;color:var(--africa-text);margin-bottom:.25rem}.africa-exp-info span{font-size:.8rem;color:var(--africa-honey);font-weight:500}.africa-exp-info p{font-size:.85rem;color:var(--africa-text-secondary);line-height:1.5;margin-top:.5rem}.africa-education-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;max-width:900px;margin:0 auto}.africa-edu-card{background:#fff;border:1px solid var(--africa-border);border-radius:var(--africa-radius-lg);padding:1.75rem;display:flex;gap:1.25rem;align-items:flex-start;transition:var(--africa-transition-medium);position:relative;overflow:hidden}.africa-edu-card:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:var(--africa-gradient-blue)}.africa-edu-card:hover{box-shadow:var(--africa-shadow-md);transform:translateY(-3px)}.africa-edu-year{background:var(--africa-blue-soft);color:var(--africa-blue);padding:.5rem .75rem;border-radius:var(--africa-radius-sm);font-size:.85rem;font-weight:600;white-space:nowrap}.africa-edu-content{flex:1}.africa-edu-content h3{font-size:1.1rem;font-weight:600;color:var(--africa-text);margin-bottom:.25rem}.africa-edu-institution{font-size:.9rem;color:var(--africa-honey);font-weight:500;margin-bottom:.5rem}.africa-edu-description{font-size:.85rem;color:var(--africa-text-secondary);line-height:1.5}.africa-edu-icon{font-size:1.75rem;flex-shrink:0}.africa-skills-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.africa-skills-group{background:#fff;border:1px solid var(--africa-border);border-radius:var(--africa-radius-lg);padding:1.75rem;transition:var(--africa-transition-medium)}.africa-skills-group:hover{box-shadow:var(--africa-shadow-md);transform:translateY(-3px)}.africa-skills-group.africa-languages{grid-column:span 1}.africa-skills-title{display:flex;align-items:center;gap:.75rem;font-size:1rem;font-weight:600;color:var(--africa-text);margin-bottom:1.25rem;padding-bottom:.75rem;border-bottom:1px solid var(--africa-border)}.africa-skills-icon{width:10px;height:10px;border-radius:50%}.africa-skills-icon.blue{background:var(--africa-blue);box-shadow:0 0 8px #2563eb66}.africa-skills-icon.honey{background:var(--africa-honey);box-shadow:0 0 8px #d9770666}.africa-skills-icon.green{background:#10b981;box-shadow:0 0 8px #10b98166}.africa-skills-list{display:flex;flex-direction:column;gap:1rem}.africa-skill-item{display:flex;flex-direction:column;gap:.35rem}.africa-skill-name{font-size:.85rem;color:var(--africa-text);font-weight:500}.africa-skill-bar{width:100%;height:6px;background:var(--africa-bg-alt);border-radius:10px;overflow:hidden}.africa-skill-fill{height:100%;background:var(--africa-gradient-blue);border-radius:10px;transition:width 1s ease-out;position:relative}.africa-skill-fill:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:shimmerAfrica 2s infinite}@keyframes shimmerAfrica{0%{transform:translate(-100%)}to{transform:translate(100%)}}.africa-skill-fill.honey{background:var(--africa-gradient-honey)}.africa-languages-grid{display:flex;flex-direction:column;gap:1rem}.africa-language-item{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem}.africa-language-name{font-size:.9rem;font-weight:500;color:var(--africa-text)}.africa-language-level{font-size:.75rem;color:var(--africa-text-muted);font-weight:500}.africa-language-dots{display:flex;gap:.35rem;width:100%;justify-content:flex-start;margin-top:.25rem}.africa-language-dots .dot{width:12px;height:12px;border-radius:50%;background:var(--africa-bg-alt);border:2px solid var(--africa-border)}.africa-language-dots .dot.filled{background:var(--africa-blue);border-color:var(--africa-blue)}.africa-contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;max-width:900px;margin:0 auto}.africa-contact-card{background:#fff;border:1px solid var(--africa-border);border-radius:var(--africa-radius-lg);padding:2rem;text-align:center;transition:var(--africa-transition-medium);text-decoration:none;display:block}.africa-contact-card:hover{transform:translateY(-5px);box-shadow:var(--africa-shadow-md)}.africa-contact-icon{width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1rem}.africa-contact-icon svg{width:28px;height:28px}.africa-contact-icon.email{background:var(--africa-blue-soft);color:var(--africa-blue)}.africa-contact-icon.phone{background:var(--africa-honey-soft);color:var(--africa-honey)}.africa-contact-icon.location-icon{background:#10b98126;color:#10b981}.africa-contact-title{font-size:1rem;font-weight:600;color:var(--africa-text);margin-bottom:.5rem}.africa-contact-text{font-size:.9rem;color:var(--africa-text-secondary)}.africa-linkedin-cta{text-align:center;margin-top:2.5rem}.africa-linkedin-btn{display:inline-flex;align-items:center;gap:.75rem;padding:1rem 2rem;background:#0077b5;color:#fff;border-radius:var(--africa-radius-lg);text-decoration:none;font-weight:600;font-size:1rem;transition:var(--africa-transition-fast);box-shadow:0 8px 25px #0077b54d}.africa-linkedin-btn:hover{transform:translateY(-3px);box-shadow:0 12px 35px #0077b566;color:#fff}.africa-linkedin-btn svg{width:22px;height:22px}.africa-footer{background:var(--africa-text);padding:2.5rem 2rem}.africa-footer-content{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.africa-footer-brand h3{font-size:1.15rem;font-weight:600;color:#fff;margin-bottom:.25rem}.africa-footer-brand p{font-size:.85rem;color:#fff9}.africa-footer-copyright{font-size:.85rem;color:#ffffff80}.fade-in-africa{opacity:0;transform:translateY(30px);animation:fadeInUpAfrica .8s ease forwards}.fade-in-delay-2{animation-delay:.2s}@keyframes fadeInUpAfrica{to{opacity:1;transform:translateY(0)}}.reveal-africa{opacity:0;transform:translateY(30px);transition:opacity .6s ease,transform .6s ease}.reveal-africa.visible{opacity:1;transform:translateY(0)}@media (max-width: 1024px){.africa-hero-container{grid-template-columns:1fr;text-align:center;gap:3rem}.africa-hero-content{max-width:100%}.africa-hero-buttons,.africa-hero-stats{justify-content:center}.africa-hero-visual{order:-1}.africa-hero-image-container{width:280px;height:280px}.africa-floating-badge{display:none}.africa-about-grid,.africa-skills-grid{grid-template-columns:repeat(2,1fr)}.africa-skills-group.africa-languages{grid-column:span 2}}@media (max-width: 768px){.africa-nav{display:none;position:fixed;top:70px;left:0;right:0;background:#fefefefa;backdrop-filter:blur(20px);padding:1.5rem;flex-direction:column;border-bottom:1px solid var(--africa-border)}.africa-nav.open{display:flex}.africa-header-cta{display:none}.africa-mobile-menu-btn{display:flex}.africa-hero{padding:2rem 1rem;min-height:auto}.africa-hero-title{font-size:2.25rem}.africa-hero-role{font-size:1.25rem}.africa-hero-subtitle{font-size:1rem}.africa-hero-image-container{width:220px;height:220px}.africa-hero-stats{flex-direction:row;gap:1.5rem}.africa-section{padding:3rem 1rem}.africa-section-title{font-size:1.75rem}.africa-about-grid{grid-template-columns:1fr}.africa-timeline{padding-left:2rem}.africa-timeline-dot{left:-2rem;width:14px;height:14px}.africa-experience-grid,.africa-education-grid{grid-template-columns:1fr}.africa-edu-card{flex-direction:column;align-items:flex-start}.africa-skills-grid{grid-template-columns:1fr}.africa-skills-group.africa-languages{grid-column:span 1}.africa-contact-grid{grid-template-columns:1fr}.africa-footer-content{flex-direction:column;text-align:center;gap:1rem}}@media (max-width: 480px){.africa-hero-title{font-size:1.875rem}.africa-hero-buttons{flex-direction:column}.africa-btn{width:100%}.africa-hero-image-container{width:180px;height:180px}.africa-stat-number{font-size:1.5rem}}:root{--primary: #137fec;--primary-dark: #0d5fb8;--primary-light: #4da3f7;--background-dark: #101922;--surface-dark: #192633;--surface-light: #1e3044;--card-bg: rgba(25, 38, 51, .8);--card-border: rgba(255, 255, 255, .1);--text-primary: #ffffff;--text-secondary: rgba(255, 255, 255, .7);--text-muted: rgba(255, 255, 255, .5);--accent-green: #10b981;--accent-purple: #8b5cf6;--accent-orange: #f59e0b;--gradient-primary: linear-gradient(135deg, #137fec 0%, #4da3f7 100%);--transition-fast: .2s ease;--transition-medium: .3s ease;--radius-md: 12px;--radius-lg: 20px;--radius-xl: 24px}.project-detail-page *{margin:0;padding:0;box-sizing:border-box}.project-detail-page{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;color:var(--text-primary);background-color:var(--background-dark);min-height:100vh;display:flex;flex-direction:column;position:relative;overflow-x:hidden}body:has(.project-detail-page) .bottom-nav-container,body:has(.project-detail-page) .bottom-nav{display:none!important}body:has(.project-detail-page),html:has(.project-detail-page),#root:has(.project-detail-page){height:auto!important;min-height:100vh!important;overflow-x:hidden!important;overflow-y:auto!important;position:static!important}.project-ambient{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0;overflow:hidden}.project-ambient-orb{position:absolute;border-radius:50%;filter:blur(80px);opacity:.3}.project-ambient-orb-1{width:500px;height:500px;background:radial-gradient(circle,rgba(19,127,236,.4) 0%,transparent 70%);top:-15%;right:-10%}.project-ambient-orb-2{width:400px;height:400px;background:radial-gradient(circle,rgba(139,92,246,.3) 0%,transparent 70%);bottom:20%;left:-10%}.project-detail-page-header{position:relative;z-index:10;background:linear-gradient(135deg,#137fec26,#8b5cf61a);border-bottom:1px solid var(--card-border);padding:1.5rem 2rem 2rem}.project-detail-header-content{max-width:1400px;margin:0 auto}.project-detail-back{margin-bottom:1.5rem}.project-detail-back-button{display:inline-flex;align-items:center;gap:.5rem;background:var(--card-bg);backdrop-filter:blur(10px);border:1px solid var(--card-border);border-radius:var(--radius-md);padding:.6rem 1.25rem;color:var(--text-primary);font-weight:500;font-size:.9rem;cursor:pointer;transition:var(--transition-fast)}.project-detail-back-button:hover{background:#ffffff1a;border-color:#fff3}.project-detail-back-button svg{width:18px;height:18px}.project-detail-title-container{max-width:1400px}.project-detail-title{font-size:2.5rem;font-weight:700;margin:0;line-height:1.2;background:linear-gradient(135deg,#fff,#fffc);-webkit-background-clip:text;background-clip:text;color:transparent}.project-detail-content{position:relative;z-index:1;display:flex;flex-direction:column;max-width:1400px;margin:0 auto;width:100%;padding:3rem 2rem;gap:3rem}.project-detail-showcase{width:100%}.project-detail-slider{background:var(--card-bg);backdrop-filter:blur(20px);border:1px solid var(--card-border);border-radius:var(--radius-xl);padding:1.5rem;overflow:hidden}.project-detail-main-image{position:relative;border-radius:var(--radius-lg);overflow:hidden;margin-bottom:1.5rem;background:var(--surface-dark)}.project-detail-main-image img{width:100%;display:block;border-radius:var(--radius-lg);height:auto;object-fit:cover}.project-detail-caption{position:absolute;bottom:0;left:0;right:0;padding:1.5rem;background:linear-gradient(to top,rgba(16,25,34,.95),transparent);color:var(--text-primary);font-size:.95rem;font-weight:500}.project-detail-nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;background:var(--card-bg);backdrop-filter:blur(10px);border:1px solid var(--card-border);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--transition-fast);z-index:10}.project-detail-nav:hover{background:#ffffff26;border-color:#fff3;transform:translateY(-50%) scale(1.05)}.project-detail-nav svg{width:24px;height:24px;color:var(--text-primary)}.project-detail-prev{left:16px}.project-detail-next{right:16px}.project-detail-thumbnails{display:flex;gap:12px;overflow-x:auto;padding-bottom:8px;scrollbar-width:thin;scrollbar-color:var(--primary) var(--surface-dark)}.project-detail-thumbnails::-webkit-scrollbar{height:6px}.project-detail-thumbnails::-webkit-scrollbar-track{background:var(--surface-dark);border-radius:10px}.project-detail-thumbnails::-webkit-scrollbar-thumb{background:var(--primary);border-radius:10px}.project-detail-thumbnail{flex:0 0 120px;height:80px;border-radius:var(--radius-md);overflow:hidden;cursor:pointer;opacity:.5;transition:var(--transition-fast);border:2px solid transparent;background:var(--surface-dark)}.project-detail-thumbnail:hover{opacity:.8;transform:translateY(-2px)}.project-detail-thumbnail.active{opacity:1;border-color:var(--primary);box-shadow:0 0 20px #137fec4d}.project-detail-thumbnail img{width:100%;height:100%;object-fit:cover}.project-detail-info{width:100%}.project-detail-description{background:var(--card-bg);backdrop-filter:blur(20px);border:1px solid var(--card-border);border-radius:var(--radius-xl);padding:2rem}.project-detail-description h2{margin:2rem 0 1rem;font-size:1.5rem;font-weight:600;color:var(--text-primary);position:relative;display:flex;align-items:center;gap:.75rem}.project-detail-description h2:first-child{margin-top:0}.project-detail-description h2:before{content:"";width:4px;height:24px;background:var(--gradient-primary);border-radius:2px}.project-detail-description p{margin:0 0 1.5rem;line-height:1.7;color:var(--text-secondary);font-size:1rem}.project-detail-features{list-style:none;padding:0;margin:1rem 0 1.5rem}.project-detail-features li{position:relative;padding-left:1.75rem;margin-bottom:.75rem;color:var(--text-secondary);font-size:1rem;line-height:1.6}.project-detail-features li:before{content:"";position:absolute;left:0;top:.6rem;width:8px;height:8px;background:var(--primary);border-radius:50%}.project-detail-tech{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem}.project-detail-tech-badge{padding:.5rem 1rem;background:#137fec26;border:1px solid rgba(19,127,236,.3);border-radius:50px;font-size:.85rem;color:var(--primary-light);font-weight:500;transition:var(--transition-fast)}.project-detail-tech-badge:hover{background:#137fec40;transform:translateY(-2px)}.project-detail-footer{margin-top:auto;background:#101922cc;border-top:1px solid var(--card-border);padding:2rem;position:relative;z-index:1}.project-detail-footer-content{max-width:1400px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.project-detail-footer-info h3{margin:0;font-size:1.25rem;font-weight:700;color:var(--text-primary)}.project-detail-footer-info p{margin:.25rem 0 0;font-size:.9rem;color:var(--text-muted)}.project-detail-footer-copyright p{margin:0;font-size:.85rem;color:var(--text-muted)}@media (min-width: 1024px){.project-detail-content{flex-direction:row;align-items:flex-start}.project-detail-showcase{width:60%;position:sticky;top:2rem}.project-detail-info{width:40%}}@media (max-width: 768px){.project-detail-page-header{padding:1.5rem}.project-detail-title{font-size:1.75rem}.project-detail-content{padding:2rem 1rem;gap:2rem}.project-detail-slider{padding:1rem}.project-detail-nav{width:40px;height:40px}.project-detail-nav svg{width:20px;height:20px}.project-detail-prev{left:8px}.project-detail-next{right:8px}.project-detail-description{padding:1.5rem}.project-detail-description h2{font-size:1.25rem}.project-detail-footer-content{flex-direction:column;text-align:center}}@media (max-width: 480px){.project-detail-title{font-size:1.5rem}.project-detail-thumbnail{flex:0 0 90px;height:60px}.project-detail-back-button{padding:.5rem 1rem;font-size:.85rem}}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.project-detail-page.active .project-detail-page-header,.project-detail-page.active .project-detail-content,.project-detail-page.active .project-detail-footer{animation:fadeIn .6s ease forwards}.project-detail-page.active .project-detail-content{animation-delay:.1s}.project-detail-page.active .project-detail-footer{animation-delay:.2s}.offline-notice{position:fixed;top:0;left:0;right:0;background-color:#fef2f2;color:#b91c1c;padding:.5rem 1rem;display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:.875rem;z-index:9999;box-shadow:0 1px 3px #0000001a;animation:slideDown .3s ease-out}.offline-notice svg{width:16px;height:16px}@keyframes slideDown{0%{transform:translateY(-100%)}to{transform:translateY(0)}}.toast-container{position:fixed;top:20px;right:20px;max-width:400px;min-width:300px;z-index:1100;transform:translate(100%);transition:all .4s cubic-bezier(.175,.885,.32,1.275);opacity:0}.toast-container.show{transform:translate(0);opacity:1}.toast-content{display:flex;align-items:center;gap:12px;padding:16px 20px;border-radius:12px;box-shadow:0 10px 30px #0003;backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2)}.toast-icon{flex-shrink:0;width:24px;height:24px}.toast-icon svg{width:100%;height:100%}.toast-message{flex:1;font-weight:500;font-size:14px;line-height:1.4}.toast-close{flex-shrink:0;width:20px;height:20px;background:none;border:none;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s;opacity:.7}.toast-close:hover{opacity:1;background:#0000001a}.toast-close svg{width:16px;height:16px}.toast-container.success .toast-content{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.toast-container.error .toast-content{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.toast-container.warning .toast-content{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.toast-container.info .toast-content{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}@media (max-width: 480px){.toast-container{top:16px;right:16px;left:16px;max-width:none;min-width:auto}.toast-content{padding:14px 16px}.toast-message{font-size:13px}}.confirm-modal-overlay{position:fixed;inset:0;background:#0009;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1200;padding:20px;box-sizing:border-box;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.confirm-modal{background:#fff;border-radius:16px;width:100%;max-width:400px;box-shadow:0 20px 60px #0000004d;animation:modalSlideUp .3s cubic-bezier(.175,.885,.32,1.275);overflow:hidden}@keyframes modalSlideUp{0%{opacity:0;transform:scale(.9) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.confirm-modal-header{display:flex;flex-direction:column;align-items:center;padding:24px 24px 16px;text-align:center}.confirm-modal-icon{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:16px}.confirm-modal-icon .icon-danger{width:32px;height:32px;color:#ef4444}.confirm-modal-icon .icon-warning{width:32px;height:32px;color:#f59e0b}.confirm-modal-icon .icon-info{width:32px;height:32px;color:#3b82f6}.confirm-modal-icon{background:#fef2f2}.confirm-modal-title{margin:0;font-size:18px;font-weight:600;color:#374151}.confirm-modal-body{padding:0 24px 24px;text-align:center}.confirm-modal-message{margin:0;font-size:14px;color:#6b7280;line-height:1.5}.confirm-modal-actions{display:flex;gap:12px;padding:0 24px 24px}.confirm-btn-cancel,.confirm-btn-confirm{flex:1;padding:12px 20px;border-radius:8px;font-weight:500;cursor:pointer;transition:all .2s;font-size:14px;border:none}.confirm-btn-cancel{background:#f3f4f6;color:#374151;border:1px solid #d1d5db}.confirm-btn-cancel:hover{background:#e5e7eb}.confirm-btn-confirm{color:#fff}.confirm-btn-confirm.danger{background:#ef4444}.confirm-btn-confirm.danger:hover{background:#dc2626}.confirm-btn-confirm.warning{background:#f59e0b}.confirm-btn-confirm.warning:hover{background:#d97706}.confirm-btn-confirm.info{background:#3b82f6}.confirm-btn-confirm.info:hover{background:#2563eb}@media (max-width: 480px){.confirm-modal-overlay{padding:16px}.confirm-modal{max-width:none}.confirm-modal-header{padding:20px 20px 12px}.confirm-modal-icon{width:56px;height:56px}.confirm-modal-icon .icon-danger,.confirm-modal-icon .icon-warning,.confirm-modal-icon .icon-info{width:28px;height:28px}.confirm-modal-title{font-size:16px}.confirm-modal-body{padding:0 20px 20px}.confirm-modal-actions{flex-direction:column;padding:0 20px 20px}}.settings-container{min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px 20px 100px;box-sizing:border-box}.settings-header{text-align:center;margin-bottom:30px}.settings-header h1{color:#fff;font-size:2.5rem;font-weight:800;margin:0;text-shadow:0 2px 4px rgba(0,0,0,.3)}.settings-section{background:#fff;border-radius:15px;padding:25px;margin-bottom:20px;box-shadow:0 8px 25px #00000026}.settings-section h2{margin:0 0 20px;color:#374151;font-size:1.3rem;font-weight:600}.settings-description{background:#f0f9ff;border:1px solid #0ea5e9;border-radius:8px;padding:12px 16px;margin-bottom:20px;font-size:14px;color:#0c4a6e;line-height:1.5}.settings-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.settings-section-header h2{margin:0}.settings-add-btn{display:flex;align-items:center;gap:8px;background:#6366f1;color:#fff;border:none;padding:8px 16px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.settings-add-btn:hover{background:#4f46e5}.settings-add-btn svg{width:16px;height:16px}.settings-form-group{margin-bottom:20px}.settings-form-group label{display:block;margin-bottom:8px;font-weight:500;color:#374151;font-size:14px}.settings-input-wrapper{position:relative}.settings-currency{position:absolute;left:12px;top:50%;transform:translateY(-50%);font-weight:600;color:#6b7280;font-size:16px}.settings-input-wrapper input{width:100%;padding:12px 12px 12px 36px;border:1px solid #d1d5db;border-radius:8px;font-size:16px;transition:border-color .2s;box-sizing:border-box}.settings-form-group input[type=text],.settings-form-group input[type=number],.settings-form-group select{width:100%;padding:12px;border:1px solid #d1d5db;border-radius:8px;font-size:16px;transition:border-color .2s;box-sizing:border-box}.settings-form-group input:focus,.settings-form-group select:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.settings-btn-primary,.settings-btn-secondary,.settings-btn-danger{padding:12px 24px;border-radius:8px;font-weight:500;cursor:pointer;transition:all .2s;font-size:14px;border:none}.settings-btn-primary{background:#6366f1;color:#fff}.settings-btn-primary:hover:not(:disabled){background:#4f46e5}.settings-btn-primary:disabled{opacity:.6;cursor:not-allowed}.settings-btn-secondary{background:#f3f4f6;color:#374151;border:1px solid #d1d5db}.settings-btn-secondary:hover{background:#e5e7eb}.settings-btn-danger{background:#ef4444;color:#fff}.settings-btn-danger:hover:not(:disabled){background:#dc2626}.danger-section{border:2px solid #fecaca;background:#fef2f2}.danger-section h2{color:#dc2626}.danger-description{color:#7f1d1d;margin-bottom:15px;font-size:14px;line-height:1.5}.settings-nav{display:flex;background:#fff;border-radius:12px;padding:4px;margin-bottom:20px;box-shadow:0 2px 8px #0000001a}.settings-nav-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;border:none;background:transparent;border-radius:8px;font-size:14px;font-weight:500;color:#6b7280;cursor:pointer;transition:all .2s}.settings-nav-btn svg{width:18px;height:18px}.settings-nav-btn.active{background:#6366f1;color:#fff;box-shadow:0 2px 4px #6366f14d}.settings-nav-btn:hover:not(.active){background:#f3f4f6;color:#374151}.history-loading{display:flex;flex-direction:column;align-items:center;padding:40px 20px;color:#6b7280}.loading-spinner{width:32px;height:32px;border:3px solid #f3f4f6;border-top:3px solid #6366f1;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}.history-list{display:flex;flex-direction:column;gap:12px}.history-item{display:flex;justify-content:space-between;align-items:flex-start;padding:16px;background:#fff;border-radius:12px;border:1px solid #e5e7eb;transition:all .2s}.history-item:hover{box-shadow:0 4px 12px #0000000d;border-color:#d1d5db}.history-item-info{flex:1;margin-right:16px}.history-item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.history-item-category{font-weight:600;color:#374151;font-size:14px}.history-item-date{font-size:12px;color:#6b7280}.history-item-description{font-size:13px;color:#6b7280;margin-top:4px}.history-item-amount{font-weight:700;font-size:16px;white-space:nowrap}.history-item-amount.expense{color:#ef4444}.history-item-amount.income{color:#10b981}.no-history{text-align:center;padding:40px 20px;color:#6b7280}.no-history p{margin-bottom:8px}.profile-password-section{border-top:1px solid #e5e7eb;margin-top:24px;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-radius:12px;padding:24px;border:1px solid #e2e8f0;position:relative;overflow:hidden}.profile-password-section:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#6366f1,#8b5cf6)}.profile-password-section h3{font-size:18px;font-weight:700;color:#1e293b;margin-bottom:8px;display:flex;align-items:center;gap:8px}.profile-password-section h3:before{content:"";width:24px;height:24px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%236366f1'%3E%3Cpath fill-rule='evenodd' d='M12 1.5a5.25 5.25 0 00-5.25 5.25v3a3 3 0 00-3 3v6.75a3 3 0 003 3h10.5a3 3 0 003-3V12.75a3 3 0 00-3-3v-3c0-2.9-2.35-5.25-5.25-5.25zm3.75 8.25v-3a3.75 3.75 0 10-7.5 0v3h7.5z' clip-rule='evenodd' /%3E%3C/svg%3E") no-repeat center;background-size:contain}.settings-description.small{font-size:14px;margin-bottom:20px;color:#64748b;background:#6366f10d;padding:12px 16px;border-radius:8px;border-left:4px solid #6366f1;line-height:1.5}.password-form-group{position:relative;margin-bottom:20px}.password-form-group label{display:block;margin-bottom:8px;font-weight:600;color:#374151;font-size:14px;display:flex;align-items:center;gap:6px}.password-form-group label:before{content:"";width:4px;height:4px;background:#6366f1;border-radius:50%}.password-input-wrapper{position:relative;display:flex;align-items:center}.password-input-wrapper input{width:100%;padding:12px 16px;border:1px solid #d1d5db;border-radius:8px;font-size:16px;transition:border-color .2s ease;box-sizing:border-box}.password-input-wrapper input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.password-input-icon{position:absolute;right:12px;width:20px;height:20px;pointer-events:none}.password-strength-indicator{margin-top:8px;padding:6px 12px;border-radius:6px;font-size:13px;font-weight:500;display:flex;align-items:center;gap:6px;transition:all .2s ease}.password-strength-weak{background-color:#fef2f2;color:#dc2626;border:1px solid #fecaca}.password-strength-medium{background-color:#fffbeb;color:#d97706;border:1px solid #fed7aa}.password-strength-strong{background-color:#f0fdf4;color:#16a34a;border:1px solid #bbf7d0}.password-strength-very-strong{background-color:#f0fdf4;color:#15803d;border:1px solid #86efac}.profile-save-button{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px 20px;background-color:#3b82f6;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;transition:all .2s ease;margin-top:24px}.profile-save-button:hover:not(:disabled){background-color:#2563eb;transform:translateY(-1px)}.profile-save-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.spinner-small{width:18px;height:18px;border:2px solid transparent;border-top:2px solid currentColor;border-radius:50%;animation:spin 1s linear infinite}@media (max-width: 768px){.profile-password-section{padding:20px;margin-top:20px}.profile-password-section h3{font-size:16px}.password-input-wrapper input{padding:12px 14px 12px 40px;font-size:14px}.password-input-icon{left:12px;width:16px;height:16px}.profile-save-button{padding:16px 20px;font-size:16px}}@media (max-width: 480px){.profile-password-section{padding:16px;border-radius:8px}.profile-password-section h3{font-size:15px}.settings-description.small{font-size:13px;padding:10px 12px}.password-form-group{margin-bottom:16px}.password-input-wrapper input{padding:10px 12px 10px 36px;font-size:13px}}.recurring-expenses-list{display:flex;flex-direction:column;gap:12px}.recurring-expense-item{display:flex;justify-content:space-between;align-items:center;padding:16px;background:#fff;border:1px solid #e5e7eb;border-radius:12px;transition:all .2s}.recurring-expense-item:hover{background:#f9fafb;border-color:#d1d5db}.recurring-expense-info{flex:1;margin-right:16px}.recurring-expense-name{font-weight:600;color:#374151;margin-bottom:4px;font-size:15px}.recurring-expense-details{display:flex;gap:12px;font-size:13px;color:#6b7280}.recurring-expense-amount{font-weight:700;color:#ef4444;font-size:16px;padding:10px 16px;border-radius:10px;background:linear-gradient(135deg,#fee2e2,#fecaca);border:2px solid transparent;cursor:pointer;transition:all .3s ease;min-width:80px;text-align:center;position:relative;box-shadow:0 2px 4px #ef44441a}.recurring-expense-amount:hover{border-color:#ef4444;background:linear-gradient(135deg,#fecaca,#fca5a5);transform:translateY(-1px);box-shadow:0 4px 8px #ef444433}.recurring-expense-amount:hover:after{content:"Click para editar";position:absolute;top:-35px;left:50%;transform:translate(-50%);background:#374151;color:#fff;padding:4px 8px;border-radius:6px;font-size:11px;font-weight:400;white-space:nowrap;opacity:0;animation:fadeInTooltip .3s ease forwards;z-index:10}@keyframes fadeInTooltip{0%{opacity:0;transform:translate(-50%) translateY(-5px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.recurring-expense-edit{display:flex;align-items:center;gap:8px;background:linear-gradient(135deg,#e0e7ff,#c7d2fe);padding:8px 12px;border-radius:12px;box-shadow:0 4px 12px #6366f126;border:2px solid #6366f1;animation:editModeSlideIn .3s ease}@keyframes editModeSlideIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.recurring-expense-edit-input{width:85px;padding:8px 12px;border:none;border-radius:8px;font-size:15px;font-weight:700;text-align:center;background:#fff;color:#374151;box-shadow:inset 0 2px 4px #0000001a;transition:all .2s ease;outline:none}.recurring-expense-edit-input:focus{box-shadow:inset 0 2px 4px #0000001a,0 0 0 3px #6366f133;transform:scale(1.02)}.recurring-currency{font-weight:700;color:#6366f1;font-size:16px;text-shadow:0 1px 2px rgba(99,102,241,.2)}.recurring-expense-item{display:flex;justify-content:space-between;align-items:center;padding:20px;background:#fff;border:1px solid #e5e7eb;border-radius:16px;transition:all .3s ease;box-shadow:0 2px 8px #0000000d;position:relative;overflow:hidden}.recurring-expense-item:hover{background:#fafbff;border-color:#c7d2fe;box-shadow:0 8px 25px #6366f11a;transform:translateY(-2px)}.recurring-expense-item:hover:before{transform:scaleX(1)}@media (max-width: 768px){.recurring-expense-amount{font-size:15px;padding:8px 12px;min-width:70px}.recurring-expense-edit-input{width:75px;font-size:14px;padding:6px 10px}.recurring-currency{font-size:14px}.recurring-expense-item{padding:16px}}@media (max-width: 480px){.recurring-expense-content{flex-direction:column;align-items:flex-start;gap:12px;margin-right:8px}.recurring-expense-amount-section{margin-left:0;align-self:flex-end}.recurring-expense-amount{font-size:14px;padding:6px 10px;min-width:65px}.recurring-expense-edit-input{width:65px;font-size:13px}.recurring-currency{font-size:13px}.recurring-expense-item{padding:14px}.recurring-expense-amount:hover:after{display:none}}.recurring-expense-actions button{all:unset!important;box-sizing:border-box!important}.recurring-expense-actions .recurring-expense-edit-btn{display:flex!important;align-items:center!important;justify-content:center!important;width:40px!important;height:40px!important;background-color:#e0e7ff!important;color:#6366f1!important;border:none!important;border-radius:8px!important;cursor:pointer!important;transition:all .2s ease!important;padding:0!important;margin:0!important;font-size:0!important;font-family:inherit!important;font-weight:400!important}.recurring-expense-actions .recurring-expense-edit-btn:hover{background-color:#c7d2fe!important;transform:translateY(-1px)!important;border-color:transparent!important}.recurring-expense-actions .recurring-expense-edit-btn svg{width:18px!important;height:18px!important;fill:#6366f1!important;stroke:none!important;display:block!important;flex-shrink:0!important}.recurring-expense-actions .recurring-expense-save{display:flex!important;align-items:center!important;justify-content:center!important;width:40px!important;height:40px!important;background-color:#dcfce7!important;color:#16a34a!important;border:none!important;border-radius:8px!important;cursor:pointer!important;transition:all .2s ease!important;padding:0!important;margin:0!important;font-size:0!important;font-family:inherit!important;font-weight:400!important}.recurring-expense-actions .recurring-expense-save:hover:not(:disabled){background-color:#bbf7d0!important;transform:translateY(-1px)!important;border-color:transparent!important}.recurring-expense-actions .recurring-expense-save:disabled{opacity:.5!important;cursor:not-allowed!important;transform:none!important}.recurring-expense-actions .recurring-expense-save svg{width:18px!important;height:18px!important;fill:#16a34a!important;stroke:none!important;display:block!important;flex-shrink:0!important}.recurring-expense-actions .recurring-expense-cancel{display:flex!important;align-items:center!important;justify-content:center!important;width:40px!important;height:40px!important;background-color:#f3f4f6!important;color:#6b7280!important;border:none!important;border-radius:8px!important;cursor:pointer!important;transition:all .2s ease!important;padding:0!important;margin:0!important;font-size:0!important;font-family:inherit!important;font-weight:400!important}.recurring-expense-actions .recurring-expense-cancel:hover{background-color:#e5e7eb!important;transform:translateY(-1px)!important;border-color:transparent!important}.recurring-expense-actions .recurring-expense-cancel svg{width:18px!important;height:18px!important;fill:#6b7280!important;stroke:none!important;display:block!important;flex-shrink:0!important}.recurring-expense-actions .recurring-expense-delete{display:flex!important;align-items:center!important;justify-content:center!important;width:40px!important;height:40px!important;background-color:#fee2e2!important;color:#ef4444!important;border:none!important;border-radius:8px!important;cursor:pointer!important;transition:all .2s ease!important;padding:0!important;margin:0!important;font-size:0!important;font-family:inherit!important;font-weight:400!important}.recurring-expense-actions .recurring-expense-delete:hover{background-color:#fecaca!important;transform:translateY(-1px)!important;border-color:transparent!important}.recurring-expense-actions .recurring-expense-delete svg{width:18px!important;height:18px!important;fill:#ef4444!important;stroke:none!important;display:block!important;flex-shrink:0!important}.recurring-expense-actions .recurring-expense-edit-btn,.recurring-expense-actions .recurring-expense-save,.recurring-expense-actions .recurring-expense-cancel,.recurring-expense-actions .recurring-expense-delete{margin:5px!important}@media (max-width: 768px){.recurring-expense-actions .recurring-expense-edit-btn,.recurring-expense-actions .recurring-expense-save,.recurring-expense-actions .recurring-expense-cancel,.recurring-expense-actions .recurring-expense-delete{width:36px!important;height:36px!important;margin:5px!important}.recurring-expense-actions .recurring-expense-edit-btn svg,.recurring-expense-actions .recurring-expense-save svg,.recurring-expense-actions .recurring-expense-cancel svg,.recurring-expense-actions .recurring-expense-delete svg{width:16px!important;height:16px!important}}@media (max-width: 480px){.recurring-expense-actions .recurring-expense-edit-btn,.recurring-expense-actions .recurring-expense-save,.recurring-expense-actions .recurring-expense-cancel,.recurring-expense-actions .recurring-expense-delete{width:28px!important;height:28px!important;margin:5px!important}.recurring-expense-actions .recurring-expense-edit-btn svg,.recurring-expense-actions .recurring-expense-save svg,.recurring-expense-actions .recurring-expense-cancel svg,.recurring-expense-actions .recurring-expense-delete svg{width:14px!important;height:14px!important}}.settings-modal-overlay{position:fixed;inset:0;background:#00000080;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;box-sizing:border-box}.settings-modal{background:#fff;border-radius:16px;width:100%;max-width:400px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d;animation:modalSlideIn .3s ease;position:relative}@keyframes modalSlideIn{0%{opacity:0;transform:scale(.9) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}.settings-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px 16px;border-bottom:1px solid #e5e7eb}.settings-modal-header h3{margin:0;font-size:18px;font-weight:600;color:#374151}.settings-modal-close{background:none;border:none;font-size:24px;color:#6b7280;cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all .2s}.settings-modal-close:hover{background:#f3f4f6;color:#374151}.settings-modal-body{padding:24px}.settings-form-actions{display:flex;gap:12px;margin-top:24px;justify-content:flex-end}.settings-form-actions button{flex:1;padding:12px 20px;border-radius:8px;font-weight:500;cursor:pointer;transition:all .2s;font-size:14px;border:none}.settings-form-actions .settings-btn-secondary{background:#f3f4f6;color:#374151;border:1px solid #d1d5db}.settings-form-actions .settings-btn-secondary:hover{background:#e5e7eb}.settings-form-actions .settings-btn-primary{background:#6366f1;color:#fff}.settings-form-actions .settings-btn-primary:hover:not(:disabled){background:#4f46e5}.settings-form-actions .settings-btn-primary:disabled{opacity:.6;cursor:not-allowed}.settings-toast{position:fixed;top:20px;right:20px;padding:16px 20px;border-radius:12px;color:#fff;font-weight:500;z-index:1100;animation:toastSlideIn .3s ease;box-shadow:0 10px 30px #0003;max-width:350px}@keyframes toastSlideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.settings-toast.success{background:#10b981}.settings-toast.error{background:#ef4444}.settings-toast-content{display:flex;align-items:center;gap:8px}.settings-loading-container{min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;padding:20px;box-sizing:border-box}.settings-loading-content{background:#fff;border-radius:20px;padding:40px 30px;text-align:center;box-shadow:0 20px 60px #0000004d;max-width:300px;width:100%;animation:fadeInScale .5s ease}@keyframes fadeInScale{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.settings-loading-spinner{width:48px;height:48px;border:4px solid #f3f4f6;border-top:4px solid #6366f1;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 24px}.settings-loading-content h2{margin:0 0 8px;color:#374151;font-size:20px;font-weight:600}.settings-loading-content p{margin:0;color:#6b7280;font-size:14px}.spinner-small{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top:2px solid white;border-radius:50%;animation:spin 1s linear infinite}.skeleton-title{height:24px;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:loading 1.5s infinite;border-radius:6px;margin-bottom:20px;width:60%}.skeleton-input{height:48px;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:loading 1.5s infinite;border-radius:8px;margin-bottom:20px}.skeleton-button{height:44px;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:loading 1.5s infinite;border-radius:8px;width:40%}.skeleton-item{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:loading 1.5s infinite;border:none!important}.skeleton-text{height:16px;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:loading 1.5s infinite;border-radius:4px;margin-bottom:8px}.skeleton-name{width:70%}.skeleton-amount{width:30%}.skeleton-button-small{width:40px;height:40px;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:loading 1.5s infinite;border-radius:8px}@keyframes loading{0%{background-position:200% 0}to{background-position:-200% 0}}@media (max-width: 480px){.settings-loading-content{padding:30px 20px;border-radius:16px}.settings-loading-content h2{font-size:18px}.settings-loading-content p{font-size:13px}.settings-loading-spinner{width:40px;height:40px;margin-bottom:20px}}@supports (padding: max(0px)){.settings-container{padding-bottom:max(120px,calc(80px + env(safe-area-inset-bottom)))}}.admin-container{min-height:100vh;background:linear-gradient(135deg,#f8fafc,#e2e8f0);padding:20px 20px 120px;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.admin-header{display:flex;justify-content:space-between;align-items:center;background:#fff;padding:20px 30px;border-radius:16px;box-shadow:0 4px 6px #0000000d;margin-bottom:30px}.admin-user-info{display:flex;align-items:center;gap:15px}.admin-avatar{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#8b5cf6);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:18px}.admin-header h1{color:#1e293b;font-size:1.8rem;font-weight:700;margin:0}.admin-logout-button{display:flex;align-items:center;gap:8px;background:#ef4444;color:#fff;border:none;padding:12px 20px;border-radius:8px;cursor:pointer;font-weight:600;transition:all .2s}.admin-logout-button:hover{background:#dc2626;transform:translateY(-1px)}.admin-message{padding:12px 16px;border-radius:8px;margin-bottom:20px;display:flex;justify-content:space-between;align-items:center;font-weight:500}.admin-error{background:#fef2f2;color:#dc2626;border:1px solid #fecaca}.admin-success{background:#f0fdf4;color:#16a34a;border:1px solid #bbf7d0}.admin-message button{background:none;border:none;font-size:18px;cursor:pointer;color:inherit}.admin-tabs{display:flex;background:#fff;border-radius:12px;padding:8px;margin-bottom:30px;box-shadow:0 2px 4px #0000000d}.admin-tabs button{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;border:none;background:transparent;border-radius:8px;font-weight:600;color:#64748b;cursor:pointer;transition:all .2s}.admin-tabs button.active{background:#6366f1;color:#fff;box-shadow:0 2px 4px #6366f133}.admin-tabs button:hover:not(.active){background:#f1f5f9;color:#475569}.admin-content{background:#fff;border-radius:16px;padding:30px;box-shadow:0 4px 6px #0000000d}.admin-dashboard h2{color:#1e293b;font-size:1.5rem;font-weight:700;margin-bottom:30px}.admin-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin-bottom:40px}.admin-stat-card{background:linear-gradient(135deg,#fff,#f8fafc);border-radius:12px;padding:24px;border:1px solid #e2e8f0;display:flex;align-items:center;gap:16px;transition:transform .2s,box-shadow .2s}.admin-stat-card:hover{transform:translateY(-2px);box-shadow:0 8px 25px #0000001a}.stat-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff}.stat-icon svg{width:24px;height:24px}.users-icon{background:linear-gradient(135deg,#6366f1,#8b5cf6)}.admins-icon{background:linear-gradient(135deg,#f59e0b,#f97316)}.regular-icon{background:linear-gradient(135deg,#10b981,#059669)}.recent-icon{background:linear-gradient(135deg,#ec4899,#be185d)}.stat-info h3{font-size:14px;font-weight:600;color:#64748b;margin-bottom:4px;text-transform:uppercase;letter-spacing:.5px}.stat-number{font-size:24px;font-weight:800;color:#1e293b;margin:0}.admin-chart-container{background:#f8fafc;border-radius:12px;padding:24px;border:1px solid #e2e8f0}.admin-chart-container h3{color:#1e293b;font-size:1.2rem;font-weight:600;margin-bottom:20px;text-align:center}.admin-chart{display:flex;align-items:end;justify-content:space-around;height:200px;gap:8px}.chart-bar{display:flex;flex-direction:column;align-items:center;flex:1;position:relative}.bar-fill{width:100%;max-width:40px;background:linear-gradient(to top,#6366f1,#8b5cf6);border-radius:4px 4px 0 0;transition:height .5s ease;position:relative}.bar-label{font-size:11px;color:#64748b;margin-top:8px;text-align:center;font-weight:500}.bar-value{position:absolute;top:-20px;left:50%;transform:translate(-50%);font-size:10px;font-weight:600;color:#1e293b;background:#fff;padding:2px 6px;border-radius:4px;box-shadow:0 2px 4px #0000001a}.admin-users h2{color:#1e293b;font-size:1.5rem;font-weight:700;margin-bottom:30px}.admin-users-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.admin-btn-primary{display:flex;align-items:center;gap:8px;background:#6366f1;color:#fff;border:none;padding:12px 20px;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s}.admin-btn-primary:hover{background:#4f46e5;transform:translateY(-1px)}.admin-btn-secondary{background:#f1f5f9;color:#475569;border:1px solid #e2e8f0;padding:8px 12px;border-radius:6px;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.admin-btn-secondary:hover{background:#e2e8f0;transform:translateY(-1px)}.admin-btn-danger{background:#fef2f2;color:#dc2626;border:1px solid #fecaca;padding:8px 12px;border-radius:6px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.admin-btn-danger:hover{background:#fee2e2;transform:translateY(-1px)}.admin-filters{display:flex;gap:16px;margin-bottom:24px;flex-wrap:wrap}.filter-group{flex:1;min-width:200px}.admin-search-input,.admin-select{width:100%;padding:12px 16px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;background:#fff;transition:border-color .2s,box-shadow .2s}.admin-search-input:focus,.admin-select:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.admin-table-container{border-radius:12px;overflow:hidden;border:1px solid #e2e8f0;margin-bottom:24px}.admin-table{width:100%;border-collapse:collapse;background:#fff}.admin-table th{background:#f8fafc;color:#475569;font-weight:600;padding:16px;text-align:left;border-bottom:1px solid #e2e8f0;font-size:14px;text-transform:uppercase;letter-spacing:.5px}.admin-table td{padding:16px;border-bottom:1px solid #f1f5f9;font-size:14px}.admin-table tr:hover{background:#f8fafc}.user-cell{display:flex;align-items:center;gap:12px}.user-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#8b5cf6);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:14px;flex-shrink:0}.role-badge{padding:4px 8px;border-radius:6px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.role-badge.admin{background:#fef3c7;color:#92400e}.role-badge.user{background:#dbeafe;color:#1e40af}.user-actions{display:flex;gap:8px}.admin-pagination{display:flex;justify-content:space-between;align-items:center;padding:16px 0}.pagination-info{color:#64748b;font-size:14px;font-weight:500}.admin-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.admin-modal{background:#fff;border-radius:16px;width:100%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 25px -5px #0000001a}.admin-modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px 24px 0;margin-bottom:24px}.admin-modal-header h3{color:#1e293b;font-size:1.25rem;font-weight:700;margin:0}.admin-modal-close{background:none;border:none;font-size:24px;color:#64748b;cursor:pointer;padding:4px;border-radius:4px;transition:background-color .2s}.admin-modal-close:hover{background:#f1f5f9}.admin-form{padding:0 24px 24px}.admin-form-group{margin-bottom:20px}.admin-form-group label{display:block;color:#374151;font-weight:600;margin-bottom:8px;font-size:14px}.admin-form-group input,.admin-form-group select{width:100%;padding:12px 16px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;background:#fff;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.admin-form-group input:focus,.admin-form-group select:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.admin-form-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:32px}.admin-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.loading-spinner{width:48px;height:48px;border:4px solid #f3f4f6;border-top:4px solid #6366f1;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}.admin-access-denied{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;text-align:center;background:#fff;border-radius:16px;padding:60px 40px;box-shadow:0 4px 6px #0000000d}.admin-access-denied h1{color:#dc2626;font-size:2rem;font-weight:700;margin-bottom:16px}.admin-access-denied p{color:#64748b;font-size:1.1rem;margin-bottom:32px;max-width:400px}.admin-access-denied button{background:#6366f1;color:#fff;border:none;padding:12px 24px;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s}.admin-access-denied button:hover{background:#4f46e5;transform:translateY(-1px)}@media (max-width: 768px){.admin-container{padding:16px 16px 120px}.admin-header{padding:16px 20px;flex-direction:column;gap:16px;text-align:center}.admin-header h1{font-size:1.5rem}.admin-tabs{flex-direction:column;gap:8px}.admin-tabs button{padding:16px;text-align:center}.admin-content{padding:20px}.admin-stats-grid{grid-template-columns:repeat(2,1fr);gap:16px}.admin-stat-card{padding:16px}.stat-number{font-size:20px}.admin-chart{height:150px}.admin-filters{flex-direction:column;gap:12px}.filter-group{min-width:auto}.admin-table-container{overflow-x:auto}.admin-table{min-width:600px}.admin-pagination{flex-direction:column;gap:16px;text-align:center}.admin-modal{margin:20px;max-width:none}.admin-access-denied{padding:40px 20px}.admin-access-denied h1{font-size:1.5rem}}@media (max-width: 480px){.admin-stats-grid{grid-template-columns:1fr}.admin-stat-card{padding:12px}.stat-info h3{font-size:12px}.stat-number{font-size:18px}.admin-table th,.admin-table td{padding:12px 8px;font-size:12px}.user-cell{gap:8px}.user-avatar{width:28px;height:28px;font-size:12px}.role-badge{font-size:10px;padding:2px 6px}.user-actions{flex-direction:column;gap:4px}.admin-btn-secondary,.admin-btn-danger{padding:6px 8px;font-size:12px}}#root{width:100%;margin:0 auto;text-align:center}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}.loading-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background-color:#f7fafc}.spinner-large{width:3rem;height:3rem;border:4px solid rgba(66,153,225,.2);border-radius:50%;border-top-color:#3182ce;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
