.whatsapp-assistant[data-astro-cid-pjytdzw7]{position:fixed;bottom:20px;right:20px;z-index:9999;opacity:0;transform:translateY(20px) scale(.9);transition:opacity .5s ease,transform .5s ease}.whatsapp-assistant[data-astro-cid-pjytdzw7].visible{opacity:1;transform:translateY(0) scale(1)}.whatsapp-button[data-astro-cid-pjytdzw7]{display:flex;align-items:center;gap:.75rem;background:linear-gradient(135deg,#25d366,#128c7e);color:#fff;padding:1rem 1.5rem;border-radius:50px;text-decoration:none;box-shadow:0 4px 12px #25d36666;font-weight:600;font-size:.95rem;transition:all .3s ease;cursor:pointer}.whatsapp-button[data-astro-cid-pjytdzw7]:hover{transform:translateY(-2px);box-shadow:0 6px 20px #25d36680;background:linear-gradient(135deg,#128c7e,#25d366)}.whatsapp-button[data-astro-cid-pjytdzw7]:active{transform:translateY(0)}.whatsapp-icon[data-astro-cid-pjytdzw7]{width:28px;height:28px;flex-shrink:0}.whatsapp-text[data-astro-cid-pjytdzw7]{white-space:nowrap}.whatsapp-assistant[data-astro-cid-pjytdzw7].pulse{animation:pulse-vibration .6s ease-in-out}@keyframes pulse-vibration{0%,to{transform:translateY(0) scale(1)}25%{transform:translateY(-5px) scale(1.05) rotate(-2deg)}50%{transform:translateY(0) scale(1.1) rotate(2deg)}75%{transform:translateY(-3px) scale(1.05) rotate(-1deg)}}@media(max-width:768px){.whatsapp-assistant[data-astro-cid-pjytdzw7]{bottom:15px;right:15px}.whatsapp-button[data-astro-cid-pjytdzw7]{padding:.875rem 1.25rem;font-size:.875rem}.whatsapp-icon[data-astro-cid-pjytdzw7]{width:24px;height:24px}.whatsapp-text[data-astro-cid-pjytdzw7]{font-size:.875rem}}@media(max-width:480px){.whatsapp-text[data-astro-cid-pjytdzw7]{display:none}.whatsapp-button[data-astro-cid-pjytdzw7]{padding:1rem;border-radius:50%;width:56px;height:56px;justify-content:center}.whatsapp-icon[data-astro-cid-pjytdzw7]{width:28px;height:28px}}header{background-color:var(--color-bg);border-bottom:1px solid var(--color-border);width:100%}.public-nav,.dashboard-nav,.admin-nav{padding:1rem 2rem;display:flex;align-items:center;justify-content:space-between;gap:2rem;width:100%;max-width:1200px;margin:0 auto}.nav-brand{display:flex;align-items:center;gap:.75rem}.nav-brand a{text-decoration:none;display:flex;align-items:center}.nav-brand .logo-image{height:60px;width:auto;display:block}@media(max-width:768px){.nav-brand .logo-image{height:60px}}@media(max-width:480px){.nav-brand .logo-image{height:60px}}.nav-links{display:flex;gap:1.5rem;flex:1;justify-content:center}.nav-links a{color:var(--color-text);text-decoration:none;padding:.5rem 1rem;border-radius:4px;transition:color .2s,background-color .2s}.nav-links a:hover{color:var(--color-primary);background-color:var(--color-bg-light)}.nav-links a.active{color:var(--color-primary);font-weight:600;background-color:var(--color-bg-light)}.nav-user{display:flex;align-items:center;gap:1rem}.btn-login{padding:.5rem 1rem;color:var(--color-primary);text-decoration:none;border:1px solid var(--color-primary);border-radius:6px;transition:all .2s;font-size:.875rem;font-weight:500}.btn-login:hover{background-color:var(--color-primary);color:#fff}.btn-register{padding:.5rem 1rem;background-color:var(--color-primary);color:#fff;text-decoration:none;border-radius:6px;transition:background-color .2s;border:none;font-size:.875rem;font-weight:600}.btn-register:hover{background-color:var(--color-primary-dark);color:#fff}.btn-dashboard{padding:.5rem 1rem;background-color:var(--color-primary);color:#fff;text-decoration:none;border-radius:6px;font-weight:600;transition:background-color .2s;border:none;font-size:.875rem}.btn-dashboard:hover{background-color:var(--color-primary-dark);color:#fff}.btn-create-qr{padding:.5rem 1rem;background-color:var(--color-primary);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.875rem;font-weight:600;transition:background-color .2s}.btn-create-qr:hover{background-color:var(--color-primary-dark)}.admin-badge{background-color:var(--color-admin, #dc2626);color:#fff;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600;text-transform:uppercase}.user-dropdown{position:relative}.user-dropdown-trigger{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;background-color:transparent;border:1px solid var(--color-border);border-radius:8px;cursor:pointer;transition:all .2s;font-family:inherit}.user-dropdown-trigger:hover,.user-dropdown-trigger[aria-expanded=true]{background-color:var(--color-bg-light);border-color:var(--color-primary)}.user-dropdown .user-email{color:var(--color-text);font-size:.875rem;font-weight:500}.dropdown-arrow{color:var(--color-text-light);transition:transform .2s;flex-shrink:0}.user-dropdown-trigger[aria-expanded=true] .dropdown-arrow{transform:rotate(180deg)}.user-dropdown-menu{position:absolute;top:calc(100% + .5rem);right:0;min-width:220px;background-color:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;box-shadow:0 4px 12px #0000001a;opacity:0;visibility:hidden;transform:translateY(-8px);transition:all .2s ease;z-index:1000;padding:.5rem}.user-dropdown-menu.show{opacity:1;visibility:visible;transform:translateY(0)}.dropdown-item{display:flex;align-items:center;gap:.75rem;width:100%;padding:.75rem 1rem;background-color:transparent;border:none;border-radius:6px;color:var(--color-text);text-decoration:none;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .2s;text-align:left;font-family:inherit}.dropdown-item:hover{background-color:var(--color-bg-light);color:var(--color-primary)}.dropdown-item svg{flex-shrink:0;color:var(--color-text-light);transition:color .2s}.dropdown-item:hover svg{color:var(--color-primary)}.dropdown-divider{margin:.5rem 0;border:none;border-top:1px solid var(--color-border)}.dropdown-item-danger{color:#dc2626}.dropdown-item-danger:hover{background-color:#fef2f2;color:#dc2626}.dropdown-item-danger:hover svg{color:#dc2626}.nav-more-dropdown{position:relative}.nav-more-trigger{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background-color:transparent;border:1px solid var(--color-border);border-radius:4px;color:var(--color-text);text-decoration:none;cursor:pointer;transition:all .2s;font-family:inherit;font-size:.875rem;font-weight:500}.nav-more-trigger:hover,.nav-more-trigger[aria-expanded=true]{color:var(--color-primary);background-color:var(--color-bg-light);border-color:var(--color-primary)}.nav-more-trigger .dropdown-arrow{color:var(--color-text-light);transition:transform .2s}.nav-more-trigger[aria-expanded=true] .dropdown-arrow{transform:rotate(180deg)}.nav-more-menu{position:absolute;top:calc(100% + .5rem);right:0;min-width:200px;background-color:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;box-shadow:0 4px 12px #0000001a;opacity:0;visibility:hidden;transform:translateY(-8px);transition:all .2s ease;z-index:1000;padding:.5rem}.nav-more-menu.show{opacity:1;visibility:visible;transform:translateY(0)}.nav-more-menu .dropdown-item{display:flex;align-items:center;width:100%;padding:.75rem 1rem;background-color:transparent;border:none;border-radius:6px;color:var(--color-text);text-decoration:none;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .2s;text-align:left;font-family:inherit}.nav-more-menu .dropdown-item:hover{background-color:var(--color-bg-light);color:var(--color-primary)}.nav-more-menu .dropdown-item.active{color:var(--color-primary);font-weight:600;background-color:var(--color-bg-light)}.mobile-menu-btn{display:none;background:none;border:none;cursor:pointer;padding:.5rem;color:var(--color-text);margin-right:.75rem}.mobile-menu-btn svg{width:24px;height:24px}.mobile-menu-overlay{display:none;position:fixed;inset:0;background-color:#00000080;z-index:999;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease}.mobile-menu-overlay.show{opacity:1;visibility:visible}.mobile-menu{position:fixed;top:0;right:0;width:280px;height:100vh;background-color:var(--color-bg);box-shadow:-2px 0 8px #0000001a;z-index:1000;transform:translate(100%);transition:transform .3s ease;overflow-y:auto;padding:1rem}.mobile-menu.show{transform:translate(0)}.mobile-menu-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--color-border)}.mobile-menu-header .nav-brand{margin:0}.mobile-menu-header .logo-image{height:40px}.mobile-menu-close{background:none;border:none;cursor:pointer;padding:.5rem;color:var(--color-text);display:flex;align-items:center;justify-content:center}.mobile-menu-close svg{width:24px;height:24px}.mobile-menu-links{display:flex;flex-direction:column;gap:.25rem}.mobile-menu-links a{display:flex;align-items:center;padding:.875rem 1rem;color:var(--color-text);text-decoration:none;border-radius:6px;transition:background-color .2s,color .2s;font-size:.9375rem;font-weight:500}.mobile-menu-links a:hover,.mobile-menu-links a.active{background-color:var(--color-bg-light);color:var(--color-primary);font-weight:600}.mobile-menu-user{margin-top:1rem;padding-top:1rem}.mobile-menu-divider{margin:1rem 0;border:none;border-top:1px solid var(--color-border)}.mobile-menu-user-header{padding:.75rem 1rem;margin-bottom:.5rem}.mobile-menu-user-email{font-size:.875rem;font-weight:600;color:var(--color-text)}.mobile-menu-user-links{display:flex;flex-direction:column;gap:.25rem}.mobile-menu-user-link{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;color:var(--color-text);text-decoration:none;border-radius:6px;transition:background-color .2s,color .2s;font-size:.9375rem;font-weight:500;background:none;border:none;cursor:pointer;text-align:left;width:100%;font-family:inherit}.mobile-menu-user-link:hover{background-color:var(--color-bg-light);color:var(--color-primary)}.mobile-menu-user-link svg{flex-shrink:0;color:var(--color-text-light);transition:color .2s}.mobile-menu-user-link:hover svg{color:var(--color-primary)}.mobile-menu-user-link-danger{color:#dc2626}.mobile-menu-user-link-danger:hover{background-color:#fef2f2;color:#dc2626}.mobile-menu-user-link-danger svg{color:#dc2626}.mobile-menu-user-link-danger:hover svg{color:#dc2626}@media(max-width:768px){header{width:100%}.public-nav,.dashboard-nav,.admin-nav{padding:.75rem 1rem;flex-wrap:nowrap;width:100%;gap:.75rem}.mobile-menu-btn{display:block;order:1;margin-left:auto}.nav-brand{flex:0 0 auto;margin-right:auto}.nav-brand .logo-image{height:60px}.nav-links{display:none}.nav-user{flex:0 0 auto;gap:.5rem;display:flex;align-items:center}.btn-create-qr{padding:.5rem .75rem;font-size:.8125rem;white-space:nowrap;order:-1}.btn-login,.btn-register{padding:.5rem .75rem;font-size:.8125rem;white-space:nowrap}.user-dropdown{display:none}.user-dropdown-trigger{padding:.5rem .75rem;min-width:auto}.user-dropdown .user-email{display:none}.user-dropdown-menu{right:0;left:auto;min-width:200px}.nav-more-menu{right:0;left:auto;min-width:180px}}@media(max-width:480px){.public-nav,.dashboard-nav,.admin-nav{padding:.5rem .75rem;gap:.5rem}.nav-brand .logo-image{height:60px}.btn-login,.btn-register,.btn-create-qr{padding:.5rem;font-size:.75rem}.btn-login span,.btn-register span{display:none}.btn-login:after{content:"Entrar"}.btn-register:after{content:"Registro"}.user-dropdown-trigger{padding:.5rem}}.image-cropper-modal{position:fixed;top:0;left:0;width:100%;height:100%;z-index:1000;display:flex;align-items:center;justify-content:center}.cropper-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#000c}.cropper-container{position:relative;background:#fff;border-radius:8px;max-width:90vw;max-height:90vh;width:800px;z-index:1001;display:flex;flex-direction:column}.cropper-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid #e5e7eb}.cropper-header h3{margin:0;font-size:1.25rem;font-weight:600}.close-btn{background:none;border:none;font-size:2rem;cursor:pointer;color:#6b7280;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.close-btn:hover{background:#f3f4f6;color:#1f2937}.cropper-content{padding:1.5rem;overflow:auto}.cropper-preview-container{position:relative;width:100%;max-height:500px;margin-bottom:1.5rem;border:1px solid #e5e7eb;border-radius:6px;overflow:hidden;background:#f9fafb}.cropper-canvas{display:block;max-width:100%;height:auto}.crop-overlay{position:absolute;top:0;left:0;background:#00000080;cursor:move}.crop-box{position:absolute;border:2px solid #3b82f6;background:transparent;cursor:move;box-shadow:0 0 0 9999px #00000080}.crop-handle{position:absolute;width:12px;height:12px;background:#3b82f6;border:2px solid white;border-radius:50%}.crop-handle-nw{top:-6px;left:-6px;cursor:nw-resize}.crop-handle-ne{top:-6px;right:-6px;cursor:ne-resize}.crop-handle-sw{bottom:-6px;left:-6px;cursor:sw-resize}.crop-handle-se{bottom:-6px;right:-6px;cursor:se-resize}.cropper-controls{margin-bottom:1.5rem}.control-group{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.control-group label{font-size:.875rem;color:#374151}.zoom-slider{flex:1;max-width:200px}.cropper-actions{display:flex;gap:1rem;justify-content:flex-end}.btn-cancel,.btn-confirm,.btn-use-original{padding:.75rem 1.5rem;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s;border:none}.btn-cancel{background:#f3f4f6;color:#1f2937}.btn-cancel:hover{background:#e5e7eb}.btn-use-original{background:#10b981;color:#fff}.btn-use-original:hover{background:#059669}.btn-confirm{background:#3b82f6;color:#fff}.btn-confirm:hover{background:#2563eb}.qr-drawer{position:fixed;inset:0;z-index:1000;pointer-events:none;opacity:0;transition:opacity .3s ease}.qr-drawer.open{opacity:1;pointer-events:all}.drawer-overlay{position:absolute;inset:0;background-color:#00000080;backdrop-filter:blur(4px)}.drawer-content{position:absolute;top:0;right:0;bottom:0;width:100%;max-width:600px;background:#fff;box-shadow:-4px 0 12px #00000026;display:flex;flex-direction:column;transform:translate(100%);transition:transform .3s ease;overflow-y:auto}.qr-drawer.open .drawer-content{transform:translate(0)}.drawer-header{padding:1.5rem;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:center;background:#fff;position:sticky;top:0;z-index:10}.drawer-header h2{font-size:1.5rem;font-weight:600;color:#1f2937;margin:0}.drawer-close{background:none;border:none;cursor:pointer;padding:.5rem;color:#6b7280;transition:color .2s;display:flex;align-items:center;justify-content:center}.drawer-close:hover{color:#1f2937}.drawer-body{padding:2rem;flex:1}.drawer-result{margin-top:2rem;padding-top:2rem;border-top:1px solid #e5e7eb}.drawer-success{text-align:center}.success-icon{font-size:3rem;margin-bottom:1rem}.drawer-success h3{font-size:1.25rem;color:#1f2937;margin-bottom:1.5rem}.qr-display-mini{background:#f9fafb;padding:1.5rem;border-radius:8px;margin-bottom:1.5rem}.qr-image-mini{width:200px;height:200px;margin:0 auto 1rem;display:block}.qr-info-mini{text-align:center}.qr-code-text{color:#6b7280;font-size:.875rem;margin-bottom:.5rem}.qr-url{margin-top:.5rem}.qr-url a{color:#3b82f6;text-decoration:none;word-break:break-all;font-size:.875rem}.qr-url a:hover{text-decoration:underline}.drawer-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.btn-primary{padding:.75rem 1.5rem;background-color:#3b82f6;color:#fff;text-decoration:none;border-radius:6px;font-weight:600;transition:background-color .2s;display:inline-block;border:none;cursor:pointer;font-size:1rem}.btn-primary:hover{background-color:#2563eb}.btn-secondary{padding:.75rem 1.5rem;background-color:#fff;color:#3b82f6;text-decoration:none;border-radius:6px;font-weight:600;border:2px solid #3b82f6;transition:all .2s;display:inline-block;cursor:pointer;font-size:1rem}.btn-secondary:hover{background-color:#3b82f6;color:#fff}.timer{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background-color:#eff6ff;border:1px solid #3b82f6;border-radius:6px;font-weight:600;margin-top:1rem}.timer-active{display:flex;align-items:center;gap:.5rem;color:#1e40af}.timer-expired{display:flex;align-items:center;gap:.5rem;color:#991b1b}.timer.expired{background-color:#fee2e2;border-color:#ef4444}.timer-icon{font-size:1.25rem}.timer-text{font-size:.875rem;white-space:nowrap}.module-selector{margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid #e5e7eb}.module-selector h3{font-size:1.125rem;font-weight:600;color:#1f2937;margin-bottom:1rem}.module-options{display:flex;flex-direction:column;gap:.75rem}.module-option{display:block;cursor:pointer}.module-option input[type=radio]{display:none}.module-option-content{display:flex;align-items:center;gap:1rem;padding:1rem;border:2px solid #e5e7eb;border-radius:8px;transition:all .2s;background-color:#fff}.module-option:hover .module-option-content{border-color:#3b82f6;background-color:#eff6ff}.module-option input[type=radio]:checked+.module-option-content{border-color:#3b82f6;background-color:#eff6ff;box-shadow:0 0 0 3px #3b82f61a}.module-icon{font-size:2rem;flex-shrink:0}.module-info{flex:1;display:flex;flex-direction:column;gap:.25rem}.module-info strong{font-size:1rem;color:#1f2937;display:block}.module-info span{font-size:.875rem;color:#6b7280}.custom-slug-section{margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid #e5e7eb}.custom-slug-intro{font-size:.875rem;color:#6b7280;margin:0;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.custom-slug-toggle{background:none;border:none;color:#3b82f6;font-size:.875rem;font-weight:600;cursor:pointer;padding:0;text-decoration:underline;transition:color .2s;font-family:inherit}.custom-slug-toggle:hover{color:#2563eb}.custom-slug-panel{margin-top:1rem;padding-top:1rem;border-top:1px solid #e5e7eb}.custom-slug-field{margin-bottom:1.5rem}.custom-slug-field:last-child{margin-bottom:0}.custom-slug-name-input{width:100%;padding:.75rem;border:2px solid #e5e7eb;border-radius:6px;font-size:.875rem;color:#1f2937;background-color:#fff;transition:border-color .2s;font-family:inherit}.custom-slug-name-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.custom-slug-label{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.75rem}.custom-slug-label>span:first-child{font-size:1rem;font-weight:600;color:#1f2937}.custom-slug-hint{font-size:.875rem;color:#6b7280;font-weight:400}.custom-slug-input-wrapper{display:flex;align-items:center;border:2px solid #e5e7eb;border-radius:6px;background-color:#fff;transition:border-color .2s}.custom-slug-input-wrapper:focus-within{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.custom-slug-prefix{padding:.75rem .5rem .75rem .75rem;color:#6b7280;font-size:.875rem;white-space:nowrap;user-select:none}.custom-slug-input{flex:1;border:none;outline:none;padding:.75rem;font-size:.875rem;color:#1f2937;background:transparent}.custom-slug-help{margin-top:.5rem;font-size:.75rem;color:#6b7280}.custom-slug-error{margin-top:.5rem;padding:.75rem;background-color:#fee2e2;color:#991b1b;border-radius:6px;font-size:.875rem;border:1px solid #fecaca}.upload-zone{width:100%;max-width:600px;margin:2rem auto}.upload-area{border:2px dashed #e5e7eb;border-radius:8px;padding:3rem 2rem;text-align:center;cursor:pointer;transition:all .2s;background-color:#f9fafb}.upload-area:hover{border-color:#3b82f6;background-color:#eff6ff}.upload-area.dragover{border-color:#3b82f6;background-color:#dbeafe}.upload-icon{color:#6b7280;margin-bottom:1rem}.upload-area h3{font-size:1.25rem;margin-bottom:.5rem;color:#1f2937}.upload-area p{color:#6b7280;margin-bottom:.5rem}.file-info{font-size:.875rem;margin-top:.5rem}.upload-progress{margin-top:1rem}.progress-bar{width:100%;height:8px;background-color:#e5e7eb;border-radius:4px;overflow:hidden;margin-bottom:.5rem}.progress-fill{height:100%;background-color:#3b82f6;transition:width .3s;width:0%}.progress-text{text-align:center;color:#6b7280;font-size:.875rem}.error-message{margin-top:1rem;padding:1rem;background-color:#fee2e2;color:#991b1b;border-radius:4px;border:1px solid #fecaca}@media(max-width:768px){.cropper-container{width:95vw;max-height:95vh}.cropper-preview-container{max-height:300px}.drawer-content{max-width:100%}.drawer-actions{flex-direction:column}.btn-primary,.btn-secondary{width:100%}.custom-slug-prefix{font-size:.75rem;padding:.75rem .25rem .75rem .5rem}.custom-slug-input{font-size:.8125rem}}.drawer-content-advanced{max-width:700px}.drawer-body-advanced{padding:1.5rem}.step-container{animation:fadeIn .3s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.step-header{text-align:center;margin-bottom:2rem;position:relative}.step-header h3{font-size:1.5rem;color:#1f2937;margin:.5rem 0}.step-header p{color:#6b7280;font-size:.875rem;margin-top:.5rem}.step-number{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:50%;font-size:1.25rem;font-weight:700;margin-bottom:.75rem}.btn-back{position:absolute;top:0;left:0;background:#f3f4f6;border:none;padding:.5rem 1rem;border-radius:6px;color:#374151;font-weight:500;cursor:pointer;transition:all .2s;font-size:.875rem}.btn-back:hover{background:#e5e7eb;transform:translate(-2px)}.modules-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-top:2rem}.module-card{background:#fff;border:2px solid #e5e7eb;border-radius:8px;padding:1.25rem 1rem;text-align:center;cursor:pointer;transition:all .3s ease;position:relative;overflow:hidden}.module-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--module-color);transform:scaleX(0);transition:transform .3s ease}.module-card:hover{border-color:var(--module-color);transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.module-card:hover:before{transform:scaleX(1)}.module-icon{font-size:2rem;margin-bottom:.5rem}.module-card h4{font-size:1rem;color:#1f2937;margin:.25rem 0;font-weight:600}.module-card p{color:#6b7280;font-size:.75rem;line-height:1.4;margin:0}.config-section{max-width:100%}.config-item{margin-bottom:1.5rem}.config-label{display:block;font-size:.875rem;font-weight:600;color:#374151;margin-bottom:.5rem}.config-hint{font-size:.75rem;color:#6b7280;margin-top:.25rem;line-height:1.4}.config-input{width:100%;padding:.625rem;border:2px solid #e5e7eb;border-radius:6px;font-size:.875rem;transition:border-color .2s;box-sizing:border-box}.config-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.config-checkbox{display:flex;align-items:center;gap:.5rem;cursor:pointer}.config-checkbox input[type=checkbox]{width:18px;height:18px;cursor:pointer}.file-upload-area{position:relative}.file-input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}.file-label{display:block;border:2px dashed #d1d5db;border-radius:8px;padding:1.5rem;text-align:center;cursor:pointer;transition:all .2s;background:#f9fafb}.file-label:hover{border-color:#667eea;background:#f3f4f6}.file-placeholder{display:flex;flex-direction:column;align-items:center;gap:.5rem;color:#6b7280;font-size:.875rem}.upload-icon{font-size:2rem}.file-selected{display:flex;align-items:center;gap:.5rem;background:#fff;padding:.75rem;border-radius:6px;border:1px solid #e5e7eb}.file-icon{font-size:1.25rem}.file-name{flex:1;color:#1f2937;font-weight:500;text-align:left;font-size:.875rem}.file-size{color:#6b7280;font-size:.75rem}.file-remove{background:#ef4444;color:#fff;border:none;width:20px;height:20px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.625rem;transition:background .2s}.file-remove:hover{background:#dc2626}.files-list{margin-top:.75rem;display:flex;flex-direction:column;gap:.5rem}.file-item{display:flex;align-items:center;gap:.5rem;background:#f9fafb;padding:.5rem .75rem;border-radius:6px;border:1px solid #e5e7eb;font-size:.875rem}.btn-generate{width:100%;padding:.875rem 1.5rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s;margin-top:.5rem}.btn-generate:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #667eea4d}.btn-generate:disabled{opacity:.6;cursor:not-allowed}.error-message{background:#fee2e2;color:#991b1b;padding:.75rem;border-radius:6px;margin-bottom:1rem;border:1px solid #fecaca;font-size:.875rem}.drawer-actions{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap;margin-top:1.5rem}.btn-primary,.btn-secondary{padding:.625rem 1.25rem;border-radius:6px;font-weight:600;text-decoration:none;display:inline-flex;align-items:center;gap:.5rem;transition:all .2s;border:none;cursor:pointer;font-size:.875rem}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 2px 8px #667eea4d}.btn-secondary{background:#f3f4f6;color:#374151}.btn-secondary:hover{background:#e5e7eb}@media(max-width:768px){.modules-grid{grid-template-columns:repeat(2,1fr)}.drawer-actions{flex-direction:column}.btn-primary,.btn-secondary{width:100%;justify-content:center}}.upload-cta{text-align:center;padding:3rem 2rem;background:linear-gradient(135deg,#f9fafb,#f3f4f6);border-radius:12px;border:2px dashed #d1d5db}.upload-cta h2{font-size:2rem;color:#1f2937;margin-bottom:.5rem}.upload-cta p{color:#6b7280;font-size:1.125rem;margin-bottom:2rem}.btn-create-qr-large{display:inline-flex;align-items:center;gap:.75rem;padding:1.25rem 2.5rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:12px;font-size:1.25rem;font-weight:700;cursor:pointer;transition:all .3s;box-shadow:0 4px 12px #667eea4d}.btn-create-qr-large:hover{transform:translateY(-2px);box-shadow:0 6px 16px #667eea66}.btn-icon-large{font-size:1.5rem}.btn-hero-primary{padding:1rem 2rem;background-color:#fff;color:#667eea;text-decoration:none;border:none;border-radius:8px;font-weight:600;font-size:1.125rem;transition:transform .2s,box-shadow .2s;box-shadow:0 4px 6px #0000001a;cursor:pointer}.btn-hero-primary:hover{transform:translateY(-2px);box-shadow:0 6px 12px #00000026}[data-astro-cid-37fxchfa]{margin:0;padding:0;box-sizing:border-box}:root{--color-primary: #ff5757;--color-primary-dark: #e63946;--color-primary-darker: #dc2626;--color-text: #1f2937;--color-text-light: #6b7280;--color-bg: #ffffff;--color-bg-light: #f9fafb;--color-border: #e5e7eb}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;color:var(--color-text);background-color:var(--color-bg);line-height:1.6;min-height:100vh;display:flex;flex-direction:column}header[data-astro-cid-37fxchfa]{background-color:var(--color-bg);border-bottom:1px solid var(--color-border);width:100%}.public-nav[data-astro-cid-37fxchfa],.dashboard-nav[data-astro-cid-37fxchfa],.admin-nav[data-astro-cid-37fxchfa]{max-width:1200px;margin:0 auto;padding:1rem 2rem;display:flex;align-items:center;justify-content:space-between;gap:2rem;width:100%}.nav-brand[data-astro-cid-37fxchfa] a[data-astro-cid-37fxchfa]{text-decoration:none;display:flex;align-items:center}.nav-brand[data-astro-cid-37fxchfa] .logo-image[data-astro-cid-37fxchfa]{height:60px;width:auto;display:block}@media(max-width:768px){.nav-brand[data-astro-cid-37fxchfa] .logo-image[data-astro-cid-37fxchfa]{height:60px}}@media(max-width:480px){.nav-brand[data-astro-cid-37fxchfa] .logo-image[data-astro-cid-37fxchfa]{height:60px}}.nav-links[data-astro-cid-37fxchfa]{display:flex;gap:1.5rem;flex:1;justify-content:center}.nav-links[data-astro-cid-37fxchfa] a[data-astro-cid-37fxchfa]{color:var(--color-text);text-decoration:none;padding:.5rem 1rem;border-radius:4px;transition:color .2s,background-color .2s}.nav-links[data-astro-cid-37fxchfa] a[data-astro-cid-37fxchfa]:hover{color:var(--color-primary);background-color:var(--color-bg-light)}.nav-links[data-astro-cid-37fxchfa] a[data-astro-cid-37fxchfa].active{color:var(--color-primary);font-weight:600;background-color:var(--color-bg-light)}.nav-user[data-astro-cid-37fxchfa]{display:flex;align-items:center;gap:1rem}.admin-badge[data-astro-cid-37fxchfa]{background-color:var(--color-admin, #dc2626);color:#fff;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600;text-transform:uppercase;margin-left:.5rem}main[data-astro-cid-37fxchfa]{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:2rem;overflow:visible}main[data-astro-cid-37fxchfa]:has(.landing-viewer){max-width:100%;padding:0}footer[data-astro-cid-37fxchfa]{background-color:var(--color-bg-light);border-top:1px solid var(--color-border);padding:2rem;margin-top:auto}footer[data-astro-cid-37fxchfa] p[data-astro-cid-37fxchfa]{text-align:center;color:var(--color-text-light);margin-bottom:1rem}.footer-links[data-astro-cid-37fxchfa]{display:flex;justify-content:center;gap:2rem;flex-wrap:wrap}.footer-links[data-astro-cid-37fxchfa] a[data-astro-cid-37fxchfa]{color:var(--color-text-light);text-decoration:none;transition:color .2s}.footer-links[data-astro-cid-37fxchfa] a[data-astro-cid-37fxchfa]:hover{color:var(--color-primary)}.btn-login[data-astro-cid-37fxchfa]{padding:.5rem 1rem;color:var(--color-primary);text-decoration:none;border:1px solid var(--color-primary);border-radius:6px;transition:all .2s;font-size:.875rem;font-weight:500}.btn-login[data-astro-cid-37fxchfa]:hover{background-color:var(--color-primary);color:#fff}.btn-register[data-astro-cid-37fxchfa]{padding:.5rem 1rem;background-color:var(--color-primary);color:#fff;text-decoration:none;border-radius:6px;transition:background-color .2s;border:none;font-size:.875rem;font-weight:600}.btn-register[data-astro-cid-37fxchfa]:hover{background-color:var(--color-primary-dark);color:#fff}.btn-dashboard[data-astro-cid-37fxchfa]{padding:.5rem 1rem;background-color:var(--color-primary);color:#fff;text-decoration:none;border-radius:6px;font-weight:600;transition:background-color .2s;border:none;font-size:.875rem}.btn-dashboard[data-astro-cid-37fxchfa]:hover{background-color:var(--color-primary-dark);color:#fff}.btn-create-qr[data-astro-cid-37fxchfa]{padding:.5rem 1rem;background-color:var(--color-primary);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.875rem;font-weight:600;transition:background-color .2s}.btn-create-qr[data-astro-cid-37fxchfa]:hover{background-color:var(--color-primary-dark)}.user-dropdown[data-astro-cid-37fxchfa]{position:relative}.user-dropdown-trigger[data-astro-cid-37fxchfa]{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;background-color:transparent;border:1px solid var(--color-border);border-radius:8px;cursor:pointer;transition:all .2s;font-family:inherit}.user-dropdown-trigger[data-astro-cid-37fxchfa]:hover,.user-dropdown-trigger[data-astro-cid-37fxchfa][aria-expanded=true]{background-color:var(--color-bg-light);border-color:var(--color-primary)}.user-dropdown[data-astro-cid-37fxchfa] .user-email[data-astro-cid-37fxchfa]{color:var(--color-text);font-size:.875rem;font-weight:500}.dropdown-arrow[data-astro-cid-37fxchfa]{color:var(--color-text-light);transition:transform .2s;flex-shrink:0}.user-dropdown-trigger[data-astro-cid-37fxchfa][aria-expanded=true] .dropdown-arrow[data-astro-cid-37fxchfa]{transform:rotate(180deg)}.user-dropdown-menu[data-astro-cid-37fxchfa]{position:absolute;top:calc(100% + .5rem);right:0;min-width:220px;background-color:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;box-shadow:0 4px 12px #0000001a;opacity:0;visibility:hidden;transform:translateY(-8px);transition:all .2s ease;z-index:1000;padding:.5rem}.user-dropdown-menu[data-astro-cid-37fxchfa].show{opacity:1;visibility:visible;transform:translateY(0)}.dropdown-item[data-astro-cid-37fxchfa]{display:flex;align-items:center;gap:.75rem;width:100%;padding:.75rem 1rem;background-color:transparent;border:none;border-radius:6px;color:var(--color-text);text-decoration:none;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .2s;text-align:left;font-family:inherit}.dropdown-item[data-astro-cid-37fxchfa]:hover{background-color:var(--color-bg-light);color:var(--color-primary)}.dropdown-item[data-astro-cid-37fxchfa] svg[data-astro-cid-37fxchfa]{flex-shrink:0;color:var(--color-text-light);transition:color .2s}.dropdown-item[data-astro-cid-37fxchfa]:hover svg[data-astro-cid-37fxchfa]{color:var(--color-primary)}.dropdown-divider[data-astro-cid-37fxchfa]{margin:.5rem 0;border:none;border-top:1px solid var(--color-border)}.dropdown-item-danger[data-astro-cid-37fxchfa]{color:#dc2626}.dropdown-item-danger[data-astro-cid-37fxchfa]:hover{background-color:#fef2f2;color:#dc2626}.dropdown-item-danger[data-astro-cid-37fxchfa]:hover svg[data-astro-cid-37fxchfa]{color:#dc2626}@media(max-width:768px){.public-nav[data-astro-cid-37fxchfa]{padding:1rem;flex-wrap:wrap}.nav-links[data-astro-cid-37fxchfa]{order:3;width:100%;justify-content:center;gap:.75rem;margin-top:.5rem}.nav-links[data-astro-cid-37fxchfa] a[data-astro-cid-37fxchfa]{padding:.5rem .75rem;font-size:.875rem}.nav-user[data-astro-cid-37fxchfa]{gap:.5rem}.btn-login[data-astro-cid-37fxchfa],.btn-register[data-astro-cid-37fxchfa],.btn-create-qr[data-astro-cid-37fxchfa]{padding:.5rem .75rem;font-size:.8125rem}.btn-create-qr[data-astro-cid-37fxchfa]{width:100%;margin-bottom:.5rem}.user-dropdown[data-astro-cid-37fxchfa] .user-email[data-astro-cid-37fxchfa]{display:none}main[data-astro-cid-37fxchfa]{padding:1rem}}@media(max-width:480px){.nav-links[data-astro-cid-37fxchfa]{gap:.5rem}.nav-links[data-astro-cid-37fxchfa] a[data-astro-cid-37fxchfa]{padding:.5rem;font-size:.8125rem}}
