@autenticar-me/vue 0.9.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -2,11 +2,11 @@
2
2
  (function() {
3
3
  if (typeof document !== 'undefined') {
4
4
  const style = document.createElement('style');
5
- style.textContent = ":root {\n --atm-bg-primary: #ffffff;\n --atm-bg-secondary: #f8f9fa;\n --atm-bg-tertiary: #f0f0f0;\n\n --atm-text-primary: #333333;\n --atm-text-secondary: #666666;\n --atm-text-tertiary: #999999;\n --atm-text-muted: #888888;\n\n --atm-border-color: #dddddd;\n --atm-border-hover: #cccccc;\n\n --atm-input-bg: #ffffff;\n --atm-input-disabled: #f5f5f5;\n --atm-input-border: #dddddd;\n\n --atm-error-color: #dc3545;\n --atm-success-color: #28a745;\n\n --atm-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.1);\n --atm-shadow-md: 0 4px 6px rgba(0, 0, 0, 0.1);\n}\n\n.atm-theme-dark,\n:root.atm-theme-dark {\n --atm-bg-primary: #1a1a1a;\n --atm-bg-secondary: #2d2d2d;\n --atm-bg-tertiary: #404040;\n\n --atm-text-primary: #e0e0e0;\n --atm-text-secondary: #b0b0b0;\n --atm-text-tertiary: #808080;\n --atm-text-muted: #999999;\n\n --atm-border-color: #404040;\n --atm-border-hover: #505050;\n\n --atm-input-bg: #2d2d2d;\n --atm-input-disabled: #1f1f1f;\n --atm-input-border: #404040;\n\n --atm-error-color: #ff6b6b;\n --atm-success-color: #51cf66;\n\n --atm-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.3);\n --atm-shadow-md: 0 4px 6px rgba(0, 0, 0, 0.5);\n}\n\n.atm-overlay[data-v-5a315eca] {\n position: fixed;\n inset: 0;\n z-index: 99999;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: rgba(0, 0, 0, 0.5);\n backdrop-filter: blur(4px);\n overflow-y: auto;\n padding: 1.5rem 0;\n}\n.atm-container[data-v-5a315eca] {\n padding: 0 1.5rem;\n width: 100%;\n margin: auto;\n}\n.atm-fade-layer[data-v-5a315eca] {\n position: fixed;\n inset: 0;\n transition: opacity 0.2s ease;\n pointer-events: none;\n}\n.atm-fade-bg[data-v-5a315eca] {\n position: absolute;\n inset: 0;\n opacity: 0.75;\n}\n.atm-modal[data-v-5a315eca] {\n position: relative;\n display: inline-block;\n vertical-align: bottom;\n background-color: var(--atm-bg-primary);\n border-radius: 0.5rem;\n text-align: left;\n box-shadow: var(--atm-shadow-md);\n transform: translate(0);\n transition: all 0.2s ease-in-out;\n max-width: 32rem;\n width: 100%;\n max-height: calc(100vh - 3rem);\n display: flex;\n flex-direction: column;\n}\n.atm-close-button[data-v-5a315eca] {\n position: absolute;\n top: 1rem;\n right: 1rem;\n color: var(--atm-text-tertiary);\n background: transparent;\n border: none;\n cursor: pointer;\n padding: 0.25rem;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 10;\n transition: color 0.2s;\n}\n.atm-close-button[data-v-5a315eca]:hover {\n color: var(--atm-text-secondary);\n}\n.atm-icon[data-v-5a315eca] {\n width: 1.5rem;\n height: 1.5rem;\n}\n.atm-modal-content[data-v-5a315eca] {\n padding: 1.25rem;\n overflow-y: auto;\n flex: 1;\n min-height: 0;\n}\n.atm-modal-title[data-v-5a315eca] {\n font-size: 1.125rem;\n font-weight: 500;\n color: var(--atm-text-primary);\n margin: 0;\n margin-bottom: 0.75rem;\n}\n@media (max-width: 768px) {\n.atm-overlay[data-v-5a315eca] {\n padding: 1rem 0;\n}\n.atm-container[data-v-5a315eca] {\n padding: 0 1rem;\n}\n.atm-modal[data-v-5a315eca] {\n border-radius: 0.375rem;\n max-height: calc(100vh - 2rem);\n}\n.atm-modal-content[data-v-5a315eca] {\n padding: 1rem;\n}\n.atm-modal-title[data-v-5a315eca] {\n font-size: 1rem;\n margin-bottom: 0.75rem;\n}\n.atm-close-button[data-v-5a315eca] {\n top: 0.75rem;\n right: 0.75rem;\n}\n.atm-icon[data-v-5a315eca] {\n width: 1.25rem;\n height: 1.25rem;\n}\n}\n@media (max-width: 480px) {\n.atm-overlay[data-v-5a315eca] {\n padding: 0.5rem 0;\n}\n.atm-container[data-v-5a315eca] {\n padding: 0 0.5rem;\n}\n.atm-modal[data-v-5a315eca] {\n border-radius: 0.25rem;\n max-width: 100%;\n max-height: calc(100vh - 1rem);\n}\n.atm-modal-content[data-v-5a315eca] {\n padding: 0.875rem;\n}\n.atm-modal-title[data-v-5a315eca] {\n font-size: 0.9375rem;\n margin-bottom: 0.625rem;\n}\n.atm-close-button[data-v-5a315eca] {\n top: 0.5rem;\n right: 0.5rem;\n}\n}\n@media (max-width: 360px) {\n.atm-overlay[data-v-5a315eca] {\n padding: 0.25rem 0;\n}\n.atm-container[data-v-5a315eca] {\n padding: 0 0.25rem;\n}\n.atm-modal[data-v-5a315eca] {\n max-height: calc(100vh - 0.5rem);\n}\n.atm-modal-content[data-v-5a315eca] {\n padding: 0.75rem;\n}\n.atm-modal-title[data-v-5a315eca] {\n font-size: 0.875rem;\n margin-bottom: 0.5rem;\n}\n}\n\n.atm-login-container[data-v-4e744a2c] {\n background: var(--atm-bg-primary);\n border-radius: 8px;\n font-family: 'Segoe UI', system-ui, sans-serif;\n text-align: center;\n}\n.atm-logo-container[data-v-4e744a2c] {\n margin-bottom: 12px;\n}\n.atm-logo-placeholder[data-v-4e744a2c] {\n width: 44px;\n height: 44px;\n margin: 0 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--atm-bg-tertiary);\n border-radius: 50%;\n color: var(--atm-text-muted);\n font-size: 11px;\n}\n.atm-logo-image[data-v-4e744a2c] {\n max-width: 44px;\n max-height: 44px;\n margin: 0 auto;\n display: block;\n border-radius: 4px;\n object-fit: contain;\n}\n.atm-project-name[data-v-4e744a2c] {\n margin: 0 0 4px 0;\n font-size: 18px;\n color: var(--v68f877d9);\n font-weight: 600;\n}\n.atm-welcome-text[data-v-4e744a2c] {\n margin: 0 0 16px 0;\n font-size: 14px;\n color: var(--atm-text-secondary);\n}\n.atm-form-group[data-v-4e744a2c] {\n margin-bottom: 12px;\n text-align: left;\n}\n.atm-input-label[data-v-4e744a2c] {\n display: block;\n margin-bottom: 4px;\n font-size: 13px;\n color: var(--atm-text-primary);\n font-weight: 500;\n}\n.atm-input-field[data-v-4e744a2c] {\n width: 100%;\n padding: 8px 10px;\n background: var(--atm-input-bg);\n color: var(--atm-text-primary);\n border: 1px solid var(--atm-input-border);\n border-radius: 6px;\n font-size: 14px;\n box-sizing: border-box;\n transition: border-color 0.2s;\n}\n.atm-input-field[data-v-4e744a2c]:focus {\n outline: none;\n border-color: var(--v68f877d9);\n box-shadow: 0 0 0 2px rgba(74, 144, 226, 0.1);\n}\n.atm-input-field[data-v-4e744a2c]:disabled {\n background-color: var(--atm-input-disabled);\n cursor: not-allowed;\n}\n.atm-field-error[data-v-4e744a2c] {\n color: var(--atm-error-color);\n font-size: 12px;\n margin-top: 4px;\n text-align: left;\n}\n.atm-alternative-options[data-v-4e744a2c] {\n margin-top: 8px;\n text-align: center;\n}\n.atm-forgot-password-link[data-v-4e744a2c] {\n font-size: 12px;\n background: none;\n border: none;\n color: var(--v358114b2);\n cursor: pointer;\n text-decoration: none;\n padding: 0;\n font-family: inherit;\n}\n.atm-forgot-password-link[data-v-4e744a2c]:hover:not(:disabled) {\n text-decoration: underline;\n}\n.atm-forgot-password-link[data-v-4e744a2c]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n.atm-strategy-choice[data-v-4e744a2c] {\n text-align: center;\n margin-bottom: 12px;\n}\n.atm-strategy-title[data-v-4e744a2c] {\n font-size: 14px;\n color: var(--atm-text-secondary);\n margin-bottom: 12px;\n}\n.atm-strategy-buttons[data-v-4e744a2c] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n.atm-strategy-button[data-v-4e744a2c] {\n width: 100%;\n padding: 10px;\n background: var(--atm-bg-secondary);\n color: var(--atm-text-primary);\n border: 1px solid var(--atm-border-color);\n border-radius: 6px;\n font-size: 14px;\n cursor: pointer;\n transition: all 0.2s;\n}\n.atm-strategy-button[data-v-4e744a2c]:hover:not(:disabled) {\n background: var(--atm-bg-tertiary);\n border-color: var(--v68f877d9);\n}\n.atm-strategy-button[data-v-4e744a2c]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n.atm-email-link-text[data-v-4e744a2c] {\n font-size: 14px;\n color: var(--atm-text-secondary);\n margin: 0;\n text-align: center;\n}\n.atm-login-button[data-v-4e744a2c] {\n width: 100%;\n padding: 10px;\n margin-top: 4px;\n background: var(--v68f877d9);\n color: #ffffff;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s;\n min-height: 42px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.atm-login-button[data-v-4e744a2c]:hover:not(:disabled) {\n opacity: 0.9;\n transform: translateY(-1px);\n}\n.atm-login-button[data-v-4e744a2c]:disabled {\n opacity: 0.8;\n cursor: not-allowed;\n transform: none;\n}\n.button-spinner[data-v-4e744a2c] {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n color: #fff;\n font-weight: 500;\n}\n.spinner-svg[data-v-4e744a2c] {\n animation: spin-4e744a2c 1s linear infinite;\n width: 18px;\n height: 18px;\n stroke: #fff;\n}\n.spinner-circle[data-v-4e744a2c] {\n stroke-dasharray: 90, 150;\n stroke-linecap: round;\n}\n@keyframes spin-4e744a2c {\n0% {\n transform: rotate(0deg);\n}\n100% {\n transform: rotate(360deg);\n}\n}\n.atm-footer-links[data-v-4e744a2c] {\n margin-top: 16px;\n font-size: 13px;\n}\n.atm-signup-text[data-v-4e744a2c] {\n color: var(--atm-text-secondary);\n margin-bottom: 6px;\n}\n.atm-signup-link[data-v-4e744a2c] {\n color: var(--v358114b2);\n text-decoration: none;\n cursor: pointer;\n}\n.atm-signup-link[data-v-4e744a2c]:hover {\n text-decoration: underline;\n}\n.atm-powered-by[data-v-4e744a2c] {\n color: var(--atm-text-tertiary);\n font-size: 11px;\n margin: 0;\n}\n@media (max-width: 768px) {\n.atm-project-name[data-v-4e744a2c] {\n font-size: 17px;\n}\n.atm-welcome-text[data-v-4e744a2c] {\n font-size: 13px;\n margin-bottom: 14px;\n}\n.atm-form-group[data-v-4e744a2c] {\n margin-bottom: 10px;\n}\n.atm-input-label[data-v-4e744a2c] {\n font-size: 12px;\n margin-bottom: 4px;\n}\n.atm-input-field[data-v-4e744a2c] {\n padding: 8px 10px;\n font-size: 13px;\n}\n.atm-login-button[data-v-4e744a2c] {\n font-size: 13px;\n padding: 9px;\n min-height: 40px;\n}\n.atm-strategy-button[data-v-4e744a2c] {\n padding: 9px;\n font-size: 13px;\n}\n.atm-footer-links[data-v-4e744a2c] {\n margin-top: 14px;\n font-size: 12px;\n}\n}\n@media (max-width: 480px) {\n.atm-logo-placeholder[data-v-4e744a2c] {\n width: 40px;\n height: 40px;\n font-size: 10px;\n}\n.atm-logo-image[data-v-4e744a2c] {\n max-width: 40px;\n max-height: 40px;\n}\n.atm-project-name[data-v-4e744a2c] {\n font-size: 16px;\n margin-bottom: 4px;\n}\n.atm-welcome-text[data-v-4e744a2c] {\n font-size: 12px;\n margin-bottom: 12px;\n}\n.atm-form-group[data-v-4e744a2c] {\n margin-bottom: 10px;\n}\n.atm-input-label[data-v-4e744a2c] {\n font-size: 12px;\n margin-bottom: 3px;\n}\n.atm-input-field[data-v-4e744a2c] {\n padding: 7px 9px;\n font-size: 13px;\n}\n.atm-login-button[data-v-4e744a2c] {\n font-size: 13px;\n padding: 9px;\n min-height: 38px;\n}\n.atm-forgot-password-link[data-v-4e744a2c] {\n font-size: 11px;\n}\n.atm-strategy-title[data-v-4e744a2c] {\n font-size: 13px;\n margin-bottom: 10px;\n}\n.atm-strategy-button[data-v-4e744a2c] {\n padding: 9px;\n font-size: 13px;\n}\n.atm-email-link-text[data-v-4e744a2c] {\n font-size: 13px;\n}\n.atm-footer-links[data-v-4e744a2c] {\n margin-top: 12px;\n font-size: 12px;\n}\n.atm-powered-by[data-v-4e744a2c] {\n font-size: 10px;\n}\n.spinner-svg[data-v-4e744a2c] {\n width: 16px;\n height: 16px;\n}\n.button-spinner[data-v-4e744a2c] {\n gap: 6px;\n}\n}\n@media (max-width: 360px) {\n.atm-logo-placeholder[data-v-4e744a2c] {\n width: 36px;\n height: 36px;\n font-size: 9px;\n}\n.atm-logo-image[data-v-4e744a2c] {\n max-width: 36px;\n max-height: 36px;\n}\n.atm-project-name[data-v-4e744a2c] {\n font-size: 15px;\n margin-bottom: 3px;\n}\n.atm-welcome-text[data-v-4e744a2c] {\n font-size: 11px;\n margin-bottom: 10px;\n}\n.atm-form-group[data-v-4e744a2c] {\n margin-bottom: 8px;\n}\n.atm-input-label[data-v-4e744a2c] {\n font-size: 11px;\n margin-bottom: 3px;\n}\n.atm-input-field[data-v-4e744a2c] {\n padding: 6px 8px;\n font-size: 12px;\n}\n.atm-login-button[data-v-4e744a2c] {\n font-size: 12px;\n padding: 8px;\n min-height: 36px;\n}\n.atm-strategy-button[data-v-4e744a2c] {\n padding: 8px;\n font-size: 12px;\n}\n.atm-footer-links[data-v-4e744a2c] {\n margin-top: 10px;\n font-size: 11px;\n}\n.spinner-svg[data-v-4e744a2c] {\n width: 14px;\n height: 14px;\n}\n}\n\n.atm-notification-container[data-v-f5e47084] {\n font-family: Arial, Helvetica, sans-serif;\n position: fixed;\n top: 20px;\n right: 20px;\n z-index: 99999;\n pointer-events: none;\n}\n.atm-notification[data-v-f5e47084] {\n padding: 12px 16px;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n min-width: 250px;\n max-width: 350px;\n pointer-events: auto;\n}\n.atm-notification--error[data-v-f5e47084] {\n background: #ff3333;\n color: #FFF;\n}\n.atm-notification--success[data-v-f5e47084] {\n background: #00a622;\n color: #FFF;\n}\n.atm-notification--warning[data-v-f5e47084] {\n background: #ffa500;\n color: #FFF;\n}\n.atm-notification-enter-active[data-v-f5e47084] {\n transition: all 0.3s ease-out;\n}\n.atm-notification-leave-active[data-v-f5e47084] {\n transition: all 0.3s ease-in;\n}\n.atm-notification-enter-from[data-v-f5e47084] {\n transform: translateX(100%);\n opacity: 0;\n}\n.atm-notification-leave-to[data-v-f5e47084] {\n transform: translateX(100%);\n opacity: 0;\n}\n@media (max-width: 768px) {\n.atm-notification-container[data-v-f5e47084] {\n top: 16px;\n right: 16px;\n left: 16px;\n}\n.atm-notification[data-v-f5e47084] {\n min-width: auto;\n max-width: 100%;\n padding: 11px 14px;\n font-size: 13px;\n}\n}\n@media (max-width: 480px) {\n.atm-notification-container[data-v-f5e47084] {\n top: 12px;\n right: 12px;\n left: 12px;\n}\n.atm-notification[data-v-f5e47084] {\n padding: 10px 12px;\n font-size: 12px;\n border-radius: 5px;\n}\n}\n@media (max-width: 360px) {\n.atm-notification-container[data-v-f5e47084] {\n top: 10px;\n right: 10px;\n left: 10px;\n}\n.atm-notification[data-v-f5e47084] {\n padding: 9px 11px;\n font-size: 11px;\n border-radius: 4px;\n}\n}\n\n.atm-signup-container[data-v-9668f28a] {\n width: 100%;\n background: var(--atm-bg-primary);\n border-radius: 8px;\n font-family: 'Segoe UI', system-ui, sans-serif;\n text-align: center;\n}\n.atm-logo-container[data-v-9668f28a] {\n margin-bottom: 12px;\n}\n.atm-logo-placeholder[data-v-9668f28a] {\n width: 44px;\n height: 44px;\n margin: 0 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--atm-bg-tertiary);\n border-radius: 50%;\n color: var(--atm-text-muted);\n font-size: 11px;\n}\n.atm-logo-image[data-v-9668f28a] {\n max-width: 44px;\n max-height: 44px;\n margin: 0 auto;\n display: block;\n border-radius: 4px;\n object-fit: contain;\n}\n.atm-project-name[data-v-9668f28a] {\n margin: 0 0 4px 0;\n font-size: 18px;\n color: var(--v1eb0b99e);\n font-weight: 600;\n}\n.atm-welcome-text[data-v-9668f28a] {\n margin: 0 0 16px 0;\n font-size: 14px;\n color: var(--atm-text-secondary);\n}\n.atm-form-group[data-v-9668f28a] {\n margin-bottom: 12px;\n text-align: left;\n}\n.atm-input-label[data-v-9668f28a] {\n display: block;\n margin-bottom: 4px;\n font-size: 13px;\n color: var(--atm-text-primary);\n font-weight: 500;\n}\n.atm-input-field[data-v-9668f28a] {\n width: 100%;\n padding: 8px 10px;\n background: var(--atm-input-bg);\n color: var(--atm-text-primary);\n border: 1px solid var(--atm-input-border);\n border-radius: 6px;\n font-size: 14px;\n box-sizing: border-box;\n transition: border-color 0.2s;\n}\n.atm-input-field[data-v-9668f28a]:focus {\n outline: none;\n border-color: var(--v1eb0b99e);\n box-shadow: 0 0 0 2px rgba(74, 144, 226, 0.1);\n}\n.atm-input-field[data-v-9668f28a]:disabled {\n background-color: var(--atm-input-disabled);\n cursor: not-allowed;\n}\n.atm-field-error[data-v-9668f28a] {\n color: var(--atm-error-color);\n font-size: 12px;\n margin-top: 4px;\n text-align: left;\n}\n.atm-signup-button[data-v-9668f28a] {\n width: 100%;\n padding: 10px;\n margin-top: 4px;\n background: var(--v1eb0b99e);\n color: #ffffff;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s;\n min-height: 42px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.atm-signup-button[data-v-9668f28a]:hover:not(:disabled) {\n opacity: 0.9;\n transform: translateY(-1px);\n}\n.atm-signup-button[data-v-9668f28a]:disabled {\n opacity: 0.8;\n cursor: not-allowed;\n transform: none;\n}\n.button-spinner[data-v-9668f28a] {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n color: #fff;\n font-weight: 500;\n}\n.spinner-svg[data-v-9668f28a] {\n animation: spin-9668f28a 1s linear infinite;\n width: 18px;\n height: 18px;\n stroke: #fff;\n}\n.spinner-circle[data-v-9668f28a] {\n stroke-dasharray: 90, 150;\n stroke-linecap: round;\n}\n@keyframes spin-9668f28a {\n0% {\n transform: rotate(0deg);\n}\n100% {\n transform: rotate(360deg);\n}\n}\n.atm-footer-links[data-v-9668f28a] {\n margin-top: 16px;\n font-size: 13px;\n}\n.atm-login-text[data-v-9668f28a] {\n color: var(--atm-text-secondary);\n margin-bottom: 6px;\n}\n.atm-login-link[data-v-9668f28a] {\n color: var(--v3dd12aff);\n text-decoration: none;\n cursor: pointer;\n transition: opacity 0.2s;\n}\n.atm-login-link[data-v-9668f28a]:hover:not(.disabled-link) {\n text-decoration: underline;\n}\n.atm-login-link.disabled-link[data-v-9668f28a] {\n opacity: 0.5;\n cursor: not-allowed;\n pointer-events: none;\n}\n.atm-powered-by[data-v-9668f28a] {\n color: var(--atm-text-tertiary);\n font-size: 11px;\n margin: 0;\n}\n@media (max-width: 768px) {\n.atm-project-name[data-v-9668f28a] {\n font-size: 17px;\n}\n.atm-welcome-text[data-v-9668f28a] {\n font-size: 13px;\n margin-bottom: 14px;\n}\n.atm-form-group[data-v-9668f28a] {\n margin-bottom: 10px;\n}\n.atm-input-label[data-v-9668f28a] {\n font-size: 12px;\n margin-bottom: 4px;\n}\n.atm-input-field[data-v-9668f28a] {\n padding: 8px 10px;\n font-size: 13px;\n}\n.atm-signup-button[data-v-9668f28a] {\n font-size: 13px;\n padding: 9px;\n min-height: 40px;\n}\n.atm-footer-links[data-v-9668f28a] {\n margin-top: 14px;\n font-size: 12px;\n}\n}\n@media (max-width: 480px) {\n.atm-logo-placeholder[data-v-9668f28a] {\n width: 40px;\n height: 40px;\n font-size: 10px;\n}\n.atm-logo-image[data-v-9668f28a] {\n max-width: 40px;\n max-height: 40px;\n}\n.atm-project-name[data-v-9668f28a] {\n font-size: 16px;\n margin-bottom: 4px;\n}\n.atm-welcome-text[data-v-9668f28a] {\n font-size: 12px;\n margin-bottom: 12px;\n}\n.atm-form-group[data-v-9668f28a] {\n margin-bottom: 10px;\n}\n.atm-input-label[data-v-9668f28a] {\n font-size: 12px;\n margin-bottom: 3px;\n}\n.atm-input-field[data-v-9668f28a] {\n padding: 7px 9px;\n font-size: 13px;\n}\n.atm-signup-button[data-v-9668f28a] {\n font-size: 13px;\n padding: 9px;\n min-height: 38px;\n}\n.atm-footer-links[data-v-9668f28a] {\n margin-top: 12px;\n font-size: 12px;\n}\n.atm-powered-by[data-v-9668f28a] {\n font-size: 10px;\n}\n.spinner-svg[data-v-9668f28a] {\n width: 16px;\n height: 16px;\n}\n.button-spinner[data-v-9668f28a] {\n gap: 6px;\n}\n}\n@media (max-width: 360px) {\n.atm-logo-placeholder[data-v-9668f28a] {\n width: 36px;\n height: 36px;\n font-size: 9px;\n}\n.atm-logo-image[data-v-9668f28a] {\n max-width: 36px;\n max-height: 36px;\n}\n.atm-project-name[data-v-9668f28a] {\n font-size: 15px;\n margin-bottom: 3px;\n}\n.atm-welcome-text[data-v-9668f28a] {\n font-size: 11px;\n margin-bottom: 10px;\n}\n.atm-form-group[data-v-9668f28a] {\n margin-bottom: 8px;\n}\n.atm-input-label[data-v-9668f28a] {\n font-size: 11px;\n margin-bottom: 3px;\n}\n.atm-input-field[data-v-9668f28a] {\n padding: 6px 8px;\n font-size: 12px;\n}\n.atm-signup-button[data-v-9668f28a] {\n font-size: 12px;\n padding: 8px;\n min-height: 36px;\n}\n.atm-footer-links[data-v-9668f28a] {\n margin-top: 10px;\n font-size: 11px;\n}\n.spinner-svg[data-v-9668f28a] {\n width: 14px;\n height: 14px;\n}\n}\n\n.atm-signin-btn[data-v-e490ca63] {\n padding: 12px;\n margin-top: 8px;\n background: var(--v111e7704);\n color: #FFF;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.2s;\n min-height: 44px;\n}\n.atm-signin-btn[data-v-e490ca63]:hover {\n opacity: 0.9;\n}\n@media (max-width: 768px) {\n.atm-signin-btn[data-v-e490ca63] {\n padding: 11px;\n font-size: 13px;\n min-height: 42px;\n}\n}\n@media (max-width: 480px) {\n.atm-signin-btn[data-v-e490ca63] {\n padding: 10px;\n font-size: 13px;\n min-height: 40px;\n}\n}\n@media (max-width: 360px) {\n.atm-signin-btn[data-v-e490ca63] {\n padding: 9px;\n font-size: 12px;\n min-height: 38px;\n}\n}\n\n.atm-registration-disabled[data-v-05bfbd78] {\n padding: 24px;\n text-align: center;\n}\n.atm-disabled-message[data-v-05bfbd78] {\n margin-bottom: 16px;\n color: var(--atm-text-primary);\n}\n.atm-disabled-login-btn[data-v-05bfbd78] {\n padding: 12px 24px;\n background: #007bff;\n color: #ffffff;\n border: none;\n border-radius: 6px;\n cursor: pointer;\n font-size: 14px;\n font-weight: 500;\n transition: opacity 0.2s;\n}\n.atm-disabled-login-btn[data-v-05bfbd78]:hover {\n opacity: 0.9;\n}\n\n.atm-signup-btn[data-v-7346e92d] {\n padding: 12px;\n margin-top: 8px;\n background: var(--v334adbc1);\n color: #FFF;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.2s;\n min-height: 44px;\n}\n.atm-signup-btn[data-v-7346e92d]:hover {\n opacity: 0.9;\n}\n@media (max-width: 768px) {\n.atm-signup-btn[data-v-7346e92d] {\n padding: 11px;\n font-size: 13px;\n min-height: 42px;\n}\n}\n@media (max-width: 480px) {\n.atm-signup-btn[data-v-7346e92d] {\n padding: 10px;\n font-size: 13px;\n min-height: 40px;\n}\n}\n@media (max-width: 360px) {\n.atm-signup-btn[data-v-7346e92d] {\n padding: 9px;\n font-size: 12px;\n min-height: 38px;\n}\n}\n\n.atm-profile-container {\n position: relative;\n display: inline-block;\n font-family: 'Segoe UI', system-ui, sans-serif;\n}\n.atm-profile-button {\n display: flex;\n align-items: center;\n gap: 8px;\n background: none;\n border: none;\n cursor: pointer;\n padding: 8px 12px;\n border-radius: 6px;\n transition: background 0.2s;\n}\n.atm-profile-button:hover {\n background: var(--atm-bg-secondary);\n}\n.atm-profile-avatar {\n width: 32px;\n height: 32px;\n border-radius: 50%;\n background-color: var(--feed21a4);\n color: #ffffff;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 12px;\n font-weight: 500;\n}\n.atm-profile-avatar.large {\n width: 48px;\n height: 48px;\n font-size: 16px;\n}\n.atm-profile-avatar-img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 50%;\n}\n.atm-profile-name {\n font-size: 14px;\n color: var(--atm-text-primary);\n font-weight: 500;\n}\n.atm-profile-arrow {\n width: 16px;\n height: 16px;\n color: var(--atm-text-primary);\n transition: transform 0.2s;\n}\n.atm-rotate {\n transform: rotate(180deg);\n}\n.atm-profile-menu {\n position: absolute;\n top: 100%;\n width: 280px;\n background: var(--atm-bg-primary);\n border: 1px solid var(--atm-border-color);\n border-radius: 8px;\n box-shadow: var(--atm-shadow-md);\n z-index: 1000;\n overflow: hidden;\n margin-top: 4px;\n}\n.atm-position-left {\n left: 0;\n right: auto;\n}\n.atm-position-right {\n right: 0;\n left: auto;\n}\n.atm-profile-info {\n display: flex;\n gap: 12px;\n padding: 16px;\n border-bottom: 1px solid var(--atm-border-color);\n}\n.atm-profile-details {\n flex: 1;\n min-width: 0;\n}\n.atm-profile-fullname {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--atm-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.atm-profile-email {\n margin: 4px 0 0;\n font-size: 13px;\n color: var(--atm-text-secondary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.atm-profile-options {\n padding: 8px 0;\n}\n.atm-profile-option {\n display: flex;\n align-items: center;\n width: 100%;\n padding: 10px 16px;\n background: none;\n border: none;\n text-align: left;\n cursor: pointer;\n font-size: 14px;\n color: var(--atm-text-primary);\n gap: 10px;\n transition: background 0.2s;\n}\n.atm-profile-option:hover {\n background: var(--atm-bg-secondary);\n}\n.atm-profile-icon {\n width: 18px;\n height: 18px;\n color: var(--atm-text-secondary);\n}\n.atm-fade-enter-active,\n.atm-fade-leave-active {\n transition: opacity 0.2s, transform 0.2s;\n}\n.atm-fade-enter-from,\n.atm-fade-leave-to {\n opacity: 0;\n transform: translateY(-10px);\n}\n.atm-profile-modal {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 9999;\n display: flex;\n justify-content: center;\n align-items: center;\n overflow-y: auto;\n padding: 1.5rem;\n}\n.atm-profile-overlay {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba(0, 0, 0, 0.5);\n pointer-events: none;\n}\n.atm-profile-content {\n position: relative;\n width: 100%;\n max-width: 450px;\n background: var(--atm-bg-primary);\n border-radius: 12px;\n box-shadow: var(--atm-shadow-md);\n z-index: 1;\n max-height: calc(100vh - 3rem);\n display: flex;\n flex-direction: column;\n margin: auto;\n}\n.atm-profile-header {\n padding: 16px;\n border-bottom: 1px solid var(--atm-border-color);\n display: flex;\n align-items: center;\n}\n.atm-profile-close {\n background: none;\n border: none;\n font-size: 24px;\n cursor: pointer;\n padding: 8px;\n margin-right: 12px;\n color: var(--atm-text-secondary);\n transition: color 0.2s;\n}\n.atm-profile-close:hover {\n color: var(--atm-text-primary);\n}\n.atm-profile-title {\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: var(--atm-text-primary);\n}\n.atm-profile-tabs {\n display: flex;\n border-bottom: 1px solid var(--atm-border-color);\n background: var(--atm-bg-secondary);\n}\n.atm-tab {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n padding: 12px 16px;\n background: none;\n border: none;\n cursor: pointer;\n font-size: 14px;\n font-weight: 500;\n color: var(--atm-text-secondary);\n transition: all 0.2s;\n}\n.atm-tab:hover {\n background: var(--atm-bg-tertiary);\n color: var(--atm-text-primary);\n}\n.atm-tab-active {\n color: var(--feed21a4) !important;\n background: var(--atm-bg-primary);\n border-bottom: 2px solid var(--feed21a4);\n}\n.atm-tab-icon {\n width: 16px;\n height: 16px;\n}\n.atm-profile-body {\n padding: 24px;\n text-align: center;\n overflow-y: auto;\n flex: 1;\n min-height: 0;\n}\n.atm-profile-avatar-large {\n width: 80px;\n height: 80px;\n border-radius: 50%;\n background-color: var(--feed21a4);\n color: #ffffff;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 24px;\n font-weight: 600;\n margin: 0 auto 20px;\n}\n.atm-profile-info-grid {\n width: 100%;\n text-align: left;\n margin-top: 20px;\n}\n.atm-profile-info-row {\n display: flex;\n flex-direction: column;\n margin-bottom: 16px;\n}\n.atm-profile-info-label {\n font-size: 13px;\n color: var(--atm-text-secondary);\n margin-bottom: 4px;\n}\n.atm-profile-info-value {\n font-size: 16px;\n color: var(--atm-text-primary);\n font-weight: 500;\n}\n.atm-profile-edit-form {\n width: 100%;\n text-align: left;\n margin-top: 20px;\n}\n.atm-form-group {\n margin-bottom: 16px;\n}\n.atm-input-label {\n display: block;\n margin-bottom: 6px;\n font-size: 13px;\n color: var(--atm-text-primary);\n font-weight: 500;\n}\n.atm-input-field {\n width: 100%;\n padding: 10px 12px;\n background: var(--atm-input-bg);\n color: var(--atm-text-primary);\n border: 1px solid var(--atm-input-border);\n border-radius: 6px;\n font-size: 14px;\n box-sizing: border-box;\n transition: border-color 0.2s;\n}\n.atm-input-field:focus {\n outline: none;\n border-color: var(--feed21a4);\n box-shadow: 0 0 0 2px rgba(74, 144, 226, 0.1);\n}\n.atm-form-actions {\n display: flex;\n gap: 12px;\n margin-top: 24px;\n}\n.atm-save-btn,\n.atm-edit-profile-btn,\n.atm-reset-password-btn,\n.atm-add-email-btn {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px;\n background: var(--feed21a4);\n color: #FFF;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: opacity 0.2s;\n justify-content: center;\n}\n.atm-save-btn:hover,\n.atm-edit-profile-btn:hover,\n.atm-reset-password-btn:hover,\n.atm-add-email-btn:hover {\n opacity: 0.9;\n}\n.atm-cancel-btn {\n display: flex;\n align-items: center;\n gap: 8px;\n flex: 1;\n padding: 12px;\n background: var(--atm-bg-secondary);\n color: var(--atm-text-secondary);\n border: 1px solid var(--atm-border-color);\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s;\n justify-content: center;\n}\n.atm-cancel-btn:hover {\n background: var(--atm-bg-tertiary);\n color: var(--atm-text-primary);\n}\n.atm-btn-icon {\n width: 16px;\n height: 16px;\n}\n.atm-email-add-section {\n margin-bottom: 24px;\n text-align: left;\n}\n.atm-email-list {\n display: flex;\n flex-direction: column;\n gap: 12px;\n text-align: left;\n}\n.atm-email-item {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px;\n background: var(--atm-bg-secondary);\n border-radius: 6px;\n border: 1px solid var(--atm-border-color);\n}\n.atm-email-info {\n display: flex;\n flex-direction: column;\n gap: 8px;\n flex: 1;\n}\n.atm-email-address {\n display: flex;\n align-items: center;\n gap: 8px;\n color: var(--atm-text-primary);\n}\n.atm-email-icon {\n width: 16px;\n height: 16px;\n color: var(--v5c6febbc);\n}\n.atm-email-badges {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n}\n.atm-badge {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 2px 8px;\n font-size: 11px;\n font-weight: 500;\n border-radius: 12px;\n text-transform: uppercase;\n}\n.atm-badge-icon {\n width: 12px;\n height: 12px;\n}\n.atm-badge-primary {\n background: #e3f2fd;\n color: #1976d2;\n}\n.atm-badge-verified {\n background: #e8f5e8;\n color: #2e7d32;\n}\n.atm-badge-unverified {\n background: #fff3e0;\n color: #f57c00;\n}\n.atm-email-actions {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n.atm-verify-btn {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 6px 12px;\n background: var(--feed21a4);\n color: white;\n border: none;\n border-radius: 4px;\n font-size: 12px;\n font-weight: 500;\n cursor: pointer;\n transition: opacity 0.2s;\n}\n.atm-verify-btn:hover {\n opacity: 0.9;\n}\n.atm-delete-btn {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 6px 12px;\n background: #dc3545;\n color: white;\n border: none;\n border-radius: 4px;\n font-size: 12px;\n font-weight: 500;\n cursor: pointer;\n transition: opacity 0.2s;\n}\n.atm-delete-btn:hover {\n opacity: 0.9;\n}\n.atm-password-section {\n text-align: left;\n}\n.atm-sessions-section {\n text-align: left;\n}\n.atm-sessions-info {\n margin-bottom: 20px;\n}\n.atm-sessions-description {\n margin: 0;\n font-size: 14px;\n color: var(--atm-text-secondary);\n line-height: 1.5;\n}\n.atm-sessions-list {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n.atm-session-item {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px;\n background: var(--atm-bg-secondary);\n border-radius: 8px;\n border: 1px solid var(--atm-border-color);\n gap: 16px;\n}\n.atm-session-header {\n display: flex;\n gap: 12px;\n align-items: flex-start;\n}\n.atm-session-icon {\n width: 24px;\n height: 24px;\n color: var(--v5c6febbc);\n flex-shrink: 0;\n}\n.atm-session-details {\n flex: 1;\n min-width: 0;\n}\n.atm-session-title {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 4px;\n font-size: 15px;\n font-weight: 600;\n color: var(--atm-text-primary);\n}\n.atm-session-device-info {\n font-size: 13px;\n color: var(--atm-text-secondary);\n margin-bottom: 8px;\n}\n.atm-badge-current {\n background: #d1f4e0;\n color: #0f9d58;\n}\n.atm-session-timestamps {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n.atm-session-timestamp {\n display: flex;\n gap: 6px;\n font-size: 13px;\n color: var(--atm-text-secondary);\n}\n.atm-timestamp-label {\n font-weight: 500;\n color: var(--atm-text-primary);\n}\n.atm-session-actions {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n.atm-close-session-btn {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 14px;\n background: #dc3545;\n color: white;\n border: none;\n border-radius: 6px;\n font-size: 13px;\n font-weight: 500;\n cursor: pointer;\n transition: opacity 0.2s;\n white-space: nowrap;\n}\n.atm-close-session-btn:hover {\n opacity: 0.9;\n}\n@media (max-width: 768px) {\n.atm-profile-button {\n padding: 6px 10px;\n gap: 6px;\n}\n.atm-profile-name {\n font-size: 13px;\n}\n.atm-profile-menu {\n width: 260px;\n}\n.atm-profile-modal {\n padding: 1rem;\n}\n.atm-profile-content {\n max-width: 90%;\n max-height: calc(100vh - 2rem);\n}\n.atm-profile-header {\n padding: 14px;\n}\n.atm-profile-title {\n font-size: 16px;\n}\n.atm-profile-body {\n padding: 20px;\n}\n.atm-tab {\n padding: 10px 12px;\n font-size: 13px;\n gap: 4px;\n}\n.atm-tab-icon {\n width: 14px;\n height: 14px;\n}\n.atm-profile-avatar-large {\n width: 70px;\n height: 70px;\n font-size: 22px;\n}\n.atm-email-item {\n flex-direction: column;\n gap: 12px;\n align-items: flex-start;\n}\n.atm-email-actions {\n flex-direction: row;\n width: 100%;\n}\n.atm-verify-btn,\n .atm-delete-btn {\n flex: 1;\n justify-content: center;\n}\n.atm-session-item {\n flex-direction: column;\n align-items: flex-start;\n}\n.atm-session-actions {\n width: 100%;\n}\n.atm-close-session-btn {\n width: 100%;\n justify-content: center;\n}\n}\n@media (max-width: 480px) {\n.atm-profile-button {\n padding: 4px 8px;\n gap: 4px;\n}\n.atm-profile-avatar {\n width: 28px;\n height: 28px;\n font-size: 11px;\n}\n.atm-profile-avatar.large {\n width: 40px;\n height: 40px;\n font-size: 14px;\n}\n.atm-profile-name {\n font-size: 12px;\n}\n.atm-profile-arrow {\n width: 14px;\n height: 14px;\n}\n.atm-profile-menu {\n width: calc(100vw - 20px);\n max-width: 240px;\n}\n.atm-profile-info {\n padding: 12px;\n gap: 10px;\n}\n.atm-profile-fullname {\n font-size: 13px;\n}\n.atm-profile-email {\n font-size: 12px;\n}\n.atm-profile-option {\n padding: 8px 12px;\n font-size: 13px;\n gap: 8px;\n}\n.atm-profile-icon {\n width: 16px;\n height: 16px;\n}\n.atm-profile-modal {\n padding: 0.5rem;\n}\n.atm-profile-content {\n max-width: 95%;\n max-height: calc(100vh - 1rem);\n}\n.atm-profile-header {\n padding: 12px;\n}\n.atm-profile-close {\n font-size: 20px;\n padding: 4px;\n margin-right: 8px;\n}\n.atm-profile-title {\n font-size: 15px;\n}\n.atm-profile-body {\n padding: 16px;\n}\n.atm-tab {\n padding: 8px 8px;\n font-size: 12px;\n gap: 3px;\n}\n.atm-tab-icon {\n width: 13px;\n height: 13px;\n}\n.atm-profile-avatar-large {\n width: 60px;\n height: 60px;\n font-size: 20px;\n margin-bottom: 16px;\n}\n.atm-profile-info-label {\n font-size: 12px;\n}\n.atm-profile-info-value {\n font-size: 14px;\n}\n.atm-input-label {\n font-size: 12px;\n}\n.atm-input-field {\n padding: 8px 10px;\n font-size: 13px;\n}\n.atm-form-actions {\n flex-direction: column;\n gap: 8px;\n}\n.atm-save-btn,\n .atm-cancel-btn,\n .atm-edit-profile-btn,\n .atm-reset-password-btn {\n width: 100%;\n padding: 10px;\n font-size: 13px;\n}\n.atm-email-item {\n padding: 10px;\n}\n.atm-email-address {\n font-size: 13px;\n}\n.atm-badge {\n font-size: 10px;\n padding: 2px 6px;\n}\n}\n@media (max-width: 360px) {\n.atm-profile-button {\n padding: 4px 6px;\n}\n.atm-profile-avatar {\n width: 26px;\n height: 26px;\n font-size: 10px;\n}\n.atm-profile-name {\n display: none;\n}\n.atm-profile-menu {\n width: calc(100vw - 16px);\n max-width: 220px;\n}\n.atm-profile-modal {\n padding: 0.25rem;\n}\n.atm-profile-content {\n max-width: 98%;\n max-height: calc(100vh - 0.5rem);\n}\n.atm-profile-body {\n padding: 12px;\n}\n.atm-tab {\n padding: 8px 6px;\n font-size: 11px;\n flex-direction: column;\n gap: 2px;\n}\n.atm-profile-avatar-large {\n width: 50px;\n height: 50px;\n font-size: 18px;\n}\n.atm-email-item {\n padding: 8px;\n}\n}\n\n.atm-auth-buttons[data-v-0c63ecb8] {\n display: flex;\n flex-wrap: wrap;\n gap: 16px;\n}\n@media (max-width: 768px) {\n.atm-auth-buttons[data-v-0c63ecb8] {\n gap: 14px;\n}\n}\n@media (max-width: 480px) {\n.atm-auth-buttons[data-v-0c63ecb8] {\n gap: 12px;\n flex-direction: column;\n}\n}\n@media (max-width: 360px) {\n.atm-auth-buttons[data-v-0c63ecb8] {\n gap: 10px;\n}\n}\n\n.atm-logout-btn[data-v-7157f989] {\n padding: 12px;\n margin-top: 8px;\n background: var(--v2ec0f896);\n color: #FFF;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: opacity 0.2s;\n min-height: 44px;\n}\n.atm-logout-btn[data-v-7157f989]:hover {\n opacity: 0.9;\n}\n@media (max-width: 768px) {\n.atm-logout-btn[data-v-7157f989] {\n padding: 11px;\n font-size: 13px;\n min-height: 42px;\n}\n}\n@media (max-width: 480px) {\n.atm-logout-btn[data-v-7157f989] {\n padding: 10px;\n font-size: 13px;\n min-height: 40px;\n}\n}\n@media (max-width: 360px) {\n.atm-logout-btn[data-v-7157f989] {\n padding: 9px;\n font-size: 12px;\n min-height: 38px;\n}\n}\n";
5
+ style.textContent = ":root {\n --atm-bg-primary: #ffffff;\n --atm-bg-secondary: #f8f9fa;\n --atm-bg-tertiary: #f0f0f0;\n\n --atm-text-primary: #333333;\n --atm-text-secondary: #666666;\n --atm-text-tertiary: #999999;\n --atm-text-muted: #888888;\n\n --atm-border-color: #dddddd;\n --atm-border-hover: #cccccc;\n\n --atm-input-bg: #ffffff;\n --atm-input-disabled: #f5f5f5;\n --atm-input-border: #dddddd;\n\n --atm-error-color: #dc3545;\n --atm-success-color: #28a745;\n\n --atm-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.1);\n --atm-shadow-md: 0 4px 6px rgba(0, 0, 0, 0.1);\n}\n\n.atm-theme-dark,\n:root.atm-theme-dark {\n --atm-bg-primary: #1a1a1a;\n --atm-bg-secondary: #2d2d2d;\n --atm-bg-tertiary: #404040;\n\n --atm-text-primary: #e0e0e0;\n --atm-text-secondary: #b0b0b0;\n --atm-text-tertiary: #808080;\n --atm-text-muted: #999999;\n\n --atm-border-color: #404040;\n --atm-border-hover: #505050;\n\n --atm-input-bg: #2d2d2d;\n --atm-input-disabled: #1f1f1f;\n --atm-input-border: #404040;\n\n --atm-error-color: #ff6b6b;\n --atm-success-color: #51cf66;\n\n --atm-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.3);\n --atm-shadow-md: 0 4px 6px rgba(0, 0, 0, 0.5);\n}\n\n.atm-overlay[data-v-5a315eca] {\n position: fixed;\n inset: 0;\n z-index: 99999;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: rgba(0, 0, 0, 0.5);\n backdrop-filter: blur(4px);\n overflow-y: auto;\n padding: 1.5rem 0;\n}\n.atm-container[data-v-5a315eca] {\n padding: 0 1.5rem;\n width: 100%;\n margin: auto;\n}\n.atm-fade-layer[data-v-5a315eca] {\n position: fixed;\n inset: 0;\n transition: opacity 0.2s ease;\n pointer-events: none;\n}\n.atm-fade-bg[data-v-5a315eca] {\n position: absolute;\n inset: 0;\n opacity: 0.75;\n}\n.atm-modal[data-v-5a315eca] {\n position: relative;\n display: inline-block;\n vertical-align: bottom;\n background-color: var(--atm-bg-primary);\n border-radius: 0.5rem;\n text-align: left;\n box-shadow: var(--atm-shadow-md);\n transform: translate(0);\n transition: all 0.2s ease-in-out;\n max-width: 32rem;\n width: 100%;\n max-height: calc(100vh - 3rem);\n display: flex;\n flex-direction: column;\n}\n.atm-close-button[data-v-5a315eca] {\n position: absolute;\n top: 1rem;\n right: 1rem;\n color: var(--atm-text-tertiary);\n background: transparent;\n border: none;\n cursor: pointer;\n padding: 0.25rem;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 10;\n transition: color 0.2s;\n}\n.atm-close-button[data-v-5a315eca]:hover {\n color: var(--atm-text-secondary);\n}\n.atm-icon[data-v-5a315eca] {\n width: 1.5rem;\n height: 1.5rem;\n}\n.atm-modal-content[data-v-5a315eca] {\n padding: 1.25rem;\n overflow-y: auto;\n flex: 1;\n min-height: 0;\n}\n.atm-modal-title[data-v-5a315eca] {\n font-size: 1.125rem;\n font-weight: 500;\n color: var(--atm-text-primary);\n margin: 0;\n margin-bottom: 0.75rem;\n}\n@media (max-width: 768px) {\n.atm-overlay[data-v-5a315eca] {\n padding: 1rem 0;\n}\n.atm-container[data-v-5a315eca] {\n padding: 0 1rem;\n}\n.atm-modal[data-v-5a315eca] {\n border-radius: 0.375rem;\n max-height: calc(100vh - 2rem);\n}\n.atm-modal-content[data-v-5a315eca] {\n padding: 1rem;\n}\n.atm-modal-title[data-v-5a315eca] {\n font-size: 1rem;\n margin-bottom: 0.75rem;\n}\n.atm-close-button[data-v-5a315eca] {\n top: 0.75rem;\n right: 0.75rem;\n}\n.atm-icon[data-v-5a315eca] {\n width: 1.25rem;\n height: 1.25rem;\n}\n}\n@media (max-width: 480px) {\n.atm-overlay[data-v-5a315eca] {\n padding: 0.5rem 0;\n}\n.atm-container[data-v-5a315eca] {\n padding: 0 0.5rem;\n}\n.atm-modal[data-v-5a315eca] {\n border-radius: 0.25rem;\n max-width: 100%;\n max-height: calc(100vh - 1rem);\n}\n.atm-modal-content[data-v-5a315eca] {\n padding: 0.875rem;\n}\n.atm-modal-title[data-v-5a315eca] {\n font-size: 0.9375rem;\n margin-bottom: 0.625rem;\n}\n.atm-close-button[data-v-5a315eca] {\n top: 0.5rem;\n right: 0.5rem;\n}\n}\n@media (max-width: 360px) {\n.atm-overlay[data-v-5a315eca] {\n padding: 0.25rem 0;\n}\n.atm-container[data-v-5a315eca] {\n padding: 0 0.25rem;\n}\n.atm-modal[data-v-5a315eca] {\n max-height: calc(100vh - 0.5rem);\n}\n.atm-modal-content[data-v-5a315eca] {\n padding: 0.75rem;\n}\n.atm-modal-title[data-v-5a315eca] {\n font-size: 0.875rem;\n margin-bottom: 0.5rem;\n}\n}\n\n.atm-notification-container[data-v-f5e47084] {\n font-family: Arial, Helvetica, sans-serif;\n position: fixed;\n top: 20px;\n right: 20px;\n z-index: 99999;\n pointer-events: none;\n}\n.atm-notification[data-v-f5e47084] {\n padding: 12px 16px;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n min-width: 250px;\n max-width: 350px;\n pointer-events: auto;\n}\n.atm-notification--error[data-v-f5e47084] {\n background: #ff3333;\n color: #FFF;\n}\n.atm-notification--success[data-v-f5e47084] {\n background: #00a622;\n color: #FFF;\n}\n.atm-notification--warning[data-v-f5e47084] {\n background: #ffa500;\n color: #FFF;\n}\n.atm-notification-enter-active[data-v-f5e47084] {\n transition: all 0.3s ease-out;\n}\n.atm-notification-leave-active[data-v-f5e47084] {\n transition: all 0.3s ease-in;\n}\n.atm-notification-enter-from[data-v-f5e47084] {\n transform: translateX(100%);\n opacity: 0;\n}\n.atm-notification-leave-to[data-v-f5e47084] {\n transform: translateX(100%);\n opacity: 0;\n}\n@media (max-width: 768px) {\n.atm-notification-container[data-v-f5e47084] {\n top: 16px;\n right: 16px;\n left: 16px;\n}\n.atm-notification[data-v-f5e47084] {\n min-width: auto;\n max-width: 100%;\n padding: 11px 14px;\n font-size: 13px;\n}\n}\n@media (max-width: 480px) {\n.atm-notification-container[data-v-f5e47084] {\n top: 12px;\n right: 12px;\n left: 12px;\n}\n.atm-notification[data-v-f5e47084] {\n padding: 10px 12px;\n font-size: 12px;\n border-radius: 5px;\n}\n}\n@media (max-width: 360px) {\n.atm-notification-container[data-v-f5e47084] {\n top: 10px;\n right: 10px;\n left: 10px;\n}\n.atm-notification[data-v-f5e47084] {\n padding: 9px 11px;\n font-size: 11px;\n border-radius: 4px;\n}\n}\n\n.atm-login-container[data-v-b88e6b76] {\n background: var(--atm-bg-primary);\n border-radius: 8px;\n font-family: 'Segoe UI', system-ui, sans-serif;\n text-align: center;\n}\n.atm-logo-container[data-v-b88e6b76] {\n margin-bottom: 12px;\n}\n.atm-logo-placeholder[data-v-b88e6b76] {\n width: 44px;\n height: 44px;\n margin: 0 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--atm-bg-tertiary);\n border-radius: 50%;\n color: var(--atm-text-muted);\n font-size: 11px;\n}\n.atm-logo-image[data-v-b88e6b76] {\n max-width: 44px;\n max-height: 44px;\n margin: 0 auto;\n display: block;\n border-radius: 4px;\n object-fit: contain;\n}\n.atm-project-name[data-v-b88e6b76] {\n margin: 0 0 4px 0;\n font-size: 18px;\n color: var(--v70f1a692);\n font-weight: 600;\n}\n.atm-welcome-text[data-v-b88e6b76] {\n margin: 0 0 16px 0;\n font-size: 14px;\n color: var(--atm-text-secondary);\n}\n.atm-form-group[data-v-b88e6b76] {\n margin-bottom: 12px;\n text-align: left;\n}\n.atm-input-label[data-v-b88e6b76] {\n display: block;\n margin-bottom: 4px;\n font-size: 13px;\n color: var(--atm-text-primary);\n font-weight: 500;\n}\n.atm-input-field[data-v-b88e6b76] {\n width: 100%;\n padding: 8px 10px;\n background: var(--atm-input-bg);\n color: var(--atm-text-primary);\n border: 1px solid var(--atm-input-border);\n border-radius: 6px;\n font-size: 14px;\n box-sizing: border-box;\n transition: border-color 0.2s;\n}\n.atm-input-field[data-v-b88e6b76]:focus {\n outline: none;\n border-color: var(--v70f1a692);\n box-shadow: 0 0 0 2px rgba(74, 144, 226, 0.1);\n}\n.atm-input-field[data-v-b88e6b76]:disabled {\n background-color: var(--atm-input-disabled);\n cursor: not-allowed;\n}\n.atm-field-error[data-v-b88e6b76] {\n color: var(--atm-error-color);\n font-size: 12px;\n margin-top: 4px;\n text-align: left;\n}\n.atm-alternative-options[data-v-b88e6b76] {\n margin-top: 8px;\n text-align: center;\n}\n.atm-forgot-password-link[data-v-b88e6b76] {\n font-size: 12px;\n background: none;\n border: none;\n color: var(--v4a1729f6);\n cursor: pointer;\n text-decoration: none;\n padding: 0;\n font-family: inherit;\n}\n.atm-forgot-password-link[data-v-b88e6b76]:hover:not(:disabled) {\n text-decoration: underline;\n}\n.atm-forgot-password-link[data-v-b88e6b76]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n.atm-strategy-choice[data-v-b88e6b76] {\n text-align: center;\n margin-bottom: 12px;\n}\n.atm-strategy-title[data-v-b88e6b76] {\n font-size: 14px;\n color: var(--atm-text-secondary);\n margin-bottom: 12px;\n}\n.atm-strategy-buttons[data-v-b88e6b76] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n.atm-strategy-button[data-v-b88e6b76] {\n width: 100%;\n padding: 10px;\n background: var(--atm-bg-secondary);\n color: var(--atm-text-primary);\n border: 1px solid var(--atm-border-color);\n border-radius: 6px;\n font-size: 14px;\n cursor: pointer;\n transition: all 0.2s;\n}\n.atm-strategy-button[data-v-b88e6b76]:hover:not(:disabled) {\n background: var(--atm-bg-tertiary);\n border-color: var(--v70f1a692);\n}\n.atm-strategy-button[data-v-b88e6b76]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n.atm-email-link-text[data-v-b88e6b76] {\n font-size: 14px;\n color: var(--atm-text-secondary);\n margin: 0;\n text-align: center;\n}\n.atm-login-button[data-v-b88e6b76] {\n width: 100%;\n padding: 10px;\n margin-top: 4px;\n background: var(--v70f1a692);\n color: #ffffff;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s;\n min-height: 42px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.atm-login-button[data-v-b88e6b76]:hover:not(:disabled) {\n opacity: 0.9;\n transform: translateY(-1px);\n}\n.atm-login-button[data-v-b88e6b76]:disabled {\n opacity: 0.8;\n cursor: not-allowed;\n transform: none;\n}\n.button-spinner[data-v-b88e6b76] {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n color: #fff;\n font-weight: 500;\n}\n.spinner-svg[data-v-b88e6b76] {\n animation: spin-b88e6b76 1s linear infinite;\n width: 18px;\n height: 18px;\n stroke: #fff;\n}\n.spinner-circle[data-v-b88e6b76] {\n stroke-dasharray: 90, 150;\n stroke-linecap: round;\n}\n@keyframes spin-b88e6b76 {\n0% {\n transform: rotate(0deg);\n}\n100% {\n transform: rotate(360deg);\n}\n}\n.atm-footer-links[data-v-b88e6b76] {\n margin-top: 16px;\n font-size: 13px;\n}\n.atm-signup-text[data-v-b88e6b76] {\n color: var(--atm-text-secondary);\n margin-bottom: 6px;\n}\n.atm-signup-link[data-v-b88e6b76] {\n color: var(--v4a1729f6);\n text-decoration: none;\n cursor: pointer;\n}\n.atm-signup-link[data-v-b88e6b76]:hover {\n text-decoration: underline;\n}\n.atm-powered-by[data-v-b88e6b76] {\n color: var(--atm-text-tertiary);\n font-size: 11px;\n margin: 0;\n}\n@media (max-width: 768px) {\n.atm-project-name[data-v-b88e6b76] {\n font-size: 17px;\n}\n.atm-welcome-text[data-v-b88e6b76] {\n font-size: 13px;\n margin-bottom: 14px;\n}\n.atm-form-group[data-v-b88e6b76] {\n margin-bottom: 10px;\n}\n.atm-input-label[data-v-b88e6b76] {\n font-size: 12px;\n margin-bottom: 4px;\n}\n.atm-input-field[data-v-b88e6b76] {\n padding: 8px 10px;\n font-size: 13px;\n}\n.atm-login-button[data-v-b88e6b76] {\n font-size: 13px;\n padding: 9px;\n min-height: 40px;\n}\n.atm-strategy-button[data-v-b88e6b76] {\n padding: 9px;\n font-size: 13px;\n}\n.atm-footer-links[data-v-b88e6b76] {\n margin-top: 14px;\n font-size: 12px;\n}\n}\n@media (max-width: 480px) {\n.atm-logo-placeholder[data-v-b88e6b76] {\n width: 40px;\n height: 40px;\n font-size: 10px;\n}\n.atm-logo-image[data-v-b88e6b76] {\n max-width: 40px;\n max-height: 40px;\n}\n.atm-project-name[data-v-b88e6b76] {\n font-size: 16px;\n margin-bottom: 4px;\n}\n.atm-welcome-text[data-v-b88e6b76] {\n font-size: 12px;\n margin-bottom: 12px;\n}\n.atm-form-group[data-v-b88e6b76] {\n margin-bottom: 10px;\n}\n.atm-input-label[data-v-b88e6b76] {\n font-size: 12px;\n margin-bottom: 3px;\n}\n.atm-input-field[data-v-b88e6b76] {\n padding: 7px 9px;\n font-size: 13px;\n}\n.atm-login-button[data-v-b88e6b76] {\n font-size: 13px;\n padding: 9px;\n min-height: 38px;\n}\n.atm-forgot-password-link[data-v-b88e6b76] {\n font-size: 11px;\n}\n.atm-strategy-title[data-v-b88e6b76] {\n font-size: 13px;\n margin-bottom: 10px;\n}\n.atm-strategy-button[data-v-b88e6b76] {\n padding: 9px;\n font-size: 13px;\n}\n.atm-email-link-text[data-v-b88e6b76] {\n font-size: 13px;\n}\n.atm-footer-links[data-v-b88e6b76] {\n margin-top: 12px;\n font-size: 12px;\n}\n.atm-powered-by[data-v-b88e6b76] {\n font-size: 10px;\n}\n.spinner-svg[data-v-b88e6b76] {\n width: 16px;\n height: 16px;\n}\n.button-spinner[data-v-b88e6b76] {\n gap: 6px;\n}\n}\n@media (max-width: 360px) {\n.atm-logo-placeholder[data-v-b88e6b76] {\n width: 36px;\n height: 36px;\n font-size: 9px;\n}\n.atm-logo-image[data-v-b88e6b76] {\n max-width: 36px;\n max-height: 36px;\n}\n.atm-project-name[data-v-b88e6b76] {\n font-size: 15px;\n margin-bottom: 3px;\n}\n.atm-welcome-text[data-v-b88e6b76] {\n font-size: 11px;\n margin-bottom: 10px;\n}\n.atm-form-group[data-v-b88e6b76] {\n margin-bottom: 8px;\n}\n.atm-input-label[data-v-b88e6b76] {\n font-size: 11px;\n margin-bottom: 3px;\n}\n.atm-input-field[data-v-b88e6b76] {\n padding: 6px 8px;\n font-size: 12px;\n}\n.atm-login-button[data-v-b88e6b76] {\n font-size: 12px;\n padding: 8px;\n min-height: 36px;\n}\n.atm-strategy-button[data-v-b88e6b76] {\n padding: 8px;\n font-size: 12px;\n}\n.atm-footer-links[data-v-b88e6b76] {\n margin-top: 10px;\n font-size: 11px;\n}\n.spinner-svg[data-v-b88e6b76] {\n width: 14px;\n height: 14px;\n}\n}\n\n.atm-signup-container[data-v-83e9452d] {\n width: 100%;\n background: var(--atm-bg-primary);\n border-radius: 8px;\n font-family: 'Segoe UI', system-ui, sans-serif;\n text-align: center;\n}\n.atm-logo-container[data-v-83e9452d] {\n margin-bottom: 12px;\n}\n.atm-logo-placeholder[data-v-83e9452d] {\n width: 44px;\n height: 44px;\n margin: 0 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--atm-bg-tertiary);\n border-radius: 50%;\n color: var(--atm-text-muted);\n font-size: 11px;\n}\n.atm-logo-image[data-v-83e9452d] {\n max-width: 44px;\n max-height: 44px;\n margin: 0 auto;\n display: block;\n border-radius: 4px;\n object-fit: contain;\n}\n.atm-project-name[data-v-83e9452d] {\n margin: 0 0 4px 0;\n font-size: 18px;\n color: var(--v2dc4b763);\n font-weight: 600;\n}\n.atm-welcome-text[data-v-83e9452d] {\n margin: 0 0 16px 0;\n font-size: 14px;\n color: var(--atm-text-secondary);\n}\n.atm-form-group[data-v-83e9452d] {\n margin-bottom: 12px;\n text-align: left;\n}\n.atm-input-label[data-v-83e9452d] {\n display: block;\n margin-bottom: 4px;\n font-size: 13px;\n color: var(--atm-text-primary);\n font-weight: 500;\n}\n.atm-input-field[data-v-83e9452d] {\n width: 100%;\n padding: 8px 10px;\n background: var(--atm-input-bg);\n color: var(--atm-text-primary);\n border: 1px solid var(--atm-input-border);\n border-radius: 6px;\n font-size: 14px;\n box-sizing: border-box;\n transition: border-color 0.2s;\n}\n.atm-input-field[data-v-83e9452d]:focus {\n outline: none;\n border-color: var(--v2dc4b763);\n box-shadow: 0 0 0 2px rgba(74, 144, 226, 0.1);\n}\n.atm-input-field[data-v-83e9452d]:disabled {\n background-color: var(--atm-input-disabled);\n cursor: not-allowed;\n}\n.atm-field-error[data-v-83e9452d] {\n color: var(--atm-error-color);\n font-size: 12px;\n margin-top: 4px;\n text-align: left;\n}\n.atm-signup-button[data-v-83e9452d] {\n width: 100%;\n padding: 10px;\n margin-top: 4px;\n background: var(--v2dc4b763);\n color: #ffffff;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s;\n min-height: 42px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.atm-signup-button[data-v-83e9452d]:hover:not(:disabled) {\n opacity: 0.9;\n transform: translateY(-1px);\n}\n.atm-signup-button[data-v-83e9452d]:disabled {\n opacity: 0.8;\n cursor: not-allowed;\n transform: none;\n}\n.button-spinner[data-v-83e9452d] {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n color: #fff;\n font-weight: 500;\n}\n.spinner-svg[data-v-83e9452d] {\n animation: spin-83e9452d 1s linear infinite;\n width: 18px;\n height: 18px;\n stroke: #fff;\n}\n.spinner-circle[data-v-83e9452d] {\n stroke-dasharray: 90, 150;\n stroke-linecap: round;\n}\n@keyframes spin-83e9452d {\n0% {\n transform: rotate(0deg);\n}\n100% {\n transform: rotate(360deg);\n}\n}\n.atm-footer-links[data-v-83e9452d] {\n margin-top: 16px;\n font-size: 13px;\n}\n.atm-login-text[data-v-83e9452d] {\n color: var(--atm-text-secondary);\n margin-bottom: 6px;\n}\n.atm-login-link[data-v-83e9452d] {\n color: var(--b00c0a9e);\n text-decoration: none;\n cursor: pointer;\n transition: opacity 0.2s;\n}\n.atm-login-link[data-v-83e9452d]:hover:not(.disabled-link) {\n text-decoration: underline;\n}\n.atm-login-link.disabled-link[data-v-83e9452d] {\n opacity: 0.5;\n cursor: not-allowed;\n pointer-events: none;\n}\n.atm-powered-by[data-v-83e9452d] {\n color: var(--atm-text-tertiary);\n font-size: 11px;\n margin: 0;\n}\n@media (max-width: 768px) {\n.atm-project-name[data-v-83e9452d] {\n font-size: 17px;\n}\n.atm-welcome-text[data-v-83e9452d] {\n font-size: 13px;\n margin-bottom: 14px;\n}\n.atm-form-group[data-v-83e9452d] {\n margin-bottom: 10px;\n}\n.atm-input-label[data-v-83e9452d] {\n font-size: 12px;\n margin-bottom: 4px;\n}\n.atm-input-field[data-v-83e9452d] {\n padding: 8px 10px;\n font-size: 13px;\n}\n.atm-signup-button[data-v-83e9452d] {\n font-size: 13px;\n padding: 9px;\n min-height: 40px;\n}\n.atm-footer-links[data-v-83e9452d] {\n margin-top: 14px;\n font-size: 12px;\n}\n}\n@media (max-width: 480px) {\n.atm-logo-placeholder[data-v-83e9452d] {\n width: 40px;\n height: 40px;\n font-size: 10px;\n}\n.atm-logo-image[data-v-83e9452d] {\n max-width: 40px;\n max-height: 40px;\n}\n.atm-project-name[data-v-83e9452d] {\n font-size: 16px;\n margin-bottom: 4px;\n}\n.atm-welcome-text[data-v-83e9452d] {\n font-size: 12px;\n margin-bottom: 12px;\n}\n.atm-form-group[data-v-83e9452d] {\n margin-bottom: 10px;\n}\n.atm-input-label[data-v-83e9452d] {\n font-size: 12px;\n margin-bottom: 3px;\n}\n.atm-input-field[data-v-83e9452d] {\n padding: 7px 9px;\n font-size: 13px;\n}\n.atm-signup-button[data-v-83e9452d] {\n font-size: 13px;\n padding: 9px;\n min-height: 38px;\n}\n.atm-footer-links[data-v-83e9452d] {\n margin-top: 12px;\n font-size: 12px;\n}\n.atm-powered-by[data-v-83e9452d] {\n font-size: 10px;\n}\n.spinner-svg[data-v-83e9452d] {\n width: 16px;\n height: 16px;\n}\n.button-spinner[data-v-83e9452d] {\n gap: 6px;\n}\n}\n@media (max-width: 360px) {\n.atm-logo-placeholder[data-v-83e9452d] {\n width: 36px;\n height: 36px;\n font-size: 9px;\n}\n.atm-logo-image[data-v-83e9452d] {\n max-width: 36px;\n max-height: 36px;\n}\n.atm-project-name[data-v-83e9452d] {\n font-size: 15px;\n margin-bottom: 3px;\n}\n.atm-welcome-text[data-v-83e9452d] {\n font-size: 11px;\n margin-bottom: 10px;\n}\n.atm-form-group[data-v-83e9452d] {\n margin-bottom: 8px;\n}\n.atm-input-label[data-v-83e9452d] {\n font-size: 11px;\n margin-bottom: 3px;\n}\n.atm-input-field[data-v-83e9452d] {\n padding: 6px 8px;\n font-size: 12px;\n}\n.atm-signup-button[data-v-83e9452d] {\n font-size: 12px;\n padding: 8px;\n min-height: 36px;\n}\n.atm-footer-links[data-v-83e9452d] {\n margin-top: 10px;\n font-size: 11px;\n}\n.spinner-svg[data-v-83e9452d] {\n width: 14px;\n height: 14px;\n}\n}\n\n.atm-signin-btn[data-v-43bf662d] {\n padding: 12px;\n margin-top: 8px;\n background: var(--v12e673a0);\n color: #FFF;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.2s;\n min-height: 44px;\n}\n.atm-signin-btn[data-v-43bf662d]:hover {\n opacity: 0.9;\n}\n@media (max-width: 768px) {\n.atm-signin-btn[data-v-43bf662d] {\n padding: 11px;\n font-size: 13px;\n min-height: 42px;\n}\n}\n@media (max-width: 480px) {\n.atm-signin-btn[data-v-43bf662d] {\n padding: 10px;\n font-size: 13px;\n min-height: 40px;\n}\n}\n@media (max-width: 360px) {\n.atm-signin-btn[data-v-43bf662d] {\n padding: 9px;\n font-size: 12px;\n min-height: 38px;\n}\n}\n\n.atm-registration-disabled[data-v-b58cb91d] {\n padding: 24px;\n text-align: center;\n}\n.atm-disabled-message[data-v-b58cb91d] {\n margin-bottom: 16px;\n color: var(--atm-text-primary);\n}\n.atm-disabled-login-btn[data-v-b58cb91d] {\n padding: 12px 24px;\n background: #007bff;\n color: #ffffff;\n border: none;\n border-radius: 6px;\n cursor: pointer;\n font-size: 14px;\n font-weight: 500;\n transition: opacity 0.2s;\n}\n.atm-disabled-login-btn[data-v-b58cb91d]:hover {\n opacity: 0.9;\n}\n\n.atm-signup-btn[data-v-d9ac9b54] {\n padding: 12px;\n margin-top: 8px;\n background: var(--v1c336c46);\n color: #FFF;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.2s;\n min-height: 44px;\n}\n.atm-signup-btn[data-v-d9ac9b54]:hover {\n opacity: 0.9;\n}\n@media (max-width: 768px) {\n.atm-signup-btn[data-v-d9ac9b54] {\n padding: 11px;\n font-size: 13px;\n min-height: 42px;\n}\n}\n@media (max-width: 480px) {\n.atm-signup-btn[data-v-d9ac9b54] {\n padding: 10px;\n font-size: 13px;\n min-height: 40px;\n}\n}\n@media (max-width: 360px) {\n.atm-signup-btn[data-v-d9ac9b54] {\n padding: 9px;\n font-size: 12px;\n min-height: 38px;\n}\n}\n\n.atm-profile-container {\n position: relative;\n display: inline-block;\n font-family: 'Segoe UI', system-ui, sans-serif;\n}\n.atm-profile-button {\n display: flex;\n align-items: center;\n gap: 8px;\n background: none;\n border: none;\n cursor: pointer;\n padding: 8px 12px;\n border-radius: 6px;\n transition: background 0.2s;\n}\n.atm-profile-button:hover {\n background: var(--atm-bg-secondary);\n}\n.atm-profile-avatar {\n width: 32px;\n height: 32px;\n border-radius: 50%;\n background-color: var(--feed21a4);\n color: #ffffff;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 12px;\n font-weight: 500;\n}\n.atm-profile-avatar.large {\n width: 48px;\n height: 48px;\n font-size: 16px;\n}\n.atm-profile-avatar-img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 50%;\n}\n.atm-profile-name {\n font-size: 14px;\n color: var(--atm-text-primary);\n font-weight: 500;\n}\n.atm-profile-arrow {\n width: 16px;\n height: 16px;\n color: var(--atm-text-primary);\n transition: transform 0.2s;\n}\n.atm-rotate {\n transform: rotate(180deg);\n}\n.atm-profile-menu {\n position: absolute;\n top: 100%;\n width: 280px;\n background: var(--atm-bg-primary);\n border: 1px solid var(--atm-border-color);\n border-radius: 8px;\n box-shadow: var(--atm-shadow-md);\n z-index: 1000;\n overflow: hidden;\n margin-top: 4px;\n}\n.atm-position-left {\n left: 0;\n right: auto;\n}\n.atm-position-right {\n right: 0;\n left: auto;\n}\n.atm-profile-info {\n display: flex;\n gap: 12px;\n padding: 16px;\n border-bottom: 1px solid var(--atm-border-color);\n}\n.atm-profile-details {\n flex: 1;\n min-width: 0;\n}\n.atm-profile-fullname {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--atm-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.atm-profile-email {\n margin: 4px 0 0;\n font-size: 13px;\n color: var(--atm-text-secondary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.atm-profile-options {\n padding: 8px 0;\n}\n.atm-profile-option {\n display: flex;\n align-items: center;\n width: 100%;\n padding: 10px 16px;\n background: none;\n border: none;\n text-align: left;\n cursor: pointer;\n font-size: 14px;\n color: var(--atm-text-primary);\n gap: 10px;\n transition: background 0.2s;\n}\n.atm-profile-option:hover {\n background: var(--atm-bg-secondary);\n}\n.atm-profile-icon {\n width: 18px;\n height: 18px;\n color: var(--atm-text-secondary);\n}\n.atm-fade-enter-active,\n.atm-fade-leave-active {\n transition: opacity 0.2s, transform 0.2s;\n}\n.atm-fade-enter-from,\n.atm-fade-leave-to {\n opacity: 0;\n transform: translateY(-10px);\n}\n.atm-profile-modal {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 9999;\n display: flex;\n justify-content: center;\n align-items: center;\n overflow-y: auto;\n padding: 1.5rem;\n}\n.atm-profile-overlay {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba(0, 0, 0, 0.5);\n pointer-events: none;\n}\n.atm-profile-content {\n position: relative;\n width: 100%;\n max-width: 450px;\n background: var(--atm-bg-primary);\n border-radius: 12px;\n box-shadow: var(--atm-shadow-md);\n z-index: 1;\n max-height: calc(100vh - 3rem);\n display: flex;\n flex-direction: column;\n margin: auto;\n}\n.atm-profile-header {\n padding: 16px;\n border-bottom: 1px solid var(--atm-border-color);\n display: flex;\n align-items: center;\n}\n.atm-profile-close {\n background: none;\n border: none;\n font-size: 24px;\n cursor: pointer;\n padding: 8px;\n margin-right: 12px;\n color: var(--atm-text-secondary);\n transition: color 0.2s;\n}\n.atm-profile-close:hover {\n color: var(--atm-text-primary);\n}\n.atm-profile-title {\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: var(--atm-text-primary);\n}\n.atm-profile-tabs {\n display: flex;\n border-bottom: 1px solid var(--atm-border-color);\n background: var(--atm-bg-secondary);\n}\n.atm-tab {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n padding: 12px 16px;\n background: none;\n border: none;\n cursor: pointer;\n font-size: 14px;\n font-weight: 500;\n color: var(--atm-text-secondary);\n transition: all 0.2s;\n}\n.atm-tab:hover {\n background: var(--atm-bg-tertiary);\n color: var(--atm-text-primary);\n}\n.atm-tab-active {\n color: var(--feed21a4) !important;\n background: var(--atm-bg-primary);\n border-bottom: 2px solid var(--feed21a4);\n}\n.atm-tab-icon {\n width: 16px;\n height: 16px;\n}\n.atm-profile-body {\n padding: 24px;\n text-align: center;\n overflow-y: auto;\n flex: 1;\n min-height: 0;\n}\n.atm-profile-avatar-large {\n width: 80px;\n height: 80px;\n border-radius: 50%;\n background-color: var(--feed21a4);\n color: #ffffff;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 24px;\n font-weight: 600;\n margin: 0 auto 20px;\n}\n.atm-profile-info-grid {\n width: 100%;\n text-align: left;\n margin-top: 20px;\n}\n.atm-profile-info-row {\n display: flex;\n flex-direction: column;\n margin-bottom: 16px;\n}\n.atm-profile-info-label {\n font-size: 13px;\n color: var(--atm-text-secondary);\n margin-bottom: 4px;\n}\n.atm-profile-info-value {\n font-size: 16px;\n color: var(--atm-text-primary);\n font-weight: 500;\n}\n.atm-profile-edit-form {\n width: 100%;\n text-align: left;\n margin-top: 20px;\n}\n.atm-form-group {\n margin-bottom: 16px;\n}\n.atm-input-label {\n display: block;\n margin-bottom: 6px;\n font-size: 13px;\n color: var(--atm-text-primary);\n font-weight: 500;\n}\n.atm-input-field {\n width: 100%;\n padding: 10px 12px;\n background: var(--atm-input-bg);\n color: var(--atm-text-primary);\n border: 1px solid var(--atm-input-border);\n border-radius: 6px;\n font-size: 14px;\n box-sizing: border-box;\n transition: border-color 0.2s;\n}\n.atm-input-field:focus {\n outline: none;\n border-color: var(--feed21a4);\n box-shadow: 0 0 0 2px rgba(74, 144, 226, 0.1);\n}\n.atm-form-actions {\n display: flex;\n gap: 12px;\n margin-top: 24px;\n}\n.atm-save-btn,\n.atm-edit-profile-btn,\n.atm-reset-password-btn,\n.atm-add-email-btn {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px;\n background: var(--feed21a4);\n color: #FFF;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: opacity 0.2s;\n justify-content: center;\n}\n.atm-save-btn:hover,\n.atm-edit-profile-btn:hover,\n.atm-reset-password-btn:hover,\n.atm-add-email-btn:hover {\n opacity: 0.9;\n}\n.atm-cancel-btn {\n display: flex;\n align-items: center;\n gap: 8px;\n flex: 1;\n padding: 12px;\n background: var(--atm-bg-secondary);\n color: var(--atm-text-secondary);\n border: 1px solid var(--atm-border-color);\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s;\n justify-content: center;\n}\n.atm-cancel-btn:hover {\n background: var(--atm-bg-tertiary);\n color: var(--atm-text-primary);\n}\n.atm-btn-icon {\n width: 16px;\n height: 16px;\n}\n.atm-email-add-section {\n margin-bottom: 24px;\n text-align: left;\n}\n.atm-email-list {\n display: flex;\n flex-direction: column;\n gap: 12px;\n text-align: left;\n}\n.atm-email-item {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px;\n background: var(--atm-bg-secondary);\n border-radius: 6px;\n border: 1px solid var(--atm-border-color);\n}\n.atm-email-info {\n display: flex;\n flex-direction: column;\n gap: 8px;\n flex: 1;\n}\n.atm-email-address {\n display: flex;\n align-items: center;\n gap: 8px;\n color: var(--atm-text-primary);\n}\n.atm-email-icon {\n width: 16px;\n height: 16px;\n color: var(--v5c6febbc);\n}\n.atm-email-badges {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n}\n.atm-badge {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 2px 8px;\n font-size: 11px;\n font-weight: 500;\n border-radius: 12px;\n text-transform: uppercase;\n}\n.atm-badge-icon {\n width: 12px;\n height: 12px;\n}\n.atm-badge-primary {\n background: #e3f2fd;\n color: #1976d2;\n}\n.atm-badge-verified {\n background: #e8f5e8;\n color: #2e7d32;\n}\n.atm-badge-unverified {\n background: #fff3e0;\n color: #f57c00;\n}\n.atm-email-actions {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n.atm-verify-btn {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 6px 12px;\n background: var(--feed21a4);\n color: white;\n border: none;\n border-radius: 4px;\n font-size: 12px;\n font-weight: 500;\n cursor: pointer;\n transition: opacity 0.2s;\n}\n.atm-verify-btn:hover {\n opacity: 0.9;\n}\n.atm-delete-btn {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 6px 12px;\n background: #dc3545;\n color: white;\n border: none;\n border-radius: 4px;\n font-size: 12px;\n font-weight: 500;\n cursor: pointer;\n transition: opacity 0.2s;\n}\n.atm-delete-btn:hover {\n opacity: 0.9;\n}\n.atm-password-section {\n text-align: left;\n}\n.atm-sessions-section {\n text-align: left;\n}\n.atm-sessions-info {\n margin-bottom: 20px;\n}\n.atm-sessions-description {\n margin: 0;\n font-size: 14px;\n color: var(--atm-text-secondary);\n line-height: 1.5;\n}\n.atm-sessions-list {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n.atm-session-item {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px;\n background: var(--atm-bg-secondary);\n border-radius: 8px;\n border: 1px solid var(--atm-border-color);\n gap: 16px;\n}\n.atm-session-header {\n display: flex;\n gap: 12px;\n align-items: flex-start;\n}\n.atm-session-icon {\n width: 24px;\n height: 24px;\n color: var(--v5c6febbc);\n flex-shrink: 0;\n}\n.atm-session-details {\n flex: 1;\n min-width: 0;\n}\n.atm-session-title {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 4px;\n font-size: 15px;\n font-weight: 600;\n color: var(--atm-text-primary);\n}\n.atm-session-device-info {\n font-size: 13px;\n color: var(--atm-text-secondary);\n margin-bottom: 8px;\n}\n.atm-badge-current {\n background: #d1f4e0;\n color: #0f9d58;\n}\n.atm-session-timestamps {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n.atm-session-timestamp {\n display: flex;\n gap: 6px;\n font-size: 13px;\n color: var(--atm-text-secondary);\n}\n.atm-timestamp-label {\n font-weight: 500;\n color: var(--atm-text-primary);\n}\n.atm-session-actions {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n.atm-close-session-btn {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 14px;\n background: #dc3545;\n color: white;\n border: none;\n border-radius: 6px;\n font-size: 13px;\n font-weight: 500;\n cursor: pointer;\n transition: opacity 0.2s;\n white-space: nowrap;\n}\n.atm-close-session-btn:hover {\n opacity: 0.9;\n}\n@media (max-width: 768px) {\n.atm-profile-button {\n padding: 6px 10px;\n gap: 6px;\n}\n.atm-profile-name {\n font-size: 13px;\n}\n.atm-profile-menu {\n width: 260px;\n}\n.atm-profile-modal {\n padding: 1rem;\n}\n.atm-profile-content {\n max-width: 90%;\n max-height: calc(100vh - 2rem);\n}\n.atm-profile-header {\n padding: 14px;\n}\n.atm-profile-title {\n font-size: 16px;\n}\n.atm-profile-body {\n padding: 20px;\n}\n.atm-tab {\n padding: 10px 12px;\n font-size: 13px;\n gap: 4px;\n}\n.atm-tab-icon {\n width: 14px;\n height: 14px;\n}\n.atm-profile-avatar-large {\n width: 70px;\n height: 70px;\n font-size: 22px;\n}\n.atm-email-item {\n flex-direction: column;\n gap: 12px;\n align-items: flex-start;\n}\n.atm-email-actions {\n flex-direction: row;\n width: 100%;\n}\n.atm-verify-btn,\n .atm-delete-btn {\n flex: 1;\n justify-content: center;\n}\n.atm-session-item {\n flex-direction: column;\n align-items: flex-start;\n}\n.atm-session-actions {\n width: 100%;\n}\n.atm-close-session-btn {\n width: 100%;\n justify-content: center;\n}\n}\n@media (max-width: 480px) {\n.atm-profile-button {\n padding: 4px 8px;\n gap: 4px;\n}\n.atm-profile-avatar {\n width: 28px;\n height: 28px;\n font-size: 11px;\n}\n.atm-profile-avatar.large {\n width: 40px;\n height: 40px;\n font-size: 14px;\n}\n.atm-profile-name {\n font-size: 12px;\n}\n.atm-profile-arrow {\n width: 14px;\n height: 14px;\n}\n.atm-profile-menu {\n width: calc(100vw - 20px);\n max-width: 240px;\n}\n.atm-profile-info {\n padding: 12px;\n gap: 10px;\n}\n.atm-profile-fullname {\n font-size: 13px;\n}\n.atm-profile-email {\n font-size: 12px;\n}\n.atm-profile-option {\n padding: 8px 12px;\n font-size: 13px;\n gap: 8px;\n}\n.atm-profile-icon {\n width: 16px;\n height: 16px;\n}\n.atm-profile-modal {\n padding: 0.5rem;\n}\n.atm-profile-content {\n max-width: 95%;\n max-height: calc(100vh - 1rem);\n}\n.atm-profile-header {\n padding: 12px;\n}\n.atm-profile-close {\n font-size: 20px;\n padding: 4px;\n margin-right: 8px;\n}\n.atm-profile-title {\n font-size: 15px;\n}\n.atm-profile-body {\n padding: 16px;\n}\n.atm-tab {\n padding: 8px 8px;\n font-size: 12px;\n gap: 3px;\n}\n.atm-tab-icon {\n width: 13px;\n height: 13px;\n}\n.atm-profile-avatar-large {\n width: 60px;\n height: 60px;\n font-size: 20px;\n margin-bottom: 16px;\n}\n.atm-profile-info-label {\n font-size: 12px;\n}\n.atm-profile-info-value {\n font-size: 14px;\n}\n.atm-input-label {\n font-size: 12px;\n}\n.atm-input-field {\n padding: 8px 10px;\n font-size: 13px;\n}\n.atm-form-actions {\n flex-direction: column;\n gap: 8px;\n}\n.atm-save-btn,\n .atm-cancel-btn,\n .atm-edit-profile-btn,\n .atm-reset-password-btn {\n width: 100%;\n padding: 10px;\n font-size: 13px;\n}\n.atm-email-item {\n padding: 10px;\n}\n.atm-email-address {\n font-size: 13px;\n}\n.atm-badge {\n font-size: 10px;\n padding: 2px 6px;\n}\n}\n@media (max-width: 360px) {\n.atm-profile-button {\n padding: 4px 6px;\n}\n.atm-profile-avatar {\n width: 26px;\n height: 26px;\n font-size: 10px;\n}\n.atm-profile-name {\n display: none;\n}\n.atm-profile-menu {\n width: calc(100vw - 16px);\n max-width: 220px;\n}\n.atm-profile-modal {\n padding: 0.25rem;\n}\n.atm-profile-content {\n max-width: 98%;\n max-height: calc(100vh - 0.5rem);\n}\n.atm-profile-body {\n padding: 12px;\n}\n.atm-tab {\n padding: 8px 6px;\n font-size: 11px;\n flex-direction: column;\n gap: 2px;\n}\n.atm-profile-avatar-large {\n width: 50px;\n height: 50px;\n font-size: 18px;\n}\n.atm-email-item {\n padding: 8px;\n}\n}\n\n.atm-auth-buttons[data-v-0c63ecb8] {\n display: flex;\n flex-wrap: wrap;\n gap: 16px;\n}\n@media (max-width: 768px) {\n.atm-auth-buttons[data-v-0c63ecb8] {\n gap: 14px;\n}\n}\n@media (max-width: 480px) {\n.atm-auth-buttons[data-v-0c63ecb8] {\n gap: 12px;\n flex-direction: column;\n}\n}\n@media (max-width: 360px) {\n.atm-auth-buttons[data-v-0c63ecb8] {\n gap: 10px;\n}\n}\n\n.atm-logout-btn[data-v-7157f989] {\n padding: 12px;\n margin-top: 8px;\n background: var(--v2ec0f896);\n color: #FFF;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: opacity 0.2s;\n min-height: 44px;\n}\n.atm-logout-btn[data-v-7157f989]:hover {\n opacity: 0.9;\n}\n@media (max-width: 768px) {\n.atm-logout-btn[data-v-7157f989] {\n padding: 11px;\n font-size: 13px;\n min-height: 42px;\n}\n}\n@media (max-width: 480px) {\n.atm-logout-btn[data-v-7157f989] {\n padding: 10px;\n font-size: 13px;\n min-height: 40px;\n}\n}\n@media (max-width: 360px) {\n.atm-logout-btn[data-v-7157f989] {\n padding: 9px;\n font-size: 12px;\n min-height: 38px;\n}\n}\n";
6
6
  document.head.appendChild(style);
7
7
  }
8
8
  })();
