.lazy-image-container[data-v-2e6d89c5]{position:relative;display:inline-block;width:100%;height:100%;background-color:var(--color-light-gray);border-radius:var(--border-radius-md);overflow:hidden}.lazy-image-container img[data-v-2e6d89c5]{width:100%;height:100%;object-fit:cover;transition:opacity var(--transition-normal)}.lazy-image-container.loading img[data-v-2e6d89c5]{opacity:0}.image-placeholder[data-v-2e6d89c5],.error-placeholder[data-v-2e6d89c5]{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:var(--color-light-gray);color:var(--color-medium-gray)}.loading-spinner[data-v-2e6d89c5]{width:32px;height:32px;border:3px solid var(--color-light-gray);border-top:3px solid var(--color-primary);border-radius:50%;animation:spin-2e6d89c5 1s linear infinite;margin-bottom:var(--spacing-sm)}@keyframes spin-2e6d89c5{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-text[data-v-2e6d89c5],.error-text[data-v-2e6d89c5]{font-size:var(--font-size-sm);text-align:center}.error-icon[data-v-2e6d89c5]{font-size:2rem;margin-bottom:var(--spacing-sm)}.retry-btn[data-v-2e6d89c5]{margin-top:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--color-primary);color:var(--color-white);border:none;border-radius:var(--border-radius-sm);font-size:var(--font-size-xs);cursor:pointer;transition:background-color var(--transition-fast)}.retry-btn[data-v-2e6d89c5]:hover{background-color:var(--color-secondary)}@media (prefers-reduced-motion: reduce){.loading-spinner[data-v-2e6d89c5]{animation:none}.lazy-image-container img[data-v-2e6d89c5]{transition:none}}.loading-state[data-v-e42f0f76]{display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg)}.loading-state.fullscreen[data-v-e42f0f76]{position:fixed;inset:0;z-index:9999;background-color:#ffffffe6;backdrop-filter:blur(2px)}.loading-content[data-v-e42f0f76]{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md);text-align:center;position:relative;z-index:10000}.loading-spinner[data-v-e42f0f76]{display:flex;align-items:center;justify-content:center}.spinner[data-v-e42f0f76]{border-radius:50%;border-style:solid;animation:spin-e42f0f76 1s linear infinite}.spinner-small .spinner[data-v-e42f0f76]{width:20px;height:20px;border-width:2px}.spinner-medium .spinner[data-v-e42f0f76]{width:32px;height:32px;border-width:3px}.spinner-large .spinner[data-v-e42f0f76]{width:48px;height:48px;border-width:4px}.loading-default .spinner[data-v-e42f0f76]{border-color:var(--color-light-gray);border-top-color:var(--color-primary)}.loading-primary .spinner[data-v-e42f0f76]{border-color:#dc267f33;border-top-color:var(--color-primary)}.loading-secondary .spinner[data-v-e42f0f76]{border-color:#2196f333;border-top-color:var(--color-secondary)}.loading-minimal .spinner[data-v-e42f0f76]{border-color:var(--color-medium-gray);border-top-color:var(--color-dark-gray)}@keyframes spin-e42f0f76{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-message[data-v-e42f0f76]{font-size:var(--font-size-base);color:var(--color-dark-gray);font-weight:var(--font-weight-medium);max-width:300px}.loading-primary .loading-message[data-v-e42f0f76]{color:var(--color-primary)}.loading-secondary .loading-message[data-v-e42f0f76]{color:var(--color-secondary)}.progress-container[data-v-e42f0f76]{width:200px;display:flex;flex-direction:column;gap:var(--spacing-xs)}.progress-bar[data-v-e42f0f76]{width:100%;height:6px;background-color:var(--color-light-gray);border-radius:var(--border-radius-sm);overflow:hidden}.progress-fill[data-v-e42f0f76]{height:100%;background-color:var(--color-primary);transition:width var(--transition-normal);border-radius:var(--border-radius-sm)}.loading-secondary .progress-fill[data-v-e42f0f76]{background-color:var(--color-secondary)}.progress-text[data-v-e42f0f76]{font-size:var(--font-size-sm);color:var(--color-medium-gray);text-align:center}.cancel-btn[data-v-e42f0f76]{padding:var(--spacing-sm) var(--spacing-md);background-color:transparent;color:var(--color-medium-gray);border:1px solid var(--color-medium-gray);border-radius:var(--border-radius-md);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast)}.cancel-btn[data-v-e42f0f76]:hover:not(:disabled){background-color:var(--color-medium-gray);color:var(--color-white)}.cancel-btn[data-v-e42f0f76]:disabled{opacity:.5;cursor:not-allowed}.loading-overlay[data-v-e42f0f76]{position:absolute;inset:0;background-color:#fffc;z-index:9999}@media (max-width: 767px){.loading-content[data-v-e42f0f76]{gap:var(--spacing-sm)}.loading-message[data-v-e42f0f76]{font-size:var(--font-size-sm);max-width:250px}.progress-container[data-v-e42f0f76]{width:150px}}@media (prefers-reduced-motion: reduce){.spinner[data-v-e42f0f76]{animation:none}.progress-fill[data-v-e42f0f76]{transition:none}}@media (prefers-contrast: high){.loading-state.fullscreen[data-v-e42f0f76]{background-color:#000c}.loading-message[data-v-e42f0f76]{color:var(--color-black)}.spinner[data-v-e42f0f76]{border-color:var(--color-black);border-top-color:var(--color-primary)}}.error-boundary[data-v-fe1e72cf]{width:100%;height:100%}.error-state[data-v-fe1e72cf]{display:flex;align-items:center;justify-content:center;padding:var(--spacing-xl);min-height:200px}.error-state.fullscreen[data-v-fe1e72cf]{position:fixed;inset:0;z-index:9999;background-color:var(--color-white)}.error-content[data-v-fe1e72cf]{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-lg);text-align:center;max-width:500px}.error-icon[data-v-fe1e72cf]{color:#f44336;opacity:.8}.error-default .error-icon[data-v-fe1e72cf]{color:var(--color-primary)}.error-minimal .error-icon[data-v-fe1e72cf]{color:var(--color-medium-gray)}.error-title[data-v-fe1e72cf]{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-black);margin:0}.error-minimal .error-title[data-v-fe1e72cf]{font-size:var(--font-size-lg)}.error-message[data-v-fe1e72cf]{font-size:var(--font-size-base);color:var(--color-dark-gray);line-height:var(--line-height-relaxed);margin:0}.error-minimal .error-message[data-v-fe1e72cf]{font-size:var(--font-size-sm)}.error-details[data-v-fe1e72cf]{width:100%;max-width:400px;margin-top:var(--spacing-md)}.error-details summary[data-v-fe1e72cf]{cursor:pointer;font-size:var(--font-size-sm);color:var(--color-medium-gray);margin-bottom:var(--spacing-sm)}.error-stack[data-v-fe1e72cf]{background-color:var(--color-light-gray);padding:var(--spacing-sm);border-radius:var(--border-radius-md);font-size:var(--font-size-xs);color:var(--color-dark-gray);overflow-x:auto;white-space:pre-wrap;word-break:break-word}.error-actions[data-v-fe1e72cf]{display:flex;gap:var(--spacing-md);flex-wrap:wrap;justify-content:center}.error-btn[data-v-fe1e72cf]{padding:var(--spacing-sm) var(--spacing-lg);border:none;border-radius:var(--border-radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);min-height:44px;min-width:100px}.error-btn-primary[data-v-fe1e72cf]{background-color:var(--color-primary);color:var(--color-white)}.error-btn-primary[data-v-fe1e72cf]:hover:not(:disabled){background-color:var(--color-secondary);transform:translateY(-1px)}.error-btn-primary[data-v-fe1e72cf]:disabled{opacity:.6;cursor:not-allowed;transform:none}.error-btn-secondary[data-v-fe1e72cf]{background-color:transparent;color:var(--color-primary);border:1px solid var(--color-primary)}.error-btn-secondary[data-v-fe1e72cf]:hover{background-color:var(--color-primary);color:var(--color-white);transform:translateY(-1px)}@media (max-width: 767px){.error-state[data-v-fe1e72cf]{padding:var(--spacing-lg);min-height:150px}.error-content[data-v-fe1e72cf]{gap:var(--spacing-md)}.error-title[data-v-fe1e72cf]{font-size:var(--font-size-lg)}.error-message[data-v-fe1e72cf]{font-size:var(--font-size-sm)}.error-actions[data-v-fe1e72cf]{flex-direction:column;width:100%}.error-btn[data-v-fe1e72cf]{width:100%;max-width:200px}}.error-btn[data-v-fe1e72cf]:focus{outline:2px solid var(--color-primary);outline-offset:2px}@media (prefers-reduced-motion: reduce){.error-btn[data-v-fe1e72cf]:hover{transform:none}}@media (prefers-contrast: high){.error-icon[data-v-fe1e72cf],.error-message[data-v-fe1e72cf]{color:var(--color-black)}.error-stack[data-v-fe1e72cf]{background-color:var(--color-white);border:1px solid var(--color-black)}}
