.loading-overlay{position:fixed;top:0;left:0;width:100%;height:100%;z-index:var(--z-index-modal);background-color:var(--color-background)}.loading-animation,.loading-overlay{display:flex;align-items:center;justify-content:center}.loading-animation{flex-direction:column}@media (max-width:480px){.loading-animation{transform:scale(.8)}}@media (prefers-reduced-motion:reduce){.loading-animation{animation:pulse 1.5s ease-in-out infinite alternate}@keyframes pulse{0%{opacity:.6}to{opacity:1}}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(21,25,28,.6);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:var(--z-index-modal-backdrop);opacity:0;transition:opacity var(--transition-normal)}.modal-overlay.show{opacity:1}.modal-overlay.hide{opacity:0}.modal-container{width:90%;max-width:600px;border-radius:var(--radius-md);background-color:var(--color-background);box-shadow:var(--shadow-lg);transform:translateY(-20px);transition:transform var(--transition-normal);overflow:hidden;border:1px solid var(--color-surface-medium)}.modal-container.show{transform:translateY(0)}.modal-container.hide{transform:translateY(-20px)}.modal-close-button{background:none;border:none;color:var(--color-text-tertiary);font-size:var(--font-size-lg);cursor:pointer;width:24px;height:24px;display:flex;align-items:center;justify-content:center;padding:0;border-radius:var(--radius-circle);transition:background-color var(--transition-fast),color var(--transition-fast)}.modal-close-button:hover{color:var(--color-text-primary);background-color:var(--color-surface-light)}.modal-close-button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.modal-content{padding:var(--spacing-lg);max-height:calc(80vh - 80px);overflow-y:auto}.modal-content::-webkit-scrollbar{width:6px}.modal-content::-webkit-scrollbar-track{background:var(--color-surface-medium);border-radius:3px}.modal-content::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}.modal-content::-webkit-scrollbar-thumb:hover{background:var(--color-text-tertiary)}.modal-button{display:flex;padding:var(--spacing-sm) var(--spacing-md);justify-content:center;align-items:center;gap:var(--spacing-sm);border-radius:var(--radius-sm);background:var(--gradient-primary);color:var(--color-text-primary);text-align:center;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);line-height:normal;border:none;cursor:pointer;box-shadow:var(--shadow-button);transition:opacity var(--transition-fast)}.modal-button:disabled{opacity:.5;cursor:not-allowed}.modal-button-secondary{background:var(--color-surface-medium);border:1px solid var(--color-border-light);color:var(--color-text-secondary)}.modal-input-container{position:relative;width:100%;margin-bottom:var(--spacing-md)}.modal-input{width:100%;border-radius:var(--radius-md);background:var(--color-surface-medium);padding:var(--spacing-sm) var(--spacing-md);color:var(--color-text-secondary);font-size:var(--font-size-sm);border:none;outline:none;transition:box-shadow var(--transition-fast)}.modal-input:focus{box-shadow:0 0 0 1px var(--color-primary)}.modal-label{display:block;color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-bottom:var(--spacing-sm)}.modal-error-text{color:var(--color-error);font-size:var(--font-size-xs);margin-top:var(--spacing-xs)}@media (max-width:480px){.modal-container{width:95%}.modal-header{padding:var(--spacing-sm) var(--spacing-md)}.modal-content{padding:var(--spacing-md)}}@media (prefers-reduced-motion:reduce){.modal-container,.modal-overlay{transition:none}}