9
- import { inject, defineComponent, createElementBlock, openBlock, createElementVNode, normalizeStyle, createCommentVNode, toDisplayString, renderSlot, useCssVars, computed, ref, onMounted, nextTick, watch, unref, withModifiers, withDirectives, vModelText, Fragment, renderList, createTextVNode, getCurrentInstance, createBlock, Teleport, createVNode, Transition, withCtx, normalizeClass, onUnmounted, provide } from "vue";
9
+ import { inject, defineComponent, createElementBlock, openBlock, createElementVNode, normalizeStyle, createCommentVNode, toDisplayString, renderSlot, createBlock, Teleport, createVNode, Transition, withCtx, normalizeClass, useCssVars, computed, ref, onMounted, nextTick, watch, Fragment, unref, withModifiers, withDirectives, vModelText, renderList, createTextVNode, getCurrentInstance, onUnmounted, provide } from "vue";
10
10
  import UniversalCookie from "universal-cookie";
11
11
  import { AtmClient } from "@autenticar-me/client-js";
12
12
  const writeAccessTokenInCookie = (accessToken) => {
@@ -190,7 +190,36 @@ const getDeviceToken = async (client) => {
190
190
  throw error;
191
191
  }
192
192
  };
193
- const _hoisted_1$7 = { class: "atm-login-container" };
193
+ const _hoisted_1$7 = {
194
+ key: 0,
195
+ class: "atm-notification-container"
196
+ };
197
+ const _sfc_main$b = /* @__PURE__ */ defineComponent({
198
+ __name: "Notification",
199
+ props: {
200
+ show: { type: Boolean },
201
+ message: {},
202
+ type: { default: "error" }
203
+ },
204
+ setup(__props) {
205
+ return (_ctx, _cache) => {
206
+ return openBlock(), createBlock(Teleport, { to: "body" }, [
207
+ createVNode(Transition, { name: "atm-notification" }, {
208
+ default: withCtx(() => [
209
+ __props.show ? (openBlock(), createElementBlock("div", _hoisted_1$7, [
210
+ createElementVNode("div", {
211
+ class: normalizeClass(["atm-notification", `atm-notification--${__props.type}`])
212
+ }, toDisplayString(__props.message), 3)
213
+ ])) : createCommentVNode("", true)
214
+ ]),
215
+ _: 1
216
+ })
217
+ ]);
218
+ };
219
+ }
220
+ });
221
+ const Notification = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-f5e47084"]]);
222
+ const _hoisted_1$6 = { class: "atm-login-container" };
194
223
  const _hoisted_2$2 = { class: "atm-logo-container" };
