body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{margin:0;padding:0}:root{--primary-color:#007aff;--accent-color:#5856d6;--success-color:#34c759;--warning-color:#ff9500;--error-color:#ff3b30;--transition:all 0.4s cubic-bezier(0.25,0.46,0.45,0.94);--font-primary:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",Roboto,sans-serif;--font-secondary:"SF Pro Text",-apple-system,BlinkMacSystemFont,sans-serif;--border-radius:12px;--shadow-light:0 2px 8px #00000014;--shadow-medium:0 4px 16px #0000001f;--shadow-heavy:0 8px 32px #00000029}body.dark-theme{--bg-primary:#000;--bg-secondary:#1c1c1e;--bg-tertiary:#2c2c2e;--text-primary:#fff;--text-secondary:#ebebf5;--text-muted:#8e8e93;--card-bg:#1c1c1ecc;--card-border:#ffffff1a;--navbar-bg:#000c;--glass-bg:#1c1c1eb3;--skills-card-bg:#2c2c2e}body.light-theme{--bg-primary:#fff;--bg-secondary:#f8f9fa;--bg-tertiary:#f9f9f9;--text-primary:#1d1d1f;--text-secondary:#424245;--text-muted:#86868b;--card-bg:#fffffff2;--card-border:#00000014;--navbar-bg:#ffffffe6;--glass-bg:#fffc;--skills-card-bg:#f5f5f7}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bg-primary);color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,Roboto,sans-serif;font-family:var(--font-primary);letter-spacing:-.01em;line-height:1.5;overflow-x:hidden;transition:all .4s cubic-bezier(.25,.46,.45,.94);transition:var(--transition)}.App{min-height:100vh}.navbar{align-items:center;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);background:var(--glass-bg);border-bottom:1px solid var(--card-border);display:flex;height:4rem;justify-content:space-between;overflow:visible;padding:1.5rem 3rem;position:fixed;top:0;transition:all .4s cubic-bezier(.25,.46,.45,.94);width:100%;z-index:1000}.navbar-visible{opacity:1;transform:translateY(0)}.navbar-hidden{opacity:0;transform:translateY(-100%)}.nav-brand .logo{align-items:center;display:flex;gap:1rem;height:4rem;overflow:visible}.logo-image{filter:drop-shadow(0 4px 8px rgba(0,122,255,.4));height:22rem;object-fit:contain;position:relative;transition:all .4s cubic-bezier(.25,.46,.45,.94);transition:var(--transition);width:22rem;z-index:10}.logo-text{display:flex;flex-direction:column;gap:.25rem}.logo-text .name{color:#007aff;color:var(--primary-color)}.logo-text .name,.logo-text .surname{font-size:1.5rem;font-weight:600;letter-spacing:-.02em;transition:all .4s cubic-bezier(.25,.46,.45,.94);transition:var(--transition)}.logo-text .surname{color:var(--text-primary)}.logo-text .subtitle{color:var(--text-muted);font-size:.75rem;font-weight:500;letter-spacing:.5px;text-transform:uppercase;transition:all .4s cubic-bezier(.25,.46,.45,.94);transition:var(--transition)}.nav-links{align-items:center;display:flex;gap:3rem}.nav-links a{color:var(--text-primary);font-size:1rem;font-weight:500;padding:.5rem 0;position:relative;text-decoration:none}.nav-links a,.nav-links a:after{transition:all .4s cubic-bezier(.25,.46,.45,.94);transition:var(--transition)}.nav-links a:after{background:#007aff;background:var(--primary-color);bottom:0;content:"";height:2px;left:0;position:absolute;width:0}.nav-links a:hover:after{width:100%}.nav-links a:hover{color:#007aff;color:var(--primary-color)}.theme-toggle{background:var(--card-bg);border:1px solid var(--card-border);border-radius:50%;box-shadow:0 2px 8px #00000014;box-shadow:var(--shadow-light);color:var(--text-primary);cursor:pointer;font-size:1.25rem;padding:.75rem;transition:all .4s cubic-bezier(.25,.46,.45,.94);transition:var(--transition)}.theme-toggle:hover{background:#007aff;background:var(--primary-color);box-shadow:0 4px 16px #0000001f;box-shadow:var(--shadow-medium);color:#fff;transform:scale(1.05)}.mobile-menu-toggle{background:none;border:none;cursor:pointer;display:none;padding:.5rem;z-index:1001}.hamburger{display:block;position:relative}.hamburger,.hamburger:after,.hamburger:before{background:var(--text-primary);height:2px;transition:all .4s cubic-bezier(.25,.46,.45,.94);transition:var(--transition);width:24px}.hamburger:after,.hamburger:before{content:"";position:absolute}.hamburger:before{top:-8px}.hamburger:after{bottom:-8px}.hamburger-open{background:#0000}.hamburger-open:before{top:0;transform:rotate(45deg)}.hamburger-open:after{bottom:0;transform:rotate(-45deg)}.nav-actions{gap:1rem}.hero,.nav-actions{align-items:center;display:flex}.hero{background:var(--bg-primary);height:100vh;justify-content:center;position:relative;text-align:center;transition:all .4s cubic-bezier(.25,.46,.45,.94);transition:var(--transition)}body.dark-theme .hero:before{animation:fadeIn 2s ease-out;background:url('data:image/svg+xml;charset=utf-8,<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg"><rect width="100%" height="100%" fill="url(%23grid)"/></svg>');bottom:0;content:"";left:0;opacity:.3;position:absolute;right:0;top:0}body.light-theme .hero:before{display:none}body.light-theme,body.light-theme .App{background-color:#fff!important}body.light-theme .hero{background:#fff!important}body.dark-theme .hero{background:#000!important}body.light-theme .hero *,body.light-theme .hero-content{background-color:initial!important}@keyframes fadeIn{0%{opacity:0}to{opacity:.3}}.hero-content{position:relative;z-index:2}@keyframes fadeInScale{0%{opacity:0;transform:scale(.9) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes slideInFromLeft{0%{opacity:0;transform:translateX(-50px)}to{opacity:1;transform:translateX(0)}}.animated-text{gap:1rem}.animated-text,.hero-title{align-items:center;display:flex;flex-direction:column}.hero-title{gap:.5rem;margin-bottom:1.5rem}.text-line{animation:fadeInUp .6s cubic-bezier(.25,.46,.45,.94) forwards;display:inline-block;opacity:0}.text-line:first-child{animation-delay:.2s}.text-line:nth-child(2){animation-delay:.6s}body.dark-theme .hero-title .text-line{color:#fff;font-size:clamp(3rem,8vw,5rem);font-weight:700;letter-spacing:-.02em;text-shadow:0 2px 4px #0000001a}body.light-theme .hero-title .text-line{color:#1d1d1f;font-size:clamp(3rem,8vw,5rem);font-weight:700;letter-spacing:-.02em;text-shadow:0 2px 4px #0000000d}.hero-subtitle{animation:fadeInScale .6s cubic-bezier(.25,.46,.45,.94) 1s both;color:#8e8e93;font-size:clamp(1.25rem,4vw,1.75rem);font-weight:400;letter-spacing:-.01em;opacity:0;text-align:center}.container{margin:0 auto;max-width:1200px;padding:0 2rem}.section-title{color:var(--text-primary);font-size:clamp(2.5rem,6vw,3.5rem);font-weight:700;letter-spacing:-.02em;margin-bottom:1.5rem}.section-subtitle,.section-title{text-align:center;transition:all .4s cubic-bezier(.25,.46,.45,.94);transition:var(--transition)}.section-subtitle{color:var(--text-muted);font-size:clamp(1.1rem,3vw,1.3rem);font-weight:400;letter-spacing:-.01em;margin-bottom:4rem}.about{background:var(--bg-primary);padding:6rem 0;position:relative}.about-content{align-items:center;display:flex;gap:3rem;margin:0 auto;max-width:1000px;padding:0 2rem}.about-image{flex-shrink:0}.about-image img{animation:profileImage 2s ease-out;border-radius:50%;box-shadow:0 4px 16px #0000001f;box-shadow:var(--shadow-medium);height:220px;object-fit:cover;width:220px}.about-text{flex:1 1}.about-text h2{color:var(--text-primary);font-size:2.5rem;font-weight:700;margin-bottom:1.5rem;position:relative}.about-text h2:after{background:#007aff;background:var(--primary-color);border-radius:2px;bottom:-.5rem;content:"";height:3px;left:0;position:absolute;width:60px}.about-text p{color:var(--text-secondary);font-size:1.1rem;line-height:1.7;margin-bottom:2rem;text-align:left}.university-logo{align-items:center;display:flex;gap:1rem;margin-top:1.5rem}.university-logo img{animation:universityLogo 1.5s ease-out .5s both;height:auto;width:60px}.university-logo span{animation:universityLogo 1.5s ease-out .7s both;color:#007aff;color:var(--primary-color);font-size:1rem;font-weight:600}@keyframes profileImage{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes universityLogo{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.skills-grid{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(2,1fr);margin-left:auto;margin-right:auto;margin-top:2rem;max-width:500px}.skill-card{background:var(--skills-card-bg);border:1px solid var(--card-border);border-radius:12px;border-radius:var(--border-radius);box-shadow:0 2px 8px #00000014;box-shadow:var(--shadow-light);padding:1rem;position:relative;text-align:left;transition:all .4s cubic-bezier(.25,.46,.45,.94);transition:var(--transition)}.skill-card:nth-child(3){grid-column:1;grid-row:2}.skill-card:hover{border-color:#007aff;border-color:var(--primary-color);box-shadow:0 4px 16px #0000001f;box-shadow:var(--shadow-medium);transform:translateY(-2px)}.skill-icon{display:block;font-size:1.25rem;margin-bottom:.5rem}.skill-card h3{color:var(--text-primary);font-size:.9rem;font-weight:600;margin-bottom:.25rem}.skill-card p{color:var(--text-secondary);font-size:.75rem;line-height:1.2;margin-bottom:.5rem}.skill-card:after{background:#007aff;background:var(--primary-color);border-radius:0 0 12px 12px;border-radius:0 0 var(--border-radius) var(--border-radius);bottom:0;content:"";height:2px;left:0;position:absolute;transition:width .3s ease}.skill-card:first-child:after{width:75%}.skill-card:nth-child(2):after{width:85%}.skill-card:nth-child(3):after{width:65%}.technologies{background:var(--bg-primary);padding:4rem 0;transition:all .4s cubic-bezier(.25,.46,.45,.94);transition:var(--transition)}.tech-icons{flex-wrap:wrap;gap:4rem;justify-content:center}.tech-icons,.tech-item{align-items:center;display:flex}.tech-item{flex-direction:column;gap:.5rem;transition:transform .3s ease}.tech-item:hover{transform:scale(1.1)}.tech-icon{color:#007aff;color:var(--primary-color);font-size:2.5rem;font-weight:700}.tech-icon,.tech-name{transition:all .4s cubic-bezier(.25,.46,.45,.94);transition:var(--transition)}.tech-name{color:var(--text-muted);font-size:.9rem;text-align:center}.projects{background:var(--bg-secondary);padding:6rem 0;transition:all .4s cubic-bezier(.25,.46,.45,.94);transition:var(--transition)}.projects-grid{grid-gap:3rem;display:grid;gap:3rem;grid-template-columns:repeat(auto-fit,minmax(500px,1fr))}.project-card{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;border-radius:var(--border-radius);box-shadow:0 2px 8px #00000014;box-shadow:var(--shadow-light);cursor:pointer;overflow:hidden;position:relative;transition:all .4s cubic-bezier(.25,.46,.45,.94);transition:var(--transition)}.project-card:hover{background:var(--glass-bg);box-shadow:0 8px 32px #00000029;box-shadow:var(--shadow-heavy);transform:translateY(-12px)}.project-card:after{background:#007affe6;border-radius:25px;color:#fff;content:"👁️ Ver más";font-weight:600;left:50%;opacity:0;padding:.75rem 1.5rem;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);transition:all .4s cubic-bezier(.25,.46,.45,.94);transition:var(--transition);z-index:5}.project-card:hover:after{opacity:1}.project-image img{height:250px;object-fit:cover;transition:all .4s cubic-bezier(.25,.46,.45,.94);transition:var(--transition);width:100%}.project-info{padding:2rem}.project-info h3{color:var(--text-primary);font-size:1.8rem;margin-bottom:1rem}.project-info h3,.project-info p{transition:all .4s cubic-bezier(.25,.46,.45,.94);transition:var(--transition)}.project-info p{color:var(--text-secondary);line-height:1.6;margin-bottom:2rem}.project-status{color:#007aff!important;color:var(--primary-color)!important;font-size:.9rem;font-weight:600;letter-spacing:1px;text-transform:uppercase;transition:all .4s cubic-bezier(.25,.46,.45,.94);transition:var(--transition)}.project-buttons{display:flex;gap:1rem}.btn-primary,.btn-secondary{border-radius:25px;display:inline-block;padding:.8rem 1.5rem;text-align:center;text-decoration:none;transition:all .3s ease}.btn-primary{background:#007aff;background:var(--primary-color);border-radius:12px;border-radius:var(--border-radius);box-shadow:0 2px 8px #00000014;box-shadow:var(--shadow-light);font-weight:600;transition:all .4s cubic-bezier(.25,.46,.45,.94);transition:var(--transition)}.btn-primary:hover{background:#5856d6;background:var(--accent-color);box-shadow:0 4px 16px #0000001f;box-shadow:var(--shadow-medium)}.btn-secondary{background:#0000;border:2px solid #007aff;border:2px solid var(--primary-color);border-radius:12px;border-radius:var(--border-radius);color:#007aff;color:var(--primary-color);font-weight:600;transition:all .4s cubic-bezier(.25,.46,.45,.94);transition:var(--transition)}.btn-secondary:hover{background:#007aff;background:var(--primary-color);box-shadow:0 2px 8px #00000014;box-shadow:var(--shadow-light);color:#fff;transform:translateY(-2px)}.contact{background:var(--bg-primary);padding:6rem 0;text-align:center;transition:all .4s cubic-bezier(.25,.46,.45,.94);transition:var(--transition)}.contact-buttons{align-items:center;display:flex;gap:2rem;justify-content:space-between;margin-left:auto;margin-right:0;margin-top:3rem;max-width:800px}.contact-buttons-row{align-items:flex-start;gap:2rem;margin-top:2rem}.contact-buttons-row,.contact-main{display:flex;justify-content:center}.contact-main{flex:1 1}.help-section{align-items:flex-end;display:flex;flex-direction:column;gap:.5rem;min-width:180px}.help-subtitle{font-size:.8rem;letter-spacing:1px}.btn-help-simple,.help-subtitle{color:var(--text-secondary);font-weight:500;text-transform:uppercase}.btn-help-simple{background:#0000;border:1px solid var(--text-secondary);border-radius:25px;cursor:pointer;font-size:.9rem;letter-spacing:.5px;padding:.75rem 1.5rem;transition:all .4s cubic-bezier(.25,.46,.45,.94);transition:var(--transition)}.btn-help-simple:hover{background:var(--text-secondary);color:var(--bg-primary);transform:translateY(-2px)}.btn-clinica{background:linear-gradient(135deg,#007aff,#5856d6);background:linear-gradient(135deg,var(--primary-color) 0,var(--accent-color) 100%);border:none;border-radius:25px;box-shadow:0 2px 8px #007acc4d;color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;letter-spacing:.5px;padding:.75rem 1.5rem;text-transform:uppercase;transition:all .4s cubic-bezier(.25,.46,.45,.94);transition:var(--transition)}.btn-clinica:hover{background:linear-gradient(135deg,#5856d6,#007aff);background:linear-gradient(135deg,var(--accent-color) 0,var(--primary-color) 100%);box-shadow:0 4px 12px #007acc66;transform:translateY(-2px)}body.dark-theme .btn-contact{background:#0000;border:2px solid var(--text-primary);border-radius:50px;color:var(--text-primary);cursor:pointer;display:inline-block;font-size:1.1rem;font-weight:600;padding:1rem 2rem;text-decoration:none;transition:all .4s cubic-bezier(.25,.46,.45,.94);transition:var(--transition)}body.dark-theme .btn-contact:hover{background:var(--text-primary);color:var(--bg-primary);transform:translateY(-3px)}body.light-theme .btn-contact{background:#0000;border:2px solid var(--text-primary);border-radius:50px;color:var(--text-primary);cursor:pointer;display:inline-block;font-size:1.1rem;font-weight:600;padding:1rem 2rem;text-decoration:none;transition:all .4s cubic-bezier(.25,.46,.45,.94);transition:var(--transition)}body.light-theme .btn-contact:hover{background:var(--text-primary);color:var(--bg-primary);transform:translateY(-3px)}.btn-help{background:linear-gradient(135deg,#007aff,#5856d6);background:linear-gradient(135deg,var(--primary-color) 0,var(--accent-color) 100%);border:none;border-radius:50px;box-shadow:0 4px 15px #007acc4d;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:600;padding:1rem 2rem;transition:all .4s cubic-bezier(.25,.46,.45,.94);transition:var(--transition)}.btn-help:hover{background:linear-gradient(135deg,#5856d6,#007aff);background:linear-gradient(135deg,var(--accent-color) 0,var(--primary-color) 100%);box-shadow:0 6px 20px #007acc66;transform:translateY(-3px)}@media (max-width:1024px){.container{padding:0 2rem}.nav-links{gap:2rem}.about-content{grid-template-columns:1fr 1fr}.projects-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}}@media (max-width:768px){.navbar{padding:.75rem 1.5rem}.nav-brand .logo,.navbar{height:3.5rem}.logo-image{height:6.5rem;width:6.5rem}.nav-links{align-items:flex-start;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:var(--glass-bg);border-left:1px solid var(--card-border);box-shadow:0 8px 32px #00000029;box-shadow:var(--shadow-heavy);flex-direction:column;gap:0;height:100vh;justify-content:flex-start;padding:5rem 2rem 2rem;position:fixed;right:-100%;top:0;transition:right .3s cubic-bezier(.25,.46,.45,.94);width:280px;z-index:1000}.nav-links-open{right:0}.nav-links a{border-bottom:1px solid var(--card-border);color:var(--text-primary);font-size:1.1rem;font-weight:600;padding:1rem 0;transition:all .4s cubic-bezier(.25,.46,.45,.94);transition:var(--transition);width:100%}.nav-links a:hover{background:#007aff1a;color:#007aff;color:var(--primary-color);padding-left:1rem}.nav-links a:after{display:none}.mobile-menu-toggle{display:block;margin-left:.5rem}.nav-actions{align-items:center;display:flex;gap:.5rem}.theme-toggle{font-size:1rem;padding:.5rem}.hero{background:var(--bg-primary)!important}body.light-theme .hero{background:#fff!important}body.dark-theme .hero{background:#000!important}.about-content{gap:2rem;grid-template-columns:1fr;text-align:center}.skills-grid{gap:1.5rem;grid-template-columns:1fr}.tech-icons{flex-wrap:wrap;gap:1.5rem}.tech-icon{font-size:2rem}.contact-buttons{align-items:center;flex-direction:column;gap:1rem}.help-section{gap:.75rem;order:2}.btn-help-simple{font-size:.8rem;padding:.5rem 1rem}.container{padding:0 1rem}}@media (max-width:480px){.navbar{padding:.5rem 1rem}.nav-brand .logo,.navbar{height:3rem}.logo-image{height:5.5rem;width:5.5rem}.nav-links{padding:4rem 1.5rem 2rem;width:250px}.nav-links a{font-size:1rem;padding:.75rem 0}.nav-actions{gap:.25rem}.theme-toggle{font-size:.9rem;padding:.4rem}.mobile-menu-toggle{padding:.25rem}.hamburger,.hamburger:after,.hamburger:before{width:20px}.hero{background:var(--bg-primary)!important}body.light-theme .hero{background:#fff!important}body.dark-theme .hero{background:#000!important}}@media (max-width:360px){.navbar{padding:.4rem .75rem}.nav-brand .logo,.navbar{height:2.75rem}.logo-image{height:5rem;width:5rem}.nav-links{padding:3.5rem 1rem 2rem;width:220px}.nav-links a{font-size:.9rem;padding:.5rem 0}.theme-toggle{font-size:.8rem;padding:.3rem}.mobile-menu-toggle{padding:.2rem}.hamburger,.hamburger:after,.hamburger:before{width:18px}.hero{background:var(--bg-primary)!important}body.light-theme .hero{background:#fff!important}body.dark-theme .hero{background:#000!important}}.App .modal-overlay{align-items:center;animation:modalFadeIn .3s ease-out;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#000c;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:2000}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.App .modal-content{animation:modalSlideIn .3s ease-out;border-radius:12px;border-radius:var(--border-radius);box-shadow:0 8px 32px #00000029;box-shadow:var(--shadow-heavy);max-height:85vh;max-width:95vw;overflow-y:auto;position:relative;width:900px}.App .modal-close,.App .modal-content{background:var(--card-bg);background:var(--modal-bg,var(--card-bg));border:1px solid var(--modal-border,var(--card-border))}.App .modal-close{align-items:center;border-radius:50%;color:var(--text-primary);color:var(--modal-text,var(--text-primary));cursor:pointer;display:flex;font-size:1.5rem;height:2.5rem;justify-content:center;position:absolute;right:1rem;top:1rem;transition:all .4s cubic-bezier(.25,.46,.45,.94);transition:var(--transition);width:2.5rem;z-index:10}.App .modal-close:hover{background:#007aff;background:var(--modal-accent,var(--primary-color));color:#fff;transform:scale(1.1)}.App .modal-header{background:var(--card-bg);background:var(--modal-bg,var(--card-bg));padding:2rem 2rem 1rem;text-align:center}.App .carousel-container{margin-bottom:1.5rem;position:relative;width:100%}.App .carousel-image-container{border:1px solid var(--modal-border,var(--card-border));border-radius:12px;border-radius:var(--border-radius);box-shadow:0 4px 16px #0000001f;box-shadow:var(--shadow-medium);height:400px;overflow:hidden;position:relative;width:100%}.App .modal-image{height:100%;object-fit:cover;transition:transform .3s ease;width:100%}body.dark-theme .App .modal-close,body.dark-theme .App .modal-content,body.dark-theme .App .modal-header{--modal-bg:#1a1a1a;--modal-border:#333;--modal-text:#fff;--modal-accent:#007aff}body.light-theme .App .modal-close,body.light-theme .App .modal-content,body.light-theme .App .modal-header{--modal-bg:#fff;--modal-border:#e0e0e0;--modal-text:#1d1d1f;--modal-accent:#007aff}.App .carousel-btn{align-items:center;background:#007aff;background:var(--modal-accent,var(--primary-color));border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:1.5rem;height:3rem;justify-content:center;opacity:.8;position:absolute;top:50%;transform:translateY(-50%);transition:all .4s cubic-bezier(.25,.46,.45,.94);transition:var(--transition);width:3rem}.App .carousel-btn:hover{opacity:1;transform:translateY(-50%) scale(1.1)}.App .carousel-btn-prev{left:1rem}.App .carousel-btn-next{right:1rem}.App .carousel-indicators{bottom:1rem;display:flex;gap:.5rem;left:50%;position:absolute;transform:translateX(-50%);z-index:10}.App .carousel-indicator{background:#ffffff4d;border:none;border-radius:50%;cursor:pointer;height:.75rem;transition:all .4s cubic-bezier(.25,.46,.45,.94);transition:var(--transition);width:.75rem}.App .carousel-indicator.active{transform:scale(1.2)}.App .carousel-indicator.active,.App .carousel-indicator:hover{background:#007aff;background:var(--modal-accent,var(--primary-color))}.App .carousel-indicator:hover{transform:scale(1.1)}.App .modal-title{color:var(--text-primary);color:var(--modal-text,var(--text-primary));font-size:2rem;font-weight:700;letter-spacing:-.02em;margin-bottom:1rem}.App .modal-body{background:var(--card-bg);background:var(--modal-bg,var(--card-bg));padding:0 2rem 2rem}.App .modal-description{color:var(--text-primary);color:var(--modal-text,var(--text-primary));font-size:1.1rem;font-weight:400;line-height:1.6;margin-bottom:2rem}.App .modal-features h3,.App .modal-technologies h3{color:var(--text-primary);color:var(--modal-text,var(--text-primary));font-size:1.2rem;font-weight:600;letter-spacing:-.01em;margin-bottom:1rem}.App .tech-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2rem}.App .tech-tag{border-radius:20px;color:#fff;font-size:.9rem;font-weight:500;padding:.5rem 1rem;transition:all .4s cubic-bezier(.25,.46,.45,.94);transition:var(--transition)}.App .tech-tag,.App .tech-tag:hover{background:#007aff;background:var(--modal-accent,var(--primary-color))}.App .tech-tag:hover{opacity:.8;transform:translateY(-2px)}.App .features-list{list-style:none;margin-bottom:2rem;padding:0}.App .feature-item{color:var(--text-primary);color:var(--modal-text,var(--text-primary));font-weight:400;line-height:1.5;padding:.5rem 0 .5rem 1.5rem;position:relative}.App .feature-item:before{color:#34c759;color:var(--modal-accent,var(--success-color));content:"✓";font-weight:700;left:0;position:absolute}.App .modal-footer{background:var(--card-bg);background:var(--modal-bg,var(--card-bg));border-top:1px solid var(--modal-border,var(--card-border));display:flex;gap:1rem;justify-content:center;padding:1.5rem 2rem 2rem}.App .modal-footer .btn-primary{border:none;border-radius:12px;border-radius:var(--border-radius);box-shadow:0 2px 8px #00000014;box-shadow:var(--shadow-light);color:#fff;cursor:pointer;font-weight:600;padding:.8rem 1.5rem;transition:all .4s cubic-bezier(.25,.46,.45,.94);transition:var(--transition)}.App .modal-footer .btn-primary,.App .modal-footer .btn-primary:hover{background:#007aff;background:var(--modal-accent,var(--primary-color))}.App .modal-footer .btn-primary:hover{box-shadow:0 4px 16px #0000001f;box-shadow:var(--shadow-medium);opacity:.8;transform:translateY(-2px)}.App .modal-footer .btn-secondary{background:#0000;border:2px solid #007aff;border:2px solid var(--modal-accent,var(--primary-color));border-radius:12px;border-radius:var(--border-radius);color:#007aff;color:var(--modal-accent,var(--primary-color));cursor:pointer;font-weight:600;padding:.8rem 1.5rem;transition:all .4s cubic-bezier(.25,.46,.45,.94);transition:var(--transition)}.App .modal-footer .btn-secondary:hover{background:#007aff;background:var(--modal-accent,var(--primary-color));box-shadow:0 2px 8px #00000014;box-shadow:var(--shadow-light);color:#fff;transform:translateY(-2px)}@media (max-width:768px){.App .modal-content{max-height:95vh;width:95vw}.App .modal-header{padding:1.5rem 1.5rem 1rem}.App .modal-body{padding:0 1.5rem 1.5rem}.App .modal-footer{flex-direction:column;padding:1rem 1.5rem 1.5rem}.App .modal-title{font-size:1.5rem}.App .carousel-image-container{height:350px}.App .carousel-btn{font-size:1.25rem;height:2.5rem;width:2.5rem}}@media (max-width:480px){.App .modal-content{max-height:98vh;width:98vw}.App .modal-header{padding:1rem 1rem .5rem}.App .modal-body{padding:0 1rem 1rem}.App .modal-footer{padding:.75rem 1rem 1rem}.App .modal-title{font-size:1.25rem}.App .carousel-image-container{height:280px}.App .carousel-btn{font-size:1rem;height:2rem;width:2rem}.App .tech-tags{gap:.25rem}.App .tech-tag{font-size:.8rem;padding:.25rem .75rem}}.App .contact-modal{border:1px solid var(--modal-border,var(--card-border))}.App .contact-modal,.App .contact-modal-header{background:var(--card-bg);background:var(--modal-bg,var(--card-bg))}.App .contact-modal-header{border-bottom:1px solid var(--modal-border,var(--card-border))}.App .contact-modal-title{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#007aff,#007aff);background:linear-gradient(135deg,var(--modal-accent,var(--primary-color)) 0,var(--modal-accent,var(--primary-color)) 100%);-webkit-background-clip:text;background-clip:text;font-size:2.5rem;font-weight:700;letter-spacing:-.02em;margin-bottom:1rem}.App .contact-modal-subtitle,.App .contact-modal-title{color:var(--text-primary);color:var(--modal-text,var(--text-primary))}.App .contact-modal-subtitle{font-size:1.1rem;font-weight:400;line-height:1.6;opacity:.8}.App .contact-modal-body{background:var(--card-bg);background:var(--modal-bg,var(--card-bg));padding:2rem}.App .contact-cards{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-top:1rem}.App .contact-card{background:var(--card-bg);background:var(--modal-bg,var(--card-bg));border:1px solid var(--modal-border,var(--card-border));border-radius:12px;border-radius:var(--border-radius);box-shadow:0 2px 8px #00000014;box-shadow:var(--shadow-light);cursor:pointer;padding:2rem;text-align:center;transition:all .4s cubic-bezier(.25,.46,.45,.94);transition:var(--transition)}.App .contact-card:hover{background:var(--glass-bg);background:var(--modal-bg,var(--glass-bg));border-color:#007aff;border-color:var(--modal-accent,var(--primary-color));box-shadow:0 8px 32px #00000029;box-shadow:var(--shadow-heavy);transform:translateY(-8px)}.App .contact-icon{margin-bottom:1.5rem}.App .icon-circle{align-items:center;border:2px solid #007aff;border:2px solid var(--modal-accent,var(--primary-color));border-radius:50%;display:flex;font-size:1.5rem;height:4rem;justify-content:center;margin:0 auto;transition:all .4s cubic-bezier(.25,.46,.45,.94);transition:var(--transition);width:4rem}.App .contact-card:hover .icon-circle{background:#007aff;background:var(--modal-accent,var(--primary-color));box-shadow:0 0 20px #007aff66;transform:scale(1.1)}.App .contact-card h3{font-size:1.25rem;font-weight:600;letter-spacing:-.01em;margin-bottom:.5rem}.App .contact-card h3,.App .contact-card p{color:var(--text-primary);color:var(--modal-text,var(--text-primary))}.App .contact-card p{font-size:.95rem;font-weight:400;line-height:1.5}@media (max-width:768px){.App .contact-modal{width:95vw}.App .contact-modal-header{padding:1.5rem 1.5rem 1rem}.App .contact-modal-body{padding:0 1.5rem 1.5rem}.App .contact-modal-title{font-size:2rem}.App .contact-cards{gap:1rem;grid-template-columns:1fr}}@media (max-width:480px){.App .contact-modal{width:98vw}.App .contact-modal-header{padding:1rem 1rem .5rem}.App .contact-modal-body{padding:0 1rem 1rem}.App .contact-modal-title{font-size:1.5rem}.App .contact-card{padding:1.5rem}.App .icon-circle{font-size:1.25rem;height:3rem;width:3rem}}@media (max-width:768px){.contact-buttons-row{align-items:center;flex-direction:column;gap:1rem}.help-section{align-items:center;margin-top:1rem}.about{padding:4rem 0}.about-content{align-items:center;flex-direction:column;gap:2rem;padding:0 1.5rem;text-align:center}.about-image img{height:180px;width:180px}.about-text h2{font-size:2rem;text-align:center}.about-text h2:after{left:50%;transform:translateX(-50%)}.about-text p{font-size:1rem;text-align:center}.university-logo{justify-content:center}.skills-grid{gap:.5rem;grid-template-columns:1fr;max-width:100%}.skill-card:nth-child(3){grid-column:1;grid-row:auto}.skill-card{padding:.875rem}}@media (max-width:480px){.about{padding:3rem 0}.about-content{padding:0 1rem}.about-image img{height:150px;width:150px}.about-text h2{font-size:1.75rem}.about-text p{font-size:.9rem}.university-logo img{width:50px}.university-logo span{font-size:.9rem}.skills-grid{gap:.375rem}.skill-card{padding:.75rem}.skill-icon{font-size:1rem}.skill-card h3{font-size:.8rem}.skill-card p{font-size:.7rem}}:root{--primary:#2563eb;--primary-dark:#1d4ed8;--primary-light:#3b82f6;--bg:#fff;--surface:#f8fafc;--surface-hover:#f1f5f9;--surface-card:#fff;--text:#0f172a;--text-secondary:#475569;--text-muted:#64748b;--border:#e2e8f0;--border-hover:#cbd5e1;--success:#059669;--success-light:#10b981;--error:#dc2626;--error-light:#ef4444;--warning:#d97706;--info:#0891b2;--shadow:#00000014;--shadow-hover:#0000001f;--shadow-card:#0000000d;--radius:12px;--radius-sm:8px;--radius-lg:16px;--transition:all 0.2s cubic-bezier(0.4,0,0.2,1)}*{box-sizing:border-box}body{background:#fff;background:var(--bg);color:#0f172a;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.6;margin:0}.carta-container{background:#fff;min-height:100vh;position:relative}.carta-header{align-items:center;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid #e2e8f0;box-shadow:0 4px 25px #00000014;display:flex;justify-content:space-between;padding:1rem 1.5rem;position:sticky;top:0;z-index:100}.carta-header,.carta-header:active,.carta-header:focus,.carta-header:hover{background:#fff!important}.header-content{align-items:flex-start;display:flex;flex-direction:column;gap:.25rem;text-align:left}.header-content,.header-content:active,.header-content:focus,.header-content:hover{background:#0000!important}.carta-title{-webkit-text-fill-color:unset;background:#0000!important;-webkit-background-clip:unset;background-clip:initial;border:none;color:#1f2937!important;font-size:1.25rem;font-weight:700;margin:0;outline:none;text-decoration:none}.carta-title:active,.carta-title:focus,.carta-title:hover{background:#0000!important;border:none;color:#1f2937!important;outline:none;text-decoration:none}.carta-subtitle{color:#475569;font-size:.875rem;font-weight:500;margin:0}.header-actions{display:flex;gap:.5rem}.carta-container .btn-login,.carta-container .btn-logout{align-items:center;background:linear-gradient(135deg,#fff,#f8fafc);border:2px solid #e2e8f0;border-radius:8px;box-shadow:0 2px 8px #00000014;color:#1f2937;cursor:pointer;display:flex;font-size:.875rem;font-weight:600;gap:.5rem;padding:.75rem 1.25rem;text-decoration:none;transition:all .2s ease}.carta-container .btn-login:hover,.carta-container .btn-logout:hover{background:linear-gradient(135deg,#f8fafc,#e2e8f0);border-color:#6b7280;box-shadow:0 6px 20px #0000001f;transform:translateY(-2px)}.carta-container .btn-logout{background:#dc2626;border-color:#dc2626;color:#fff}.carta-container .btn-logout:hover{background:#c82333;border-color:#c82333}.success-banner{align-items:center;animation:slideDown .3s ease-out;background:#059669;background:var(--success);box-shadow:0 4px 15px #0596694d;color:#fff;display:flex;font-weight:600;gap:.5rem;padding:1rem 1.5rem}@keyframes slideDown{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}.loading-container{align-items:center;display:flex;flex-direction:column;gap:1rem;justify-content:center;padding:4rem 2rem}.loading-spinner{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.loading-text{color:#475569;color:var(--text-secondary);font-weight:500}.carta-main{margin:0 auto;max-width:1200px;padding:2rem 1rem}.search-section{margin-bottom:2rem}.search-container{background:#fff;background:var(--surface-card);border:2px solid #e2e8f0;border:2px solid var(--border);border-radius:12px;border-radius:var(--radius);box-shadow:0 4px 15px #00000014;box-shadow:0 4px 15px var(--shadow);margin:0 auto;max-width:600px;padding:.75rem 1rem;position:relative;transition:all .2s cubic-bezier(.4,0,.2,1);transition:var(--transition)}.search-icon{color:#64748b;color:var(--text-muted);left:1rem;position:absolute;top:50%;transform:translateY(-50%)}.search-input{background:#0000;border:none;border-radius:8px;border-radius:var(--radius-sm);color:#0f172a;color:var(--text);font-size:1rem;padding:1rem 1rem 1rem 3rem;transition:all .2s cubic-bezier(.4,0,.2,1);transition:var(--transition);width:100%}.search-input:focus{background:#f1f5f9;background:var(--surface-hover);outline:none}.clear-search{background:none;border:none;border-radius:50%;color:#64748b;color:var(--text-muted);cursor:pointer;padding:.25rem;position:absolute;right:1rem;top:50%;transform:translateY(-50%);transition:all .2s cubic-bezier(.4,0,.2,1);transition:var(--transition)}.clear-search:hover{background:#f1f5f9;background:var(--surface-hover);color:#0f172a;color:var(--text)}.tabs-container{background:#fff;background:var(--surface-card);border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:12px;border-radius:var(--radius);box-shadow:0 8px 30px #00000014;box-shadow:0 8px 30px var(--shadow);overflow:hidden}.tabs-header{border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border);display:flex}.tab-button{background:none;border:none;border-bottom:3px solid #0000;color:#1f2937;cursor:pointer;flex:1 1;font-size:1rem;font-weight:600;opacity:.7;padding:1.25rem 1.5rem;transition:all .2s ease}.tab-button:hover{background:#f8fafc;color:#1f2937;opacity:1;transform:translateY(-1px)}.tab-button.active{background:#f8fafc;border-bottom-color:#6b7280;color:#6b7280;font-weight:700;opacity:1}.tab-content{padding:2rem}.categories-grid{display:flex;flex-direction:column;gap:1.5rem}.category-section{background:#fff;background:var(--surface-card);border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:12px;border-radius:var(--radius);box-shadow:0 4px 15px #0000000d;box-shadow:0 4px 15px var(--shadow-card);overflow:hidden}.category-header,.category-section{transition:all .2s cubic-bezier(.4,0,.2,1);transition:var(--transition)}.category-header{align-items:center;background:#f8fafc;background:var(--surface);border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border);cursor:pointer;display:flex;justify-content:space-between;padding:1.5rem}.category-header:hover{background:#f1f5f9;background:var(--surface-hover)}.category-info{display:flex;flex-direction:column;gap:.25rem}.category-title{font-size:1.25rem;font-weight:600;margin:0}.category-title,.item-count{color:#0f172a;color:var(--text)}.item-count{font-size:.875rem;font-weight:500;opacity:.9}.expand-icon{color:#64748b;color:var(--text-muted);transition:all .2s cubic-bezier(.4,0,.2,1);transition:var(--transition)}.expand-icon.expanded{transform:rotate(180deg)}.category-actions{align-items:center;display:flex;gap:.5rem}.btn-add-product{align-items:center;background:#059669;background:var(--success);border:none;border-radius:50%;box-shadow:0 2px 8px #0596694d;color:#fff;cursor:pointer;display:flex;height:32px;justify-content:center;transition:all .2s cubic-bezier(.4,0,.2,1);transition:var(--transition);width:32px}.btn-add-product:hover{background:#10b981;background:var(--success-light);box-shadow:0 4px 12px #05966966;transform:scale(1.1)}.items-list{display:flex;flex-direction:column;gap:1rem;padding:1.5rem}.item-card{background:#fff;background:var(--surface-card);border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:8px;border-radius:var(--radius-sm);box-shadow:0 2px 8px #0000000d;box-shadow:0 2px 8px var(--shadow-card);padding:1.5rem;transition:all .2s cubic-bezier(.4,0,.2,1);transition:var(--transition)}.item-card:hover{box-shadow:0 4px 12px #0000001f;box-shadow:0 4px 12px var(--shadow-hover);transform:translateY(-2px)}.item-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:1rem}.item-name{color:#0f172a;color:var(--text);font-size:1.125rem;font-weight:600;margin:0}.item-status{display:flex;gap:.5rem}.status-badge{align-items:center;border-radius:8px;border-radius:var(--radius-sm);display:flex;font-size:.75rem;font-weight:500;gap:.25rem;padding:.25rem .5rem}.status-badge.available{background:#059669;background:var(--success);box-shadow:0 2px 4px #0596694d;color:#fff;font-weight:600}.status-badge.unavailable{background:#dc2626;background:var(--error);box-shadow:0 2px 4px #dc26264d;color:#fff;font-weight:600}.item-price{margin-bottom:1rem}.price-tag{background:#059669;background:var(--success);border-radius:8px;border-radius:var(--radius-sm);box-shadow:0 2px 4px #0596694d;color:#fff;font-size:1rem;font-weight:700;padding:.5rem 1rem}.item-description{margin-bottom:1rem}.description-text{color:#475569;color:var(--text-secondary);font-size:.875rem;line-height:1.5;margin:0}.item-type{margin-bottom:1rem}.type-tag{background:#2563eb;background:var(--primary);box-shadow:0 2px 4px #2563eb4d;color:#fff;font-size:.75rem;font-weight:600;padding:.25rem .75rem}.item-ingredients,.type-tag{border-radius:8px;border-radius:var(--radius-sm)}.item-ingredients{background:#fef3c74d;border:1px solid #f59e0b4d;box-shadow:0 1px 3px #f59e0b1a;margin:.75rem 0;padding:.75rem;position:relative}.ingredients-title{align-items:center;color:#92400e;display:flex;font-size:.875rem;font-weight:600;gap:.25rem;margin:0 0 .5rem;opacity:.8}.ingredients-title:before{content:"🥘";font-size:1rem}.ingredients-grid{display:flex;flex-wrap:wrap;gap:.5rem}.ingredient-tag{background:#ffffffb3;border:1px solid #f59e0b66;border-radius:8px;border-radius:var(--radius-sm);box-shadow:0 1px 2px #f59e0b1a;color:#92400e;font-size:.75rem;font-weight:500;padding:.25rem .5rem;transition:all .2s ease}.ingredient-tag:hover{background:#ffffffe6;border-color:#f59e0b99;box-shadow:0 2px 4px #f59e0b33}.item-ingredients.bebidas{background:#dbeafe4d;border-color:#2563eb4d;box-shadow:0 1px 3px #2563eb1a}.item-ingredients.bebidas .ingredients-title{color:#1e40af}.item-ingredients.bebidas .ingredients-title:before{content:"🥃"}.item-ingredients.bebidas .ingredient-tag{background:#ffffffb3;border-color:#2563eb66;box-shadow:0 1px 2px #2563eb1a;color:#1e40af}.item-ingredients.bebidas .ingredient-tag:hover{background:#ffffffe6;border-color:#2563eb99;box-shadow:0 2px 4px #2563eb33}.item-actions{border-top:1px solid #e2e8f0;border-top:1px solid var(--border);margin-top:1rem;padding-top:1rem}.btn-edit{align-items:center;background:#6b7280;border:none;border-radius:8px;box-shadow:0 2px 8px #6b72804d;color:#fff;cursor:pointer;display:flex;font-size:.875rem;font-weight:600;gap:.5rem;padding:.75rem 1.25rem;transition:all .2s ease}.btn-edit:hover{background:#4b5563;box-shadow:0 6px 20px #6b728066;transform:translateY(-2px)}.edit-form{background:#f8fafc;background:var(--surface);border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:8px;border-radius:var(--radius-sm);margin-top:1rem;padding:1.5rem}.edit-title{color:#0f172a;color:var(--text);font-size:1rem;font-weight:600;margin:0 0 1rem}.form-grid{grid-gap:1rem;display:grid;gap:1rem}.form-field{display:flex;flex-direction:column;gap:.5rem}.form-label{color:#0f172a;color:var(--text);font-size:.875rem;font-weight:500}.form-input{border:1px solid #e2e8f0;border-radius:8px;font-size:.875rem;padding:.75rem;transition:all .2s ease}.form-input:focus{border-color:#6b7280;box-shadow:0 0 0 3px #6b72801a;outline:none}.form-input textarea{font-family:inherit;min-height:80px;resize:vertical}.form-actions{gap:.75rem;margin-top:1rem}.btn-cancel,.btn-save{align-items:center;border:none;border-radius:8px;border-radius:var(--radius-sm);cursor:pointer;display:flex;font-size:.875rem;font-weight:500;gap:.5rem;padding:.75rem 1.5rem;transition:all .2s cubic-bezier(.4,0,.2,1);transition:var(--transition)}.btn-save{background:#059669;background:var(--success);color:#fff}.btn-save:hover{background:#218838;transform:translateY(-1px)}.btn-cancel{background:#f8fafc;background:var(--surface);border:1px solid #e2e8f0;border:1px solid var(--border);color:#0f172a;color:var(--text)}.btn-cancel:hover{background:#f1f5f9;background:var(--surface-hover)}.modal-backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0009;z-index:1000}.modal-backdrop,.modal-container{bottom:0;left:0;position:fixed;right:0;top:0}.modal-container{align-items:center;display:flex;justify-content:center;padding:1rem;z-index:1001}.modal-content{animation:modalSlideIn .3s ease-out;background:#fff;border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 25px 80px #00000040;max-width:400px}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{background:linear-gradient(135deg,#f8fafc,#e2e8f0);border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border);border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:1.5rem}.modal-title{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#6b7280,#4b5563);-webkit-background-clip:text;background-clip:text;font-size:1.25rem;font-weight:700;margin:0}.modal-close{background:none;border:none;border-radius:50%;color:#64748b;color:var(--text-muted);cursor:pointer;padding:.5rem;transition:all .2s cubic-bezier(.4,0,.2,1);transition:var(--transition)}.modal-close:hover{background:#f1f5f9;background:var(--surface-hover);color:#0f172a;color:var(--text)}.login-form{background:#fff;padding:1.5rem}.form-group{margin-bottom:1.5rem}.form-group:last-child{margin-bottom:0}.form-group input{background:#fff;border:2px solid #d1d5db;border-radius:8px;box-sizing:border-box;display:block;font-size:.875rem;padding:.875rem 1rem;transition:all .2s ease;width:100%}.form-group input:focus{border-color:#6b7280;box-shadow:0 0 0 3px #6b72801a;color:#1f2937}.form-group input::placeholder{color:#6b7280;opacity:1}.form-group label{color:#1f2937;display:block;font-size:.875rem;margin-bottom:.5rem}.btn-primary,.btn-secondary{align-items:center;border:none;border-radius:8px;border-radius:var(--radius-sm);box-shadow:0 2px 8px #0000001a;cursor:pointer;display:flex;font-size:.875rem;font-weight:600;gap:.5rem;padding:.875rem 1.5rem;transition:all .2s cubic-bezier(.4,0,.2,1);transition:var(--transition)}.btn-primary{background:linear-gradient(135deg,#6b7280,#4b5563);color:#fff}.btn-primary:hover{background:linear-gradient(135deg,#4b5563,#374151);box-shadow:0 4px 15px #6b72804d;transform:translateY(-2px)}.btn-secondary{background:linear-gradient(135deg,#f8fafc,#e2e8f0);border:1px solid #e2e8f0;color:#1f2937}.btn-secondary:hover{background:linear-gradient(135deg,#e2e8f0,#cbd5e1);transform:translateY(-1px)}.error-message{align-items:center;background:linear-gradient(135deg,#dc35451a,#ef44440d);border:1px solid #dc354533;border-radius:8px;border-radius:var(--radius-sm);color:var(--error);display:flex;font-size:.875rem;gap:.5rem;margin-top:1rem;padding:.875rem}@media (max-width:768px){.carta-header{align-items:stretch;flex-direction:column;gap:1rem}.header-content{align-items:center;text-align:center}.header-actions{justify-content:center}.tabs-header{flex-direction:column}.tab-button{border-bottom:none;border-right:2px solid #0000}.tab-button.active{border-bottom:none;border-right-color:#6b7280}.items-list,.tab-content{padding:1rem}.item-header{align-items:flex-start;flex-direction:column;gap:.5rem}.modal-content{margin:1rem;max-width:none}}@media (max-width:480px){.carta-main{padding:1rem .5rem}.search-input{font-size:.875rem}.edit-form,.item-card{padding:1rem}.form-actions{flex-direction:column}}.search-highlight{animation:searchPulse .6s ease-in-out;background:linear-gradient(135deg,#6b72801a,#4b55631a);border-left:3px solid #6b7280}@keyframes searchPulse{0%{box-shadow:0 0 0 0 #6b728066;transform:scale(1)}50%{box-shadow:0 0 0 8px #6b728000;transform:scale(1.02)}to{box-shadow:0 0 0 0 #6b728000;transform:scale(1)}}.search-active .category-section:not(.search-highlight){filter:grayscale(.3);opacity:.6;transition:all .2s cubic-bezier(.4,0,.2,1);transition:var(--transition)}.search-active .category-section.search-highlight{filter:none;opacity:1}.carta-container .carta-modal-backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0009;bottom:0;left:0;position:fixed;right:0;top:0;z-index:1000}.carta-container .carta-modal-container{align-items:center;bottom:0;display:flex;justify-content:center;left:0;padding:1rem;position:fixed;right:0;top:0;z-index:1001}.carta-container .carta-modal-content{animation:cartaModalSlideIn .3s ease-out;background:#fff!important;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 25px 80px #00000040;max-height:90vh;max-width:400px;overflow-y:auto;width:100%}@keyframes cartaModalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.carta-container .carta-modal-header{align-items:center;background:linear-gradient(135deg,#f8fafc,#e2e8f0)!important;border-bottom:1px solid #e2e8f0;border-radius:16px 16px 0 0;display:flex;justify-content:space-between;padding:1.5rem}.carta-container .carta-modal-title{color:#1f2937!important;font-size:1.25rem;font-weight:700;margin:0}.carta-container .carta-modal-close{background:none;border:none;border-radius:50%;color:#64748b;cursor:pointer;padding:.5rem;transition:all .2s ease}.carta-container .carta-modal-close:hover{background:#f1f5f9;color:#1f2937}.carta-container .carta-login-form{background:#fff!important;padding:1.5rem}.carta-container .carta-form-group{margin-bottom:1.5rem}.carta-container .carta-form-group:last-child{margin-bottom:0}.carta-container .carta-form-group input{background:#fff!important;border:2px solid #d1d5db;border-radius:8px;box-sizing:border-box;color:#1f2937;display:block;font-size:.875rem;padding:.875rem 1rem;transition:all .2s ease;width:100%}.carta-container .carta-form-group input:focus{background:#fff!important;border-color:#6b7280;box-shadow:0 0 0 3px #6b72801a;color:#1f2937;outline:none}.carta-container .carta-form-group input::placeholder{color:#6b7280;opacity:1}.carta-container .carta-form-group label{color:#1f2937;display:block;font-size:.875rem;font-weight:600;margin-bottom:.5rem}.carta-container .carta-btn-primary,.carta-container .carta-btn-secondary{align-items:center;border:none;border-radius:8px;box-shadow:0 2px 8px #0000001a;cursor:pointer;display:flex;font-size:.875rem;font-weight:600;gap:.5rem;padding:.875rem 1.5rem;transition:all .2s ease}.carta-container .carta-btn-primary{background:linear-gradient(135deg,#6b7280,#4b5563)!important;color:#fff!important}.carta-container .carta-btn-primary:hover{background:linear-gradient(135deg,#4b5563,#374151)!important;box-shadow:0 4px 15px #6b72804d;transform:translateY(-2px)}.carta-container .carta-btn-secondary{background:linear-gradient(135deg,#f8fafc,#e2e8f0)!important;border:1px solid #e2e8f0;color:#1f2937!important}.carta-container .carta-btn-secondary:hover{background:linear-gradient(135deg,#f1f5f9,#d1d5db)!important;box-shadow:0 4px 15px #0000001a;transform:translateY(-2px)}.carta-container .carta-error-message{align-items:center;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;display:flex;font-size:.875rem;gap:.5rem;margin-top:1rem;padding:1rem}.carta-container .carta-form-actions{display:flex;gap:1rem;margin-top:2rem}.carta-container .carta-form-actions .carta-btn-primary,.carta-container .carta-form-actions .carta-btn-secondary{flex:1 1}.carta-container .carta-form-group select{background:#fff!important;border:2px solid #d1d5db;border-radius:8px;box-sizing:border-box;color:#1f2937;display:block;font-size:.875rem;padding:.875rem 1rem;transition:all .2s ease;width:100%}.carta-container .carta-form-group select:focus{background:#fff!important;border-color:#6b7280;box-shadow:0 0 0 3px #6b72801a;color:#1f2937;outline:none}.carta-container .carta-category-display{align-items:center;background:#f8fafc;border:2px solid #d1d5db;border-radius:8px;box-sizing:border-box;color:#64748b;display:flex;font-size:.875rem;min-height:3rem;padding:.875rem 1rem;transition:all .2s ease;width:100%}.clinica-container{align-items:center;background:linear-gradient(135deg,#f8fafc,#e2e8f0);display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;justify-content:center;min-height:100vh;padding:20px}.login-card{background:#fff;border-radius:16px;box-shadow:0 20px 40px #0000001a,0 0 0 1px #0000000d;max-width:1200px;overflow:hidden;padding:48px;position:relative;width:100%}.login-card:before{background:linear-gradient(90deg,#2563eb,#1d4ed8);content:"";height:4px;left:0;position:absolute;right:0;top:0}.login-header{margin-bottom:40px;position:relative;text-align:center}.login-header:after{background:linear-gradient(90deg,#2563eb,#1d4ed8);border-radius:2px;bottom:-20px;content:"";height:3px;left:50%;position:absolute;transform:translateX(-50%);width:60px}.login-header h1{color:#1e293b;font-size:32px;font-weight:700;letter-spacing:-.5px;margin:0 0 8px}.login-header p{color:#64748b;font-size:16px;font-weight:400;margin:0}.login-form{gap:24px}.form-group,.login-form{display:flex;flex-direction:column}.form-group{gap:8px;position:relative}.form-group label{color:#374151;font-size:14px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.form-group input{background:#f9fafb;border:2px solid #e5e7eb;border-radius:12px;color:#1f2937;font-size:16px;font-weight:500;padding:16px 20px;transition:all .3s ease}.form-group input:focus{background:#fff;border-color:#2563eb;box-shadow:0 0 0 4px #2563eb1a;outline:none;transform:translateY(-1px)}.form-group input::placeholder{color:#9ca3af;font-weight:400}.form-group input:hover{background:#fff;border-color:#d1d5db}.form-group input.rut-valid{background:#f0fdf4;border-color:#059669}.form-group input.rut-valid:focus{border-color:#059669;box-shadow:0 0 0 4px #0596691a}.form-group input.rut-invalid{background:#fef2f2;border-color:#dc2626}.form-group input.rut-invalid:focus{border-color:#dc2626;box-shadow:0 0 0 4px #dc26261a}.dashboard-content{display:flex;flex-direction:column;gap:32px;margin:0 auto;max-width:1200px;padding:0 20px;width:100%}.user-info{background:linear-gradient(135deg,#f8fafc,#e2e8f0);border:1px solid #e5e7eb;border-radius:12px;padding:32px;width:100%}.user-info p{color:#374151;font-size:18px;font-weight:500;margin:12px 0}.user-info strong{color:#1e293b;font-weight:600}.dashboard-actions{display:flex;gap:24px;justify-content:center;width:100%}.dashboard-actions .login-button{background:linear-gradient(135deg,#dc2626,#b91c1c);font-size:16px;min-width:160px;padding:20px 32px}.dashboard-actions .login-button:hover:not(:disabled){background:linear-gradient(135deg,#b91c1c,#991b1b);box-shadow:0 12px 24px #dc26264d}.pabellon-button{background:linear-gradient(135deg,#059669,#047857)!important}.pabellon-button:hover:not(:disabled){background:linear-gradient(135deg,#047857,#065f46)!important;box-shadow:0 12px 24px #0596694d!important}.export-button{background:linear-gradient(135deg,#2563eb,#1d4ed8)!important}.export-button:hover:not(:disabled){background:linear-gradient(135deg,#1d4ed8,#1e40af)!important;box-shadow:0 12px 24px #2563eb4d!important}.modal-overlay{align-items:center;background:#000c;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.modal-content{background:#0f172a;border:1px solid #1e293b;border-radius:16px;box-shadow:0 25px 50px #00000080;color:#f8fafc;max-height:90vh;max-width:800px;overflow-y:auto;position:relative;width:100%}.modal-header{align-items:center;background:linear-gradient(135deg,#1e293b,#0f172a);border-bottom:1px solid #1e293b;border-radius:16px 16px 0 0;display:flex;justify-content:space-between;padding:24px 32px}.modal-header h2{color:#f8fafc;font-size:24px;font-weight:600;margin:0}.close-button{align-items:center;background:none;border:none;border-radius:50%;color:#94a3b8;cursor:pointer;display:flex;font-size:28px;height:32px;justify-content:center;padding:0;transition:all .3s ease;width:32px}.close-button:hover{background:#1e293b;color:#f8fafc}.pabellon-form{background:#0f172a;display:flex;flex-direction:column;gap:24px;padding:32px}.form-row{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.pabellon-form .form-group{display:flex;flex-direction:column;gap:8px}.pabellon-form label{align-items:center;color:#dc2626;display:flex;font-size:14px;font-weight:600;gap:8px;letter-spacing:.5px;text-transform:uppercase}.pabellon-form input,.pabellon-form select,.pabellon-form textarea{background:#0f172a;border:2px solid #1e293b;border-radius:8px;color:#fff;font-size:16px;font-weight:500;padding:12px 16px;transition:all .3s ease}.pabellon-form input:focus,.pabellon-form select:focus,.pabellon-form textarea:focus{background:#1e293b;border-color:#dc2626;box-shadow:0 0 0 3px #dc26261a;color:#fff;outline:none}.pabellon-form input:hover,.pabellon-form select:hover,.pabellon-form textarea:hover{background:#1e293b;border-color:#475569}.pabellon-form input::placeholder,.pabellon-form textarea::placeholder{color:#94a3b8;font-weight:400}.pabellon-form textarea{min-height:80px;resize:vertical}.pabellon-form select{background:#0f172a;color:#fff;cursor:pointer}.pabellon-form select option{background:#0f172a;color:#fff;padding:8px}.pabellon-form select:focus{background:#1e293b}.field-note{align-items:center;color:#94a3b8;display:flex;font-size:12px;font-style:italic;gap:4px;margin-top:4px}.form-actions{border-top:1px solid #1e293b;display:flex;gap:16px;justify-content:flex-end;margin-top:24px;padding-top:24px}.save-button{background:linear-gradient(135deg,#059669,#047857);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;letter-spacing:.5px;min-width:140px;padding:16px 32px;text-transform:uppercase;transition:all .3s ease}.save-button:hover:not(:disabled){background:linear-gradient(135deg,#047857,#065f46);box-shadow:0 8px 16px #0596694d;transform:translateY(-2px)}.save-button:disabled{cursor:not-allowed;opacity:.6;transform:none}.cancel-button{background:linear-gradient(135deg,#475569,#334155);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;min-width:120px;padding:16px 32px;transition:all .3s ease}.cancel-button:hover{background:linear-gradient(135deg,#334155,#1e293b);box-shadow:0 8px 16px #4755694d;transform:translateY(-2px)}.error-message{background:linear-gradient(135deg,#fef2f2,#fee2e2);border:1px solid #fecaca;border-radius:12px;box-shadow:0 2px 8px #dc26261a;color:#dc2626;font-size:14px;font-weight:500;padding:16px;text-align:center}.login-button{background:linear-gradient(135deg,#2563eb,#1d4ed8);border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;letter-spacing:.5px;overflow:hidden;padding:18px 32px;position:relative;text-transform:uppercase;transition:all .3s ease}.login-button:before{background:linear-gradient(90deg,#0000,#fff3,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s;width:100%}.login-button:hover:not(:disabled):before{left:100%}.login-button:hover:not(:disabled){background:linear-gradient(135deg,#1d4ed8,#1e40af);box-shadow:0 12px 24px #2563eb4d;transform:translateY(-2px)}.login-button:active:not(:disabled){box-shadow:0 6px 12px #2563eb4d;transform:translateY(0)}.login-button:disabled{background:linear-gradient(135deg,#9ca3af,#6b7280);cursor:not-allowed;opacity:.6;transform:none}.loading-text{align-items:center;display:flex;gap:4px;justify-content:center}.loading-dots:after{animation:loadingDots 1.5s infinite;content:""}@keyframes loadingDots{0%,20%{content:""}40%{content:"."}60%{content:".."}80%,to{content:"..."}}@media (max-width:768px){.clinica-container{background:linear-gradient(135deg,#f1f5f9,#e2e8f0);padding:16px}.login-card{border-radius:12px;box-shadow:0 10px 30px #00000026;max-width:100%;padding:32px 24px}.dashboard-content{gap:24px;padding:0 10px}.user-info{padding:24px}.user-info p{font-size:16px}.dashboard-actions{align-items:center;flex-direction:column;gap:16px}.dashboard-actions .login-button{font-size:15px;min-width:140px;padding:16px 24px}.login-header h1{font-size:28px}.login-header p{font-size:15px}.form-group input{font-size:16px;padding:14px 16px}.login-button{font-size:15px;padding:16px 24px}}@media (max-width:480px){.clinica-container{padding:12px}.login-card{border-radius:8px;padding:24px 20px}.login-header{margin-bottom:32px}.login-header h1{font-size:24px}.login-header p{font-size:14px}.login-form{gap:20px}.form-group input{border-radius:8px;font-size:16px;padding:12px 14px}.login-button{border-radius:8px;font-size:14px;padding:14px 20px}.error-message{font-size:13px;padding:12px}}.form-group,.login-card{animation:fadeInUp .6s ease-out}.form-group{animation-fill-mode:both}.form-group:first-child{animation-delay:.1s}.form-group:nth-child(2){animation-delay:.2s}.login-button{animation:fadeInUp .6s ease-out;animation-delay:.3s;animation-fill-mode:both}@media (max-width:768px){.modal-content{margin:10px;max-height:95vh}.modal-header{padding:20px 24px}.modal-header h2{font-size:20px}.pabellon-form{padding:24px}.form-row{gap:16px;grid-template-columns:1fr}.form-actions{flex-direction:column}.cancel-button,.save-button{width:100%}.procedimientos-table-container{border-radius:8px;margin-top:24px}.table-header{padding:16px}.table-header h3{font-size:18px}.table-header p{font-size:13px}.table-wrapper{max-height:300px}.procedimientos-table{font-size:12px}.procedimientos-table td,.procedimientos-table th{padding:8px 6px}.procedimientos-table th{font-size:11px}.no-procedimientos{padding:32px 16px}.no-procedimientos p{font-size:14px}.no-procedimientos p:first-child{font-size:16px}}.pabellon-form .form-group{animation:fadeInUp .3s ease-out}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.procedimientos-table-container{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 4px 6px #0000001a;margin-left:auto;margin-right:auto;margin-top:32px;max-width:1200px;overflow:hidden;width:100%}.table-header{background:linear-gradient(135deg,#f8fafc,#e2e8f0);border-bottom:1px solid #e5e7eb;padding:32px}.table-header h3{align-items:center;color:#1e293b;display:flex;font-size:24px;font-weight:600;gap:8px;margin:0 0 12px}.table-header p{color:#64748b;font-size:16px;line-height:1.6;margin:0}.table-wrapper{max-height:500px;overflow-x:auto;overflow-y:auto}.procedimientos-table{background:#fff;border-collapse:collapse;font-size:15px;min-width:1000px;width:100%}.procedimientos-table thead{background:linear-gradient(135deg,#f1f5f9,#e2e8f0);position:sticky;top:0;z-index:10}.procedimientos-table th{border-bottom:2px solid #e5e7eb;color:#374151;font-size:14px;font-weight:600;letter-spacing:.5px;padding:20px 16px;text-align:left;text-transform:uppercase;white-space:nowrap}.procedimientos-table td{border-bottom:1px solid #f3f4f6;color:#374151;font-weight:500;padding:16px;vertical-align:top}.procedimientos-table tbody tr:hover{background:linear-gradient(135deg,#f8fafc,#f1f5f9);transition:all .2s ease}.procedimientos-table tbody tr:nth-child(2n){background:#fafafa}.procedimientos-table tbody tr:nth-child(2n):hover{background:linear-gradient(135deg,#f8fafc,#f1f5f9)}.no-procedimientos{color:#64748b;padding:60px 32px;text-align:center}.no-procedimientos p{font-size:18px;font-weight:500;margin:12px 0}.no-procedimientos p:first-child{color:#374151;font-size:22px;font-weight:600}@media (max-width:768px){.procedimientos-table-container{border-radius:8px;margin-top:24px;max-width:100%}.table-header{padding:20px}.table-header h3{font-size:20px}.table-header p{font-size:14px}.table-wrapper{max-height:400px}.procedimientos-table{font-size:13px;min-width:800px}.procedimientos-table td,.procedimientos-table th{padding:12px 8px}.procedimientos-table th{font-size:12px}.no-procedimientos{padding:40px 20px}.no-procedimientos p{font-size:16px}.no-procedimientos p:first-child{font-size:18px}}
/*# sourceMappingURL=main.78d0a514.css.map*/