195
224
  const _hoisted_3$2 = ["src"];
196
225
  const _hoisted_4$2 = {
@@ -252,11 +281,12 @@ const _hoisted_28$1 = {
252
281
  key: 0,
253
282
  class: "atm-signup-text"
254
283
  };
255
- const _sfc_main$b = /* @__PURE__ */ defineComponent({
284
+ const _sfc_main$a = /* @__PURE__ */ defineComponent({
256
285
  __name: "SignIn",
257
286
  props: {
258
- redirect: {},
259
- signUpLink: {}
287
+ fallbackRedirectUrl: { default: "/" },
288
+ initialValues: {},
289
+ signUpUrl: {}
260
290
  },
261
291
  emits: [
262
292
  "completed",
@@ -264,15 +294,29 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
264
294
  ],
265
295
  setup(__props, { emit: __emit }) {
266
296
  useCssVars((_ctx) => ({
267
- "v68f877d9": atmPrimaryColor.value,
268
- "v358114b2": atmSecondaryColor.value
297
+ "v70f1a692": atmPrimaryColor.value,
298
+ "v4a1729f6": atmSecondaryColor.value
269
299
  }));
270
300
  const props = __props;
271
301
  const emit = __emit;
272
- const showNotification = inject("showNotification");
302
+ const notification = ref({
303
+ show: false,
304
+ message: "",
305
+ type: "error"
306
+ });
307
+ const showNotification = (message, type = "error") => {
308
+ notification.value = {
309
+ show: true,
310
+ message,
311
+ type
312
+ };
313
+ setTimeout(() => {
314
+ notification.value.show = false;
315
+ }, 3e3);
316
+ };
273
317
  const form = ref({
274
- emailAddress: "",
275
- password: ""
318
+ emailAddress: props.initialValues?.emailAddress || "",
319
+ password: props.initialValues?.password || ""
276
320
  });
277
321
  const currentStep = ref("email");
278
322
  const signInStep = ref(null);
@@ -291,7 +335,7 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
291
335
  const { configurations } = useAtm();
292
336
  const atmPrimaryColor = computed(() => configurations.value?.design?.primaryColor);
293
337
  const atmSecondaryColor = computed(() => configurations.value?.design?.secondaryColor);
294
- const logoUrl = computed(() => configurations.value?.project?.logo || "");
338
+ const logoUrl = computed(() => configurations.value?.project?.logo);
295
339
  const isRegisterEnabled = computed(() => configurations.value?.register?.enable !== false);
296
340
  const buttonText = computed(() => {
297
341
  if (currentStep.value === "email") return "Entrar";
@@ -439,13 +483,13 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
439
483
  showNotification?.("Login realizado com sucesso!", "success");
440
484
  setTimeout(() => {
441
485
  emit("completed");
442
- if (props.redirect) {
486
+ if (props.fallbackRedirectUrl) {
443
487
  const instance = getCurrentInstance();
444
488
  const router = instance?.appContext.config.globalProperties.$router;
445
489
  if (router) {
446
- router.push(props.redirect);
490
+ router.push(props.fallbackRedirectUrl);
447
491
  } else {
448
- window.location.href = props.redirect;
492
+ window.location.href = props.fallbackRedirectUrl;
449
493
  }
450
494
  }
451
495
  }, 1e3);
@@ -500,13 +544,13 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
500
544
  }
501
545
  };
502
546
  const signUp = () => {
503
- if (props.signUpLink) {
547
+ if (props.signUpUrl) {
504
548
  const instance = getCurrentInstance();
505
549
  const router = instance?.appContext.config.globalProperties.$router;
506
550
  if (router) {
507
- router.push(props.signUpLink);
551
+ router.push(props.signUpUrl);
508
552
  } else {
509
- window.location.href = props.signUpLink;
553
+ window.location.href = props.signUpUrl;
510
554
  }
511
555
  } else {
512
556
  emit("sign-up");
@@ -527,157 +571,135 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
527
571
  });
528
572
  });
529
573
  return (_ctx, _cache) => {
530
- return unref(configurations) ? (openBlock(), createElementBlock("form", {
531
- key: 0,
532
- onSubmit: _cache[4] || (_cache[4] = withModifiers(($event) => submit(), ["prevent"]))
533
- }, [
534
- createElementVNode("div", _hoisted_1$7, [
535
- createElementVNode("div", _hoisted_2$2, [
536
- logoUrl.value ? (openBlock(), createElementBlock("img", {
537
- key: 0,
538
- src: logoUrl.value,
539
- alt: "Logo",
540
- class: "atm-logo-image"
541
- }, null, 8, _hoisted_3$2)) : (openBlock(), createElementBlock("div", _hoisted_4$2, "Logo"))
542
- ]),
543
- createElementVNode("h2", _hoisted_5$2, toDisplayString(unref(configurations).project.name), 1),
544
- _cache[13] || (_cache[13] = createElementVNode("p", { class: "atm-welcome-text" }, "Bem-vindo de volta! Faça login para continuar", -1)),
545
- currentStep.value !== "forgot_password_message" ? (openBlock(), createElementBlock("div", _hoisted_6$2, [
546
- showEmailField.value ? (openBlock(), createElementBlock("div", _hoisted_7$2, [
547
- createElementVNode("label", _hoisted_8$2, toDisplayString(labelText.value), 1),
548
- withDirectives(createElementVNode("input", {
549
- ref_key: "emailInput",
550
- ref: emailInput,
551
- type: "text",
552
- class: "atm-input-field",
553
- placeholder: inputPlaceholder.value,
554
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => form.value.emailAddress = $event),
555
- disabled: currentStep.value !== "email" || isLoading.value
556
- }, null, 8, _hoisted_9$2), [
557
- [vModelText, form.value.emailAddress]
558
- ]),
559
- fieldErrors.value.emailAddress.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_10$2, toDisplayString(fieldErrors.value.emailAddress[0]), 1)) : createCommentVNode("", true)
560
- ])) : createCommentVNode("", true),
561
- showPasswordField.value ? (openBlock(), createElementBlock("div", _hoisted_11$2, [
562
- _cache[5] || (_cache[5] = createElementVNode("label", { class: "atm-input-label" }, "Senha", -1)),
563
- withDirectives(createElementVNode("input", {
564
- ref_key: "passwordInput",
565
- ref: passwordInput,
566
- type: "password",
567
- class: "atm-input-field",
568
- placeholder: "Digite sua senha",
569
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => form.value.password = $event),
570
- disabled: isLoading.value
571
- }, null, 8, _hoisted_12$2), [
572
- [vModelText, form.value.password]
573
- ]),
574
- fieldErrors.value.password.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_13$2, toDisplayString(fieldErrors.value.password[0]), 1)) : createCommentVNode("", true),
575
- createElementVNode("div", _hoisted_14$2, [
576
- createElementVNode("button", {
577
- type: "button",
578
- onClick: _cache[2] || (_cache[2] = ($event) => sendResetPasswordLink()),
579
- class: "atm-forgot-password-link",
574
+ return openBlock(), createElementBlock(Fragment, null, [
575
+ createVNode(Notification, {
576
+ show: notification.value.show,
577
+ message: notification.value.message,
578
+ type: notification.value.type
579
+ }, null, 8, ["show", "message", "type"]),
580
+ unref(configurations) ? (openBlock(), createElementBlock("form", {
581
+ key: 0,
582
+ onSubmit: _cache[4] || (_cache[4] = withModifiers(($event) => submit(), ["prevent"]))
583
+ }, [
584
+ createElementVNode("div", _hoisted_1$6, [
585
+ createElementVNode("div", _hoisted_2$2, [
586
+ logoUrl.value ? (openBlock(), createElementBlock("img", {
587
+ key: 0,
588
+ src: logoUrl.value,
589
+ alt: "Logo",
590
+ class: "atm-logo-image"
591
+ }, null, 8, _hoisted_3$2)) : (openBlock(), createElementBlock("div", _hoisted_4$2, "Logo"))
592
+ ]),
593
+ createElementVNode("h2", _hoisted_5$2, toDisplayString(unref(configurations).project.name), 1),
594
+ _cache[13] || (_cache[13] = createElementVNode("p", { class: "atm-welcome-text" }, "Bem-vindo de volta! Faça login para continuar", -1)),
595
+ currentStep.value !== "forgot_password_message" ? (openBlock(), createElementBlock("div", _hoisted_6$2, [
596
+ showEmailField.value ? (openBlock(), createElementBlock("div", _hoisted_7$2, [
597
+ createElementVNode("label", _hoisted_8$2, toDisplayString(labelText.value), 1),
598
+ withDirectives(createElementVNode("input", {
599
+ ref_key: "emailInput",
600
+ ref: emailInput,
601
+ type: "text",
602
+ class: "atm-input-field",
603
+ placeholder: inputPlaceholder.value,
604
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => form.value.emailAddress = $event),
605
+ disabled: currentStep.value !== "email" || isLoading.value
606
+ }, null, 8, _hoisted_9$2), [
607
+ [vModelText, form.value.emailAddress]
608
+ ]),
609
+ fieldErrors.value.emailAddress.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_10$2, toDisplayString(fieldErrors.value.emailAddress[0]), 1)) : createCommentVNode("", true)
610
+ ])) : createCommentVNode("", true),
611
+ showPasswordField.value ? (openBlock(), createElementBlock("div", _hoisted_11$2, [
612
+ _cache[5] || (_cache[5] = createElementVNode("label", { class: "atm-input-label" }, "Senha", -1)),
613
+ withDirectives(createElementVNode("input", {
614
+ ref_key: "passwordInput",
615
+ ref: passwordInput,
616
+ type: "password",
617
+ class: "atm-input-field",
618
+ placeholder: "Digite sua senha",
619
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => form.value.password = $event),
580
620
  disabled: isLoading.value
581
- }, " Esqueci a minha senha ", 8, _hoisted_15$2)
582
- ])
583
- ])) : createCommentVNode("", true),
584
- showStrategyChoice.value ? (openBlock(), createElementBlock("div", _hoisted_16$2, [
585
- _cache[6] || (_cache[6] = createElementVNode("p", { class: "atm-strategy-title" }, "Escolha como deseja fazer login:", -1)),
586
- createElementVNode("div", _hoisted_17$2, [
587
- (openBlock(true), createElementBlock(Fragment, null, renderList(availableStrategies.value, (strategy) => {
588
- return openBlock(), createElementBlock("button", {
589
- key: strategy.strategy,
590
- onClick: ($event) => selectStrategy(strategy),
621
+ }, null, 8, _hoisted_12$2), [
622
+ [vModelText, form.value.password]
623
+ ]),
624
+ fieldErrors.value.password.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_13$2, toDisplayString(fieldErrors.value.password[0]), 1)) : createCommentVNode("", true),
625
+ createElementVNode("div", _hoisted_14$2, [
626
+ createElementVNode("button", {
591
627
  type: "button",
592
- class: "atm-strategy-button",
628
+ onClick: _cache[2] || (_cache[2] = ($event) => sendResetPasswordLink()),
629
+ class: "atm-forgot-password-link",
593
630
  disabled: isLoading.value
594
- }, [
595
- strategy.strategy === "email_link" ? (openBlock(), createElementBlock("span", _hoisted_19$2, "Usar link por email")) : createCommentVNode("", true)
596
- ], 8, _hoisted_18$2);
597
- }), 128))
631
+ }, " Esqueci a minha senha ", 8, _hoisted_15$2)
632
+ ])
633
+ ])) : createCommentVNode("", true),
634
+ showStrategyChoice.value ? (openBlock(), createElementBlock("div", _hoisted_16$2, [
635
+ _cache[6] || (_cache[6] = createElementVNode("p", { class: "atm-strategy-title" }, "Escolha como deseja fazer login:", -1)),
636
+ createElementVNode("div", _hoisted_17$2, [
637
+ (openBlock(true), createElementBlock(Fragment, null, renderList(availableStrategies.value, (strategy) => {
638
+ return openBlock(), createElementBlock("button", {
639
+ key: strategy.strategy,
640
+ onClick: ($event) => selectStrategy(strategy),
641
+ type: "button",
642
+ class: "atm-strategy-button",
643
+ disabled: isLoading.value
644
+ }, [
645
+ strategy.strategy === "email_link" ? (openBlock(), createElementBlock("span", _hoisted_19$2, "Usar link por email")) : createCommentVNode("", true)
646
+ ], 8, _hoisted_18$2);
647
+ }), 128))
648
+ ])
649
+ ])) : createCommentVNode("", true),
650
+ currentStep.value === "email_link" ? (openBlock(), createElementBlock("div", _hoisted_20$2, [..._cache[7] || (_cache[7] = [
651
+ createElementVNode("p", { class: "atm-email-link-text" }, " Link de verificação enviado para seu email. Verifique sua caixa de entrada. ", -1)
652
+ ])])) : createCommentVNode("", true)
653
+ ])) : (openBlock(), createElementBlock("div", _hoisted_21$2, [
654
+ createElementVNode("p", null, [
655
+ _cache[8] || (_cache[8] = createTextVNode("Foi enviado um link para resetar a senha para o email ", -1)),
656
+ createElementVNode("strong", null, toDisplayString(form.value.emailAddress), 1),
657
+ _cache[9] || (_cache[9] = createTextVNode(". Verifique sua caixa de entrada.", -1))
598
658
  ])
599
- ])) : createCommentVNode("", true),
600
- currentStep.value === "email_link" ? (openBlock(), createElementBlock("div", _hoisted_20$2, [..._cache[7] || (_cache[7] = [
601
- createElementVNode("p", { class: "atm-email-link-text" }, " Link de verificação enviado para seu email. Verifique sua caixa de entrada. ", -1)
602
- ])])) : createCommentVNode("", true)
603
- ])) : (openBlock(), createElementBlock("div", _hoisted_21$2, [
604
- createElementVNode("p", null, [
605
- _cache[8] || (_cache[8] = createTextVNode("Foi enviado um link para resetar a senha para o email ", -1)),
606
- createElementVNode("strong", null, toDisplayString(form.value.emailAddress), 1),
607
- _cache[9] || (_cache[9] = createTextVNode(". Verifique sua caixa de entrada.", -1))
659
+ ])),
660
+ buttonText.value ? (openBlock(), createElementBlock("button", {
661
+ key: 2,
662
+ type: "submit",
663
+ class: "atm-login-button",
664
+ disabled: isLoading.value
665
+ }, [
666
+ !isLoading.value ? (openBlock(), createElementBlock("span", _hoisted_23$2, toDisplayString(buttonText.value), 1)) : (openBlock(), createElementBlock("span", _hoisted_24$2, [
667
+ _cache[10] || (_cache[10] = createElementVNode("svg", {
668
+ class: "spinner-svg",
669
+ viewBox: "0 0 50 50"
670
+ }, [
671
+ createElementVNode("circle", {
672
+ class: "spinner-circle",
673
+ cx: "25",
674
+ cy: "25",
675
+ r: "20",
676
+ fill: "none",
677
+ "stroke-width": "5"
678
+ })
679
+ ], -1)),
680
+ currentStep.value === "email" ? (openBlock(), createElementBlock("span", _hoisted_25$2, "Verificando...")) : (openBlock(), createElementBlock("span", _hoisted_26$2, "Entrando..."))
681
+ ]))
682
+ ], 8, _hoisted_22$2)) : createCommentVNode("", true),
683
+ createElementVNode("div", _hoisted_27$2, [
684
+ isRegisterEnabled.value ? (openBlock(), createElementBlock("p", _hoisted_28$1, [
685
+ _cache[11] || (_cache[11] = createTextVNode(" Ainda não tem uma conta? ", -1)),
686
+ createElementVNode("a", {
687
+ onClick: _cache[3] || (_cache[3] = ($event) => signUp()),
688
+ class: "atm-signup-link"
689
+ }, "Cadastre aqui")
690
+ ])) : createCommentVNode("", true),
691
+ _cache[12] || (_cache[12] = createElementVNode("p", { class: "atm-powered-by" }, [
692
+ createTextVNode(" Secured by "),
693
+ createElementVNode("strong", null, "Autenticar.me")
694
+ ], -1))
608
695
  ])
609
- ])),
610
- buttonText.value ? (openBlock(), createElementBlock("button", {
611
- key: 2,
612
- type: "submit",
613
- class: "atm-login-button",
614
- disabled: isLoading.value
615
- }, [
616
- !isLoading.value ? (openBlock(), createElementBlock("span", _hoisted_23$2, toDisplayString(buttonText.value), 1)) : (openBlock(), createElementBlock("span", _hoisted_24$2, [
617
- _cache[10] || (_cache[10] = createElementVNode("svg", {
618
- class: "spinner-svg",
619
- viewBox: "0 0 50 50"
620
- }, [
621
- createElementVNode("circle", {
622
- class: "spinner-circle",
623
- cx: "25",
624
- cy: "25",
625
- r: "20",
626
- fill: "none",
627
- "stroke-width": "5"
628
- })
629
- ], -1)),
630
- currentStep.value === "email" ? (openBlock(), createElementBlock("span", _hoisted_25$2, "Verificando...")) : (openBlock(), createElementBlock("span", _hoisted_26$2, "Entrando..."))
631
- ]))
632
- ], 8, _hoisted_22$2)) : createCommentVNode("", true),
633
- createElementVNode("div", _hoisted_27$2, [
634
- isRegisterEnabled.value ? (openBlock(), createElementBlock("p", _hoisted_28$1, [
635
- _cache[11] || (_cache[11] = createTextVNode(" Ainda não tem uma conta? ", -1)),
636
- createElementVNode("a", {
637
- onClick: _cache[3] || (_cache[3] = ($event) => signUp()),
638
- class: "atm-signup-link"
639
- }, "Cadastre aqui")
640
- ])) : createCommentVNode("", true),
641
- _cache[12] || (_cache[12] = createElementVNode("p", { class: "atm-powered-by" }, [
642
- createTextVNode(" Secured by "),
643
- createElementVNode("strong", null, "Autenticar.me")
644
- ], -1))
645
696
  ])
646
- ])
647
- ], 32)) : createCommentVNode("", true);
648
- };
649
- }
650
- });
651
- const SignIn = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-4e744a2c"]]);
652
- const _hoisted_1$6 = {
653
- key: 0,
654
- class: "atm-notification-container"
655
- };
656
- const _sfc_main$a = /* @__PURE__ */ defineComponent({
657
- __name: "Notification",
658
- props: {
659
- show: { type: Boolean },
660
- message: {},
661
- type: { default: "error" }
662
- },
663
- setup(__props) {
664
- return (_ctx, _cache) => {
665
- return openBlock(), createBlock(Teleport, { to: "body" }, [
666
- createVNode(Transition, { name: "atm-notification" }, {
667
- default: withCtx(() => [
668
- __props.show ? (openBlock(), createElementBlock("div", _hoisted_1$6, [
669
- createElementVNode("div", {
670
- class: normalizeClass(["atm-notification", `atm-notification--${__props.type}`])
671
- }, toDisplayString(__props.message), 3)
672
- ])) : createCommentVNode("", true)
673
- ]),
674
- _: 1
675
- })
676
- ]);
697
+ ], 32)) : createCommentVNode("", true)
698
+ ], 64);
677
699
  };
678
700
  }
679
701
  });
680
- const Notification = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__scopeId", "data-v-f5e47084"]]);
702
+ const SignIn = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__scopeId", "data-v-b88e6b76"]]);
681
703
  const _hoisted_1$5 = { class: "atm-signup-container" };
682
704
  const _hoisted_2$1 = { class: "atm-logo-container" };
683
705
  const _hoisted_3$1 = ["src"];
@@ -741,24 +763,25 @@ const _hoisted_27$1 = { class: "atm-login-text" };
741
763
  const _sfc_main$9 = /* @__PURE__ */ defineComponent({
742
764
  __name: "SignUp",
743
765
  props: {
744
- redirect: {},
745
- signInLink: {}
766
+ fallbackRedirectUrl: { default: "/" },
767
+ initialValues: {},
768
+ signInUrl: {}
746
769
  },
747
770
  emits: ["completed", "sign-in"],
748
771
  setup(__props, { emit: __emit }) {
749
772
  useCssVars((_ctx) => ({
750
- "v1eb0b99e": atmPrimaryColor.value,
751
- "v3dd12aff": atmSecondaryColor.value
773
+ "v2dc4b763": atmPrimaryColor.value,
774
+ "b00c0a9e": atmSecondaryColor.value
752
775
  }));
753
776
  const props = __props;
754
777
  const emit = __emit;
755
778
  const { configurations } = useAtm();
756
779
  const form = ref({
757
- first_name: "",
758
- last_name: "",
759
- email_address: "",
760
- password: "",
761
- confirm_password: ""
780
+ first_name: props.initialValues?.first_name || "",
781
+ last_name: props.initialValues?.last_name || "",
782
+ email_address: props.initialValues?.email_address || "",
783
+ password: props.initialValues?.password || "",
784
+ confirm_password: props.initialValues?.confirm_password || ""
762
785
  });
763
786
  const notification = ref({
764
787
  show: false,
@@ -796,7 +819,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
796
819
  });
797
820
  const atmPrimaryColor = computed(() => configurations.value?.design?.primaryColor);
798
821
  const atmSecondaryColor = computed(() => configurations.value?.design?.secondaryColor);
799
- const logoUrl = computed(() => configurations.value?.project?.logo || "");
822
+ const logoUrl = computed(() => configurations.value?.project?.logo);
800
823
  const hasFirstName = computed(() => configurations.value?.firstName?.required === true);
801
824
  const hasLastName = computed(() => configurations.value?.lastName?.required === true);
802
825
  const hasPassword = computed(() => configurations.value?.password?.enable !== false);
@@ -892,13 +915,13 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
892
915
  showNotification("Login realizado com sucesso!", "success");
893
916
  setTimeout(() => {
894
917
  emit("completed");
895
- if (props.redirect) {
918
+ if (props.fallbackRedirectUrl) {
896
919
  const instance = getCurrentInstance();
897
920
  const router = instance?.appContext.config.globalProperties.$router;
898
921
  if (router) {
899
- router.push(props.redirect);
922
+ router.push(props.fallbackRedirectUrl);
900
923
  } else {
901
- window.location.href = props.redirect;
924
+ window.location.href = props.fallbackRedirectUrl;
902
925
  }
903
926
  }
904
927
  }, 1e3);
@@ -912,13 +935,13 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
912
935
  }
913
936
  };
914
937
  const signIn = () => {
915
- if (props.signInLink) {
938
+ if (props.signInUrl) {
916
939
  const instance = getCurrentInstance();
917
940
  const router = instance?.appContext.config.globalProperties.$router;
918
941
  if (router) {
919
- router.push(props.signInLink);
942
+ router.push(props.signInUrl);
920
943
  } else {
921
- window.location.href = props.signInLink;
944
+ window.location.href = props.signInUrl;
922
945
  }
923
946
  } else {
924
947
  emit("sign-in");
@@ -1056,23 +1079,30 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
1056
1079
  };
1057
1080
  }
1058
1081
  });
1059
- const SignUp = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-9668f28a"]]);
1082
+ const SignUp = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-83e9452d"]]);
1060
1083
  const _sfc_main$8 = /* @__PURE__ */ defineComponent({
1061
1084
  __name: "SignInModal",
1062
1085
  props: {
1063
- redirect: {},
1064
- signUpLink: {}
1086
+ fallbackRedirectUrl: { default: "/" },
1087
+ signUpUrl: {}
1065
1088
  },
1066
1089
  emits: [
1067
1090
  "close"
1068
1091
  ],
1069
1092
  setup(__props, { emit: __emit }) {
1093
+ const props = __props;
1070
1094
  const emit = __emit;
1071
1095
  const close = () => {
1072
1096
  emit("close");
1073
1097
  };
1074
1098
  const component = ref("sign-in");
1075
- const signUp = () => component.value = "sign-up";
1099
+ const signUp = () => {
1100
+ if (props.signUpUrl) {
1101
+ window.location.href = props.signUpUrl;
1102
+ } else {
1103
+ component.value = "sign-up";
1104
+ }
1105
+ };
1076
1106
  const signIn = () => component.value = "sign-in";
1077
1107
  const windowWidth = ref(typeof window !== "undefined" ? window.innerWidth : 1024);
1078
1108
  const maxWidth = computed(() => {
@@ -1098,17 +1128,16 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
1098
1128
  default: withCtx(() => [
1099
1129
  component.value === "sign-in" ? (openBlock(), createBlock(SignIn, {
1100
1130
  key: 0,
1101
- redirect: __props.redirect,
1102
- signUpLink: __props.signUpLink,
1131
+ fallbackRedirectUrl: __props.fallbackRedirectUrl,
1103
1132
  onSignUp: _cache[0] || (_cache[0] = ($event) => signUp()),
1104
1133
  onCompleted: _cache[1] || (_cache[1] = ($event) => close())
1105
- }, null, 8, ["redirect", "signUpLink"])) : createCommentVNode("", true),
1134
+ }, null, 8, ["fallbackRedirectUrl"])) : createCommentVNode("", true),
1106
1135
  component.value === "sign-up" ? (openBlock(), createBlock(SignUp, {
1107
1136
  key: 1,
1108
- redirect: __props.redirect,
1137
+ fallbackRedirectUrl: __props.fallbackRedirectUrl,
1109
1138
  onSignIn: _cache[2] || (_cache[2] = ($event) => signIn()),
1110
1139
  onCompleted: _cache[3] || (_cache[3] = ($event) => close())
1111
- }, null, 8, ["redirect"])) : createCommentVNode("", true)
1140
+ }, null, 8, ["fallbackRedirectUrl"])) : createCommentVNode("", true)
1112
1141
  ]),
1113
1142
  _: 1
1114
1143
  }, 8, ["max-width"]);
@@ -1118,48 +1147,27 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
1118
1147
  const _sfc_main$7 = /* @__PURE__ */ defineComponent({
1119
1148
  __name: "SignInButton",
1120
1149
  props: {
1121
- redirect: {},
1122
- signUpLink: {}
1150
+ fallbackRedirectUrl: {},
1151
+ signUpUrl: {}
1123
1152
  },
1124
1153
  setup(__props) {
1125
1154
  useCssVars((_ctx) => ({
1126
- "v111e7704": atmPrimaryColor.value
1155
+ "v12e673a0": atmPrimaryColor.value
1127
1156
  }));
1128
1157
  const showSignInModal = ref(false);
1129
1158
  const { configurations } = useAtm();
1130
1159
  const atmPrimaryColor = computed(() => configurations.value?.design?.primaryColor);
1131
- const notification = ref({
1132
- show: false,
1133
- message: "",
1134
- type: "error"
1135
- });
1136
- const showNotification = (message, type = "error") => {
1137
- notification.value = {
1138
- show: true,
1139
- message,
1140
- type
1141
- };
1142
- setTimeout(() => {
1143
- notification.value.show = false;
1144
- }, 3e3);
1145
- };
1146
- provide("showNotification", showNotification);
1147
1160
  const signIn = () => {
1148
1161
  showSignInModal.value = true;
1149
1162
  };
1150
1163
  return (_ctx, _cache) => {
1151
1164
  return openBlock(), createElementBlock(Fragment, null, [
1152
- createVNode(Notification, {
1153
- show: notification.value.show,
1154
- message: notification.value.message,
1155
- type: notification.value.type
1156
- }, null, 8, ["show", "message", "type"]),
1157
1165
  showSignInModal.value ? (openBlock(), createBlock(_sfc_main$8, {
1158
1166
  key: 0,
1159
- redirect: __props.redirect,
1160
- signUpLink: __props.signUpLink,
1167
+ fallbackRedirectUrl: __props.fallbackRedirectUrl,
1168
+ signUpUrl: __props.signUpUrl,
1161
1169
  onClose: _cache[0] || (_cache[0] = () => showSignInModal.value = false)
1162
- }, null, 8, ["redirect", "signUpLink"])) : createCommentVNode("", true),
1170
+ }, null, 8, ["fallbackRedirectUrl", "signUpUrl"])) : createCommentVNode("", true),
1163
1171
  createElementVNode("button", {
1164
1172
  onClick: _cache[1] || (_cache[1] = ($event) => signIn()),
1165
1173
  class: "atm-signin-btn"
@@ -1168,7 +1176,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
1168
1176
  };
1169
1177
  }
1170
1178
  });
1171
- const SignInButton = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__scopeId", "data-v-e490ca63"]]);
1179
+ const SignInButton = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__scopeId", "data-v-43bf662d"]]);
1172
1180
  const _hoisted_1$4 = {
1173
1181
  key: 2,
1174
1182
  class: "atm-registration-disabled"
@@ -1176,13 +1184,14 @@ const _hoisted_1$4 = {
1176
1184
  const _sfc_main$6 = /* @__PURE__ */ defineComponent({
1177
1185
  __name: "SignUpModal",
1178
1186
  props: {
1179
- redirect: {},
1180
- signInLink: {}
1187
+ fallbackRedirectUrl: { default: "/" },
1188
+ signInUrl: {}
1181
1189
  },
1182
1190
  emits: [
1183
1191
  "close"
1184
1192
  ],
1185
1193
  setup(__props, { emit: __emit }) {
1194
+ const props = __props;
1186
1195
  const { configurations } = useAtm();
1187
1196
  const emit = __emit;
1188
1197
  const close = () => {
@@ -1191,7 +1200,13 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
1191
1200
  const component = ref("sign-up");
1192
1201
  const isRegistrationAllowed = computed(() => configurations.value?.register?.enable !== false);
1193
1202
  const signUp = () => component.value = "sign-up";
1194
- const signIn = () => component.value = "sign-in";
1203
+ const signIn = () => {
1204
+ if (props.signInUrl) {
1205
+ window.location.href = props.signInUrl;
1206
+ } else {
1207
+ component.value = "sign-in";
1208
+ }
1209
+ };
1195
1210
  const windowWidth = ref(typeof window !== "undefined" ? window.innerWidth : 1024);
1196
1211
  const maxWidth = computed(() => {
1197
1212
  if (windowWidth.value <= 360) return 340;
@@ -1216,17 +1231,16 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
1216
1231
  default: withCtx(() => [
1217
1232
  component.value === "sign-in" ? (openBlock(), createBlock(SignIn, {
1218
1233
  key: 0,
1219
- redirect: __props.redirect,
1234
+ fallbackRedirectUrl: __props.fallbackRedirectUrl,
1220
1235
  onSignUp: _cache[0] || (_cache[0] = ($event) => signUp()),
1221
1236
  onCompleted: _cache[1] || (_cache[1] = ($event) => close())
1222
- }, null, 8, ["redirect"])) : createCommentVNode("", true),
1237
+ }, null, 8, ["fallbackRedirectUrl"])) : createCommentVNode("", true),
1223
1238
  component.value === "sign-up" && isRegistrationAllowed.value ? (openBlock(), createBlock(SignUp, {
1224
1239
  key: 1,
1225
- redirect: __props.redirect,
1226
- signInLink: __props.signInLink,
1240
+ fallbackRedirectUrl: __props.fallbackRedirectUrl,
1227
1241
  onSignIn: _cache[2] || (_cache[2] = ($event) => signIn()),
1228
1242
  onCompleted: _cache[3] || (_cache[3] = ($event) => close())
1229
- }, null, 8, ["redirect", "signInLink"])) : component.value === "sign-up" ? (openBlock(), createElementBlock("div", _hoisted_1$4, [
1243
+ }, null, 8, ["fallbackRedirectUrl"])) : component.value === "sign-up" ? (openBlock(), createElementBlock("div", _hoisted_1$4, [
1230
1244
  _cache[6] || (_cache[6] = createElementVNode("p", { class: "atm-disabled-message" }, "Registro não está disponível no momento", -1)),
1231
1245
  createElementVNode("button", {
1232
1246
  onClick: _cache[4] || (_cache[4] = ($event) => signIn()),
@@ -1239,16 +1253,16 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
1239
1253
  };
1240
1254
  }
1241
1255
  });
1242
- const SignUpModal = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-05bfbd78"]]);
1256
+ const SignUpModal = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-b58cb91d"]]);
1243
1257
  const _sfc_main$5 = /* @__PURE__ */ defineComponent({
1244
1258
  __name: "SignUpButton",
1245
1259
  props: {
1246
- redirect: {},
1247
- signInLink: {}
1260
+ fallbackRedirectUrl: {},
1261
+ signInUrl: {}
1248
1262
  },
1249
1263
  setup(__props) {
1250
1264
  useCssVars((_ctx) => ({
1251
- "v334adbc1": atmPrimaryColor.value
1265
+ "v1c336c46": atmPrimaryColor.value
1252
1266
  }));
1253
1267
  const showSignUpModal = ref(false);
1254
1268
  const { configurations } = useAtm();
@@ -1261,10 +1275,10 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
1261
1275
  return openBlock(), createElementBlock(Fragment, null, [
1262
1276
  showSignUpModal.value ? (openBlock(), createBlock(SignUpModal, {
1263
1277
  key: 0,
1264
- redirect: __props.redirect,
1265
- signInLink: __props.signInLink,
1278
+ fallbackRedirectUrl: __props.fallbackRedirectUrl,
1279
+ signInUrl: __props.signInUrl,
1266
1280
  onClose: _cache[0] || (_cache[0] = () => showSignUpModal.value = false)
1267
- }, null, 8, ["redirect", "signInLink"])) : createCommentVNode("", true),
1281
+ }, null, 8, ["fallbackRedirectUrl", "signInUrl"])) : createCommentVNode("", true),
1268
1282
  isRegistrationAllowed.value ? (openBlock(), createElementBlock("button", {
1269
1283
  key: 1,
1270
1284
  onClick: _cache[1] || (_cache[1] = ($event) => signUp()),
@@ -1274,7 +1288,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
1274
1288
  };
1275
1289
  }
1276
1290
  });
1277
- const SignUpButton = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-7346e92d"]]);
1291
+ const SignUpButton = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-d9ac9b54"]]);
1278
1292
  const _hoisted_1$3 = {
1279
1293
  key: 0,
1280
1294
  class: "atm-profile-container"
@@ -2428,7 +2442,7 @@ const atmPlugin = {
2428
2442
  const atmClient = new AtmClient({
2429
2443
  domain: pluginOptions.domain,
2430
2444
  publicKey: pluginOptions.publicKey,
2431
- ssl: true
2445
+ ssl: pluginOptions.ssl
2432
2446
  });
2433
2447
  const client = ref(atmClient);
2434
2448
  const user = ref(